Today we’re releasing PSPDFKit 10 for iOS. If you’ve been following our release blog posts, you’ll notice this update is a bit different than our previous ones. Instead of introducing major changes, PSPDFKit 10 for iOS focuses on providing the best possible support for iOS 14 while still ensuring a smooth update experience.
To that extent, we’re happy to announce that this version doesn’t contain any breaking API changes — just additions and internal enhancements. Along with adding support for the new platform version, PSPDFKit 10 also provides a brand-new integration method via Swift Package Manager and features some notable accessibility improvements.
Sidebars are a useful design pattern for devices with larger screens. They reduce the mental burden of the user finding their way around the app and thereby improve navigation efficiency. With this year’s iOS update, sidebars have become a more prominent design pattern on iPad. To follow suit, we’ve developed a brand-new example that showcases how PSPDFKit’s document info UI can be fit into a sidebar. This example implements new iOS 14 sidebar behaviors and automatically adapts to a modal presentation if the size class changes during iPad multitasking. To see the example in action, search for “document info sidebar” in our Catalog app.
iOS 14 introduces a new system menu style as a lighter alternative to the existing iOS 13 contextual menus. We adopted the new menu style in key areas of our UI. One example of this is the annotation toolbar, and as a result of this change, tool selection is quicker and less visually distracting.
Another significant new feature available for iPads with iOS 14 is handwriting recognition with Scribble. PSPDFKit 10 for iOS supports scribble out of the box for all textual input fields, including text annotations and forms. Simply start scribbling with Apple Pencil when you see the text input cursor.
Swift Package Manager
We were excited to see Swift Package Manager (SwiftPM) gain support for binary frameworks during this year’s WWDC. We immediately started working on adapting our infrastructure for this new distribution method, and we’re happy to announce that after overcoming a few issues we encountered during the beta period, we can now offer SwiftPM support for all our frameworks.
After seeing how well this integration method performs, and after considering the ongoing issues both CocoaPods and Carthage have with XCFrameworks, we’re now recommending SwiftPM as our default integration method. To learn more about adopting SwiftPM, please consult our new integration guide. If you’re curious about the details of adding SwiftPM support to a binary library, you can also read our technical blog post on this subject.
iOS has always had great built-in support for accessibility features, and we at PSPDFKit firmly believe it’s the duty of all of us as developers to make good use of them. To that extent, we already put a lot of effort into ensuring our UI works well with accessibility features such as VoiceOver and Dynamic Type.
In this release, we’re continuing with our push for accessibility improvements by focusing on improved VoiceOver support for document content. Instead of an entire page being presented as one accessibility element, we now employ smart paragraph detection to expose each text paragraph to the accessibility system separately. This makes it much easier for users leveraging VoiceOver to perceive the page structure and to navigate around the content. In addition to improving navigation on individual pages, we also audited the navigation gestures for scrolling through the document to ensure they behave as intended.
Last year, iOS 13 introduced new modern gestures for text selection. While the PSPDFKit UI adopted those interactions immediately, they weren’t available when selecting text in PDFs. With the recent refactor of our touch interactions, we laid the groundwork for adopting the new text selection gestures. With PSPDFKit 10 for iOS, the new gestures are available on both iOS 13 and iOS 14, while iOS 12 keeps the previous selection style, as expected by users.
With Xcode 12, Apple improved the handling of dSYMs and BCSymbolMaps in XCFrameworks. With this change, the
strip-framework.sh script we provided as part of our manual integration guide is no longer needed. If you’re integrating PSPDFKit manually, you can check out the migration guide to learn more about this change.
This release features some notable improvements to the layout code of certain UI elements. This can be seen in our main document viewer, which now does a better job of laying out pages with different sizes in two-page mode. It’s also apparent in the saved annotations list, which now better represents different size annotations.
On the model level, we enhanced our support for digital signatures. This includes support for PEM PKCS1 key files, as well as a new customization option for creating digital signatures with a custom appearance. We also worked on framework performance, most notably by adding NEON and AVX intrinsics to our recently introduced OCR component.
In this version, we consolidated and cleaned up our example project organization. Our two main example projects are now
Catalog.xcodeproj, which contains a large library of code examples; and
Minimal.xcodeproj, which showcases how PSPDFKit can be integrated into a basic iOS project. In addition to adding the new sidebar Catalog example, we also rewrote
PSCCustomGalleryExample in Swift and fixed a few smaller issues with certain other examples.
As always, to see a complete list of changes, check out the PSPDFKit 10 for iOS changelog.