Blog Post

PSPDFKit 11 for iOS 15

We’re pleased to announce the availability of PSPDFKit 11, which will be a smooth update so that you can easily add iOS 15 support to your app. There are no breaking API changes or major new features in this release: The focus is on compatibility with iOS 15 and other internal enhancements. This release requires that you use Xcode 13 to build your app.

iOS 15

iOS 15 adds drag and drop between apps on iPhone, which means users can drag text and images out of documents into other apps, or drag text and images onto a PDF page to add annotations.

We updated many parts of our UI — such as the annotation list and sharing options view — to match the modern iOS style by not showing navigation bar and toolbar backgrounds unless content is scrolled underneath those bars. Combined with iOS 15’s new look for list section headers, PSPDFKit’s annotation list now looks cleaner.

Screenshot showing annotation list

Note that to provide a more immersive viewing experience, our main PDF view shows content underneath the navigation bar and allows the user to tap to hide this bar. Therefore, using bars with transparent backgrounds isn’t supported with our PDF view. In most cases, PSPDFKit will handle this automatically. If you see a transparent bar over PDF content in a more complex setup, then please set the bar’s scrollEdgeAppearance to be the same as the bar’s standardAppearance. See our new Transparent Bar Backgrounds troubleshooting guide for details.

Async and Await

Xcode 13 and Swift 5.5 introduce the async and await keywords to simplify asynchronous and concurrent programming. As a result, some PSPDFKit methods are now available as async functions. Here’s an example that shows updating the full-text search index of our Indexed Search component and then fetching all documents matching a search term. You can see how two asynchronous operations are incredibly simple to chain together using async/await:

func documentsUIDs(matching query: String) async throws -> [String] {
    let library = PSPDFKit.SDK.shared.library!
    await library.updateIndex()
    let (_, matchingDocumentUIDs) = await library.documentUIDs(matching: query)
    return Array(matchingDocumentUIDs.keys)
}

As part of adopting async/await, we fixed various completion handler closures not being called in some rarer scenarios, so the callbacks should happen as expected.

Other Improvements

To further expand the customization options in our Electronic Signatures component, we added an API to change the colors the user can pick from when adding their signature.

Screenshot showing typing the signature Albert with red, orange, green, and blue color options

We’re continuing to refine the fundamental parts of our framework. We added support for setting a blend mode on any annotation type in our efficient Instant JSON format, and we improved our core renderer for Arabic and other non-Latin text when certain fonts are specified.

For a complete list of the changes in this release, please see our PSPDFKit 11 for iOS changelog.

Author
Douglas Hill iOS Team Lead

Douglas makes the most of our fully remote setup by frequently traveling around Europe by train. He’s a proponent of iPad as a productivity platform and is obsessive about the details of great user experiences. He’s also an organizer of the NSLondon meetup.

Explore related topics

Related products
Share post
Free trial Ready to get started?
Free trial