2018 was a big year for our iOS SDK. We pushed things forward in many ways big and small, improving both what the SDK can do and how easy it is use. Many improvements were initiated thanks to customer feedback and suggestions, so a big thank you to everyone who took the time to contact with ideas for how we can improve.

In 2018, we had nine iOS SDK releases which included the following improvements:

  • Improved developer experience
  • Better UX
  • New fully featured drop-in components
  • New annotation style picker
  • New annotation creation tools
  • Reflow control
  • UIDocumentBrowser & File Coordination support
  • Additional customization APIs
  • and more

linkImproved developer experience

linkDocumentation

In 2018 we overhauled our documentation, adding dozens of iOS-specific guides. These cover the basics of getting up and running, intermediate topics such as customizing the experience through APIs, and advanced topics such as writing brand new annotation interaction tools.

We also updated the documentation of our open source UI framework, Tools.framework, formalizing the API and offering complete API documentation.

linkSample projects

Our sample projects were improved, adding a complete set of Swift samples that exercise our extensive programmatic PDF API, a Swift version of Complete Reader and a new Showcase sample app which highlights and demonstrates specific functionality of the SDK.

linkEasier to integrate

In addition to the downloadable .dmg, we now distribute the SDK via the Cocoapods package manager, making integration quick and easy.

linkBetter UX

We refreshed the UX of a number of our built-in components, including the page thumbnail browser, page slider and annotation/bookmark/outline list controls.

PTThumbnailsViewControllerPTNavigationListsViewController
PTThumbnailsViewControllerPTNavigationListsViewController

linkNew full-featured drop-in components

In 2018 we added two new full-featured PDF viewers, the PTDocumentViewController and the tabbed version, PTTabbedDocumentViewController.

These controls are used to present a complete PDF control, including text search, an annotation toolbar, a viewer settings dialog, thumbnail browser, and more.

As usual with PDFTron, all of the UI components are completely open source, with the code included in the .dmg download of the SDK.

PTDocumentViewController

linkNew annotation functionality

linkAnnotation style picker

The annotation style picker was overhauled, creating a unified "inspector" for annotation properties. It is also now possible change a new annotation's properties by tapping the active tool from the annotation toolbar.

Style Picker

linkNew annotation creation tools

We added new annotation creation tools for straight & cloudy polyline & polygon annotations, which are of particular importance for the architecture/construction/engineering industry.

Cloudy Tool

linkReflow control

Reading a PDF on a mobile phone can be a challenge, as most PDFs are designed to be viewed on a letter or A4 sized sheets of paper. Trying to read a PDF scaled down to a device the size of an index card results in much zooming and panning.

To help users read a PDF without constant zooming and panning, we introduced a new Reflow control, that "reflows" the PDF's text in the same way that a word processor or web page does. This lays the text out in a single column and allows the user to resize the text to whatever size is comfortable for them. We also took care to preserve the original fonts, style and relative text sizes of the PDF.

linkCustomization APIs

Many of our customers need to customize the look or behavior of our components. Because Tools.framework is open source there are no limits to how you can customize the look or behavior of the PDFTron UI.

Even so, if the customizations your app requires are not extensive, it is usually more convenient if the changes can be accomplished via APIs. Therefore we added a number of new APIs that control annotation creation/editing permissions, which toolbar buttons are shown/hidden, the ability to add new buttons or rearrange existing ones, change icons, control popover menu options, and more, all via APIs. See Configuring a Document Viewer, Tools customization and Disabling tools for more information.

Going forward we will be adding even more APIs, so please let us know if you have any ideas that would make you even more productive.

linkUIDocumentBrowser & File Coordination support

In iOS 8, Apple released the UIDocumentPicker which could be used to access files outside of an app's sandbox. Unfortunately the control was fairly limited and few apps added support for cross-app document sharing. In iOS 11, Apple released the much improved UIDocumentBrowser (along side the new Files app) and updated the UIDocumentPicker's UI to match the updated functionality. This new functionality proved much more successful, and saw widespread adoption among third-party apps, including Google Drive, Box and Dropbox.

To support file access via these controls means the app must support file coordination, both for permission to read certain files, and so that the app can respond properly if another app is accessing or editing a file that it already has open. This is done by subclass and protocol implementation of NSFileCoordinator/NSFilePresenter/UIDocument. This is a somewhat arduous process, so to save our customers time we added drop-in support for opening coordinated files in PDFTron components via the PTCoordinatedDocument class.

Our "Complete Reader" sample project now uses a UIDocumentBrowser as its launch UIViewController, and fully supports opening and saving documents from other apps (including iCloud) that support file coordination.

PTDocumentViewController

linkOther highly requested features

Here are some other highly requested features we added based on customer requests:

linkLooking ahead to 2019

Thank you to all our customers who helped us make 2018 a success. We appreciate each and everyone one of you, and are committed to making sure you are successful in your PDF integration.

We are hard at work this year with lots planned, so please stay tuned, and do not hesitate to get in touch if you have any ideas on how we can make our SDK even better.