2017

PSPDFKit for Web 2017.6

We are continuously developing PSPDFKit for Web and are excited to announce the release of our seventh update this year, adding note annotations as well as...

Introducing PDFXKit - A drop-in replacement for PDFKit

Today, we are open sourcing PDFXKit, a drop-in replacement for Apple's PDFKit that uses our industry-proven PSPDFKit SDK under the hood. Apple's PDFKit provides a great...

Native View Controllers and React Native - It Just Works™

This week, we welcome Ben Kraus as a guest author on Inside PSPDFKit, explaining the process of integrating our PDF SDK into Canvas Teacher. Sometimes, React...

WebAssembly: A New Hope

In March 2017, just five months ago, the WebAssembly Community Group reached consensus on the initial (MVP) binary format, JavaScript API, and reference interpreter. This exciting...

Secure Media Playback on Android

Did you know that PDF can contain videos? While the format was first created in 1993, it has evolved and didn’t take long to adopt multimedia...

Synchronizing Documents with PSPDFKit Instant

Nowadays people work from multiple devices expecting their data to be available everywhere. Teams need to be able to collaborate no matter where their members are...

PSPDFKit 3.3 for Android

Say hello to PSPDFKit 3.3 for Android! Our newest release of PSPDFKit for Android features a new document progress API, annotation note editing, extraction of markup...

PSPDFKit 6.9 for iOS

Introducing PSPDFKit 6.9 for iOS! This version features a new text markup behavior, a refreshed Catalog example project, various improvements to signatures and some UI tweaks....

PSPDFKit for Web 2017.5

With the release of PSPDFKit for Web 2017.5, we are introducing an all new standalone mode. Previously, PSPDFKit for Web only supported server-backed deployments. As of...

User Breakpoints in Xcode

Everybody uses breakpoints in Xcode, but are you aware of user breakpoints? I am going to show you how to use them and what to use...

PSPDFKit 6.8 for iOS

Version 6.8 of PSPDFKit for iOS features a completely revamped Digital Signature implementation, watermark filtering, some iOS 11 fixes and various smaller improvements and fixes. You...

PSPDFKit 3.2 for Android

Today we are proudly announcing the release of PSPDFKit 3.2 for Android with a popularly requested settings menu that lets users switch between available page scrolling...

Even Swiftier Objective-C

Another fascinating WWDC is behind us. This year we again witnessed a whole host of newly presented features and refinements to the Swift language, now already...

Linting and Code Formatting at PSPDFKit

At PSPDFKit, we work on a huge codebase written in many different languages, including C++, Objective-C, Java, JavaScript, Swift, and Kotlin. As we’ve been evolving our...

PSPDFKit for macOS

Today, we are happy to introduce our newest addition to the PSPDF family, PSPDFKit for macOS. The Mac has always been, and continues to be, near...

50 Shaders of Android: Drawing on Canvas

Canvas and Shaders, if used wisely, can simplify your life and help you achieve wonderful UI effects and animations.

PSPDFKit for Web 2017.4

We’re thrilled to announce a new major update of our Web SDK. PSPDFKit for Web 2017.4 brings support for interacting with annotations on mobile devices, a...

PSPDFKit 3.1 for Android

Today we are proudly announcing the release of PSPDFKit 3.1 for Android, including the new scrollable thumbnail bar. Check out our full list of changes in...

PSPDFKit 6.7 for iOS

Today we're excited to release PSPDFKit 6.7 for iOS! This version includes a new page grabber UI control, file coordination support, document progress indication and various...

Creating Better User Experiences with Animations and Lottie

Lottie is a fairly new library that enables rendering After Effects animations in real time in your apps, available for iOS (and macOS), Android and React...

How We Test and Generate Interactive CSS Documentation

With the release of PSPDFKit for Web 2017.3, among other improvements, we added more public CSS classes. The CSS classes of PSPDFKit for Web get obfuscated...

4 Steps to a Successful Company Retreat

Whether you work remotely or go into the same office every weekday, changing the scenery to help cultivate a close-knit work culture with a company retreat...

PSPDFKit 3.0 for Android

Today we are happy to announce the release of PSPDFKit 3.0 for Android, finally 😃 bringing support for PDF Forms to our Android framework! Version 3.0...

PSPDFKit 6.6 for iOS

Another month, another version of PSPDFKit for iOS! Version 6.6 features significantly improved Right-to-Left support, enhanced annotation drawing, better fine-grained control of line thickness for annotations,...

Internationalization - Right to Left Support for Mobile Apps

Right to left support is something I always feared because it sounded like a huge undertaking to get your UI working with it. At PSPDFKit we...

PSPDFKit for Web 2017.3

Today we're releasing the third major update in 2017 for our Web SDK. This release comes with the new printing feature, significantly improved customizability, a new...

Writing Concise Code with Kotlin and RxJava

One of the reasons I love Kotlin is its expressiveness compared to Java. In Kotlin, you can implement much more logic with fewer characters, making Java...

How to Build Free-Hand Drawing Using React

At PSPDFKit, we make the most advanced PDF SDKs for mobile and desktop. We released PSPDFKit for Web in December and are working hard to bring...

PSPDFKit 6.5 for iOS

Introducing PSPDFKit 6.5 for iOS! This release includes first-class Apple Pencil support, 3D Touch features, a completely rewritten and improved forms parser, UI improvements as well...

Women in Software Development? YES PLEASE!

We are excited about International Women’s Day at PSPDFKit! The reason is simple, the day is too important for us and the tech workforce. We share...

Useful Tools to Share & Organize Work Between Developers and Designers

In the previous article, we talked about how we implement the agile design process. Since tools are integral to a streamlined work process, let’s also take...

Everybody Designs: An Agile Approach to Design

PSPDFKit GmbH, at its heart, is an engineering company, and engineering excellence is always the highest priority. Building a framework that thousands of large and small...

PSPDFKit for Web 2017.2

We are pleased to introduce PSPDFKit for Web 2017.2, our latest release which adds an HTTP API for working with annotations in your documents.

How to Fix a Bug, Blindfolded.

This is a story about a crash, caused by a bug inside the Android hardware accelerated view drawing. And a story about a team of developers...

What Cultural Diversity Means to Us

At PSPDFKit, we believe that cultural diversity is a strength that should be embraced and celebrated. While we typically steer clear of speaking on politics as...

Making the Most of Remote Work

At PSPDFKit, we strive to hire the best people for the job, regardless where they are in the world. We’ve written about our hiring process and...

PSPDFKit 6.4 for iOS

Introducing PSPDFKit 6.4 for iOS. This release includes support for Right-to-Left languages such as Arabic, a custom image editor, the ability to use FTS 5, Swift...

PSPDFKit for Web 2017.1

Introducing PSPDFKit for Web 2017.1, the first release of this year. This release adds a strongly requested feature and we're thrilled to show it to you:...

PSPDFKit 2.9 for Android

Today we are bringing you the first big update of PSPDFKit for Android in 2017 - version 2.9, including dual-page scrolling mode, custom localizations support, improved...

The Struggle with Action Extensions

Extensions are becoming more and more important on iOS. At PSPDFKit we believe it is important to be a good citizen and to integrate with the...

The Case for Deprecating UITableView

UITableView is a cornerstone of classical iOS development and one of the oldest classes. It's used in pretty much all iOS apps and has been around...

Creating a Compelling Today Widget

With our latest PDF Viewer update, 1.5, we are not only adding Spotlight search, 3D Touch gestures, Wi-Fi Drive, a lot of bug fixes, and improvements,...

Crazy Fast Builds Using distcc

At PSPDFKit we continue to grow our product range, working hard to add new and improve existing features, all while handling the countless special cases that...

2016 In Review

As we're entering 2017, we want to take a quick break to say thank you to all of our amazing customers and readers. As we recap...

2016

PSPDFKit 6.3 for iOS

Introducing PSPDFKit 6.3 for iOS. This release includes PSPDF Instant compatibility, new languages and various UI improvements. Read up on our changelog to get more information...

PSPDFKit for Web 2016.3

Introducing PSPDFKit for Web 2016.3. 2016.3 is our last release of the year. With this release, we brought you an integrated dashboard that makes it easier...

Chef on macOS

At PSPDFKit we're currently using 20 Mac minis to run our continuous integration. Manually setting up these machines is a very time consuming and error prone...

Hiding Your Action and Share Extensions In Your Own Apps

Developers received a much higher level of integration in iOS 8 thanks to app extensions. Among these, Share and Action extensions are quite popular, since they...

PSPDFKit for Web

It's finally here, and it's our last BIG release before 2017! Meet PSPDFKit for Web. Ever since we started licensing our mobile frameworks, our customers have...

PSPDFKit 2.8 for Android

You probably were not expecting it, but today we are proudly shipping PSPDFKit 2.8 for Android: New shape annotation types, a point editing mode, flexible toolbars, a powerful...

PSPDFKit 6.2 for iOS

Announcing PSPDFKit 6.2 for iOS. This release includes various new customization options, performance and rendering improvements, and many, many details. Take a look at our changelog...

A clean status bar with Android System UI and QuickDemo

More often than necessary, screenshots and videos of Android apps suffer from showing an untidy status bar with unwanted notification icons, a drained battery indicator, and...

PSPDFKit 6.1 for iOS

We are proud to announce the immediate availability of PSPDFKit 6.1 for iOS. This release focused heavily on fixing a lot of edge cases that were...

Restoring state in Android MVP architecture

State restoration is an important part of the Android framework, but, when implementing some MVP architecture, we can hit some problems. Specifically, making presenter aware of...

PSPDFKit 2.7 for Android

Another month, another version of PSPDFKit for Android - say hello to 2.7: new annotation types, improved reading and editing UI, and better customizability! This blog...

PDF Viewer

After more than 5 years of providing the industry leading PDF framework for companies such as Dropbox, Evernote, Box, IBM, and United Airlines, we have finally...

Running tests with Clang Address Sanitizer

Clang has powerful sanitizers that help you find bugs faster, fix them with more confidence, and find all these impossible-to-reproduce race conditions. These tools are extremely...

Top 5 ways customers use the Document Editor

When we talk about our Document Editor, we’re referring to editing the actual document, not the content. For document markup, we have the Annotations component, which...

Android animations powered by RxJava

Animating objects in Android is seemingly easy, especially using ViewPropertyAnimator which provides out-of-the-box solutions and easy-to-construct view property animations. Add RxJava to the mix and you...

PSPDFKit 2.6 for Android

PSPDFKit continues its saga on Android with the 2.6 release of PSPDFKit for Android and a host of new features and improvements! In this post, we...

PSPDFKit 💖 React Native

React Native enables you to build native mobile apps using a consistent developer experience based on JavaScript and React. It’s built by Facebook and already used...

Debugging a specific instance with scripted breakpoints

When debugging an issue that is somewhere deep inside your code, you easily end up debugging a class that has lots of living instances. Sometimes, you...

PSPDFKit 6 for iOS

Today we're releasing PSPDFKit 6 for iOS. It's fully optimized for Xcode 8 and iOS 10, comes with improved API for Swift 3, faster rendering, various...

Hiring a distributed team

Who you hire can have a dramatic effect on your team’s culture and company’s productivity. People are the most influential factor in determining the success or...

Writing good bug reports

At PSPDFKit, we provide an SDK to display and annotate PDFs, for other people to integrate into their apps. There is a large set of API...

Real-time collaboration, Apple, and you

Yesterday at the Apple Event, next to iPhone 7 and Apple Watch Series 2, Apple announced something interesting: real-time collaboration for iWork across Mac, iPad, iPhone...

Spicing up status messages

Competition in the App Store has grown to be extremely fierce, so unless you’re inventing a whole new market, you are unlikely to succeed with an...

Just a simple bookmark

Since the inception of longform text, readers found that they needed to somehow mark their progress and interesting passages as they read. Marking your position in...

PSPDFKit 2.5 for Android

The PSPDFKit Android team has been working hard to bring you the newest release 2.5 of PSPDFKit for Android. Check out this post to learn more...

Converting Xcode Test Runs to JUnit, the Fast Way

Testing is very important at PSPDFKit. We're building an SDK. When you give your API to other developers, there are many more things that can go...

The Importance of Retreats for a Remote Company

At PSPDFKit, we believe working remote is great. For the individual, it gives you an amazing amount of freedom to get things done when, where and...

Opening a PDF in Swift

It's easy to overlook some of our most basic developer actions, because we do them so frequently. However, with the continuous development and increase in the...

Preventing Popovers on Popovers

Pages on iOS 9 shows an activity view controller in a way we can’t reproduce, and UIKit’s behavior when presenting action sheets and activity view controllers from...

How to build a screen reader

With our PSPDFKit 2.4 for Android release we improved accessibility of our framework and also shipped a ScreenReaderExample as part of our updated catalog app. In...

Efficient iOS Version Checking

Few apps have the luxury to support only the most recent version of iOS. It's often necessary to set a lower deployment target and branch in...

PSPDFKit 5.4 for iOS

After a busy WWDC week we're back with a fresh new version of PSPDFKit for iOS. This time around the biggest changes happened under the hood....

Investigating Thread Safety of UIImage

UIImage is one of the most important classes in UIKit. When compared to browsers, image handling on iOS is still quite tricky. Loading even a medium-sized...

PSPDFKit 5.3 for iOS and Beyond

It's been a while since we last talked about feature improvements to our iOS SDK. The last major feature was the release of the Document Editor...

PSPDFKit 2.4 for Android

We're proud to release PSPDFKit 2.4 for Android, just under a month after the last release which included our new Document Editor component. This release is...

End–to–End Testing: What, Why, and How?

Silently corrupting user data is commonly regarded as The Worst Thing You Can Do™ (TWTYCD). Following my personal mantra, “schlimmer geht’s immer” (loosely translates to “there’s...

Testing HTTP APIs in Elixir

Here at PSPDFKit, we love testing. With the growing diversity of products on our roadmap, there's no shortage in the variety of testing approaches we employ...

Swifty Objective-C

Objective-C originates from the early 1980s, and while the language has evolved a lot over the years, it's still no match for really modern languages like...

Selective Pull Request Testing

PSPDFKit used to be an iOS-only framework and testing pull requests was easy. The Jenkins plugin ghprb (short for “GitHub Pull Request Builder”) started the iOS...

Continuous iOS Code Coverage With Jenkins and Slather

We at PSPDFKit are big believers in automated testing. Unit tests, UI automation tests, snapshot tests, you name it, we do it all. Whenever you are...

Keyboard Handling on Android

Working with a soft keyboard on Android can be confusing. While implementing free-text annotation editing into the PSPDFKit for Android framework, we felt this way many...

Running UI Tests on iOS With Ludicrous Speed

You might think the UI for a PDF viewer/editor would be trivial, however it’s anything but. At PSPDFKit we have a ton of simple and complex...

Adding live search to Jazzy docs

At PSPDFKit, we use Jazzy to generate our great-looking iOS API docs. Jazzy is an Objective-C/Swift documentation generator built by the team at Realm. Jazzy uses...

Kotlin-Ready Online Guides

Our Android guides for PSPDFKit received a large update – now with Kotlin usage examples

A Pragmatic Approach to Cross-Platform

At PSPDFKit we offer native SDKs for iOS, Android and soon also for the browser. Yet, invisible to the user, all share a large part of...

Debugging Rotation Issues

Last week as we prepared to ship our new Document Editor, we discovered a blocker: sometimes the app froze after rotating the device. The user interface...

The Document Editor

With the release of PSPDFKit 5.3 for iOS and PSPDFKit 2.3 for Android we're not only launching large updates to our SDK for both platforms, we're—for...

Surprises with Swift Extensions

tl;dr: Swift extensions on Objective-C classes still need to be prefixed. You can use @objc(prefix_name) to keep the name pretty in Swift and expose a prefixed...

PSPDFKit 2.2 for Android

Our newest release of PSPDFKit 2.2 for Android comes with many improvements on annotation editing, search and the public API.

PSPDFKit 5.2 for iOS

Improved Theming Text and annotation selection now use tintColor, enabling easier theming by inheriting color from superviews. Selection color can be customized individually by setting tintColor...

The curious case of Android premultiplied alpha

Having been designed for comparatively slow mobile devices, both iOS and Android expose highly optimized development APIs. In some cases this can lead to confusing behaviour,...

PSPDFKit 2.1 for Android

The PSPDFKit Android team has been working hard to bring you the next release – PSPDFKit 2.1 for Android – with many features and improvements.

2015

PSPDFKit 5.1 for iOS

With PSPDFKit 5.1, we focused on improving the overall drawing experience, easier integration, better iOS 9 adaptivity, improving the night mode as well as tweaking many...

PSPDFKit 2.0 for Android

We’re proud to announce the immediate availability of PSPDFKit 2.0 for Android with support for creating and editing annotations. We know a lot of people were waiting...

Presentation Controllers and Adaptive Presentations

iOS 8 introduced the UIPresentationController class to manage and customize view controller presentations in a reusable manner. This came with adaptive presentations: adjusting the way a...

Using ccache for Fun and Profit

At PSPDFKit we work with a very large codebase: over 600k lines and growing. Of course we aim to write compact, efficient code — but the...

PSPDFKit 5.0 for iOS

PSPDFKit 5 for iOS - the next major version of our PDF SDK - is around the corner, and we're happy to give you a preview...

PSPDFKit 1.4 for Android

Just when you get used to the improvements we made in the last release, we surprise you with more on Android. With another great update just...

PSPDFKit 1.3 for Android

With version 1.3 for Android, we continue to iterate, while also preparing for the big v2 update that will include annotation editing later in September.

Announcing Control Tower - A Powerful & Robust License Manager

As a bootstrap startup, it is important to reinvest in our company and even more important to choose wisely where we reinvest. After many requests and...

PSPDFKit 1.2 for Android

The 1.2 release for Android is our biggest release yet. Our team has done an amazing job and it's time for us to show you some...

PSPDFKit 4.4 for iOS

We are happy to finally ship PSPDFKit 4.4 for iOS. This release comes as a new dynamic framework and includes many detailed improvements. It's over 1000...

PSPDFKit 4.3 for iOS

In PSPDFKit 4.3 we focussed on stability and detail improvements touching all parts of the framework. It's a highly recommended update.

PSPDFKit 4.2 for iOS

PSPDFKit 4.2 is the result of more than 2 months of hard work and working with our customers to build the best version of PSPDFKit so...

2014

PSPDFKit 4.1 for iOS

Version 4.1 features many detail improvements and we've updated everything to work well with the new iOS 8.1. Here are some of the highlights: Natural Drawing...

PSPDFKit 4.0 for iOS

Version 4.0 is a major new release. We've created a convenient migration guide to make upgrading as simple as possible. iOS 8 & Xcode 6 The...

PSPDFKit 3.7 for iOS

PSPDFKit 3.7 is another great milestone and adds a few long-requested features and improvements: Multiple Drawing Styles A common pattern is having a thin, solid pen...

PSPDFKit 3.6 for iOS

We're really proud to present our 3.6 release just a month after the 3.5 milestone. Next to it being fully compatible and tested with iOS 7.1...

PSPDFKit 3.5 for iOS

PSPDFKit 3.5 features some exciting changes that make it more delightful to use. We also worked on quite a few under-the-hood tweaks, modularizing internals and preparing...

PSPDFKit 3.4 for iOS

Version 3.4 isn't yet released, but here's a preview of some small and big details that we improved in this version. Annotation Toolbar Selection We've increased...

2013

PSPDFKit 3.3 for iOS

The year 2014 just started but we've been mighty busy tweaking and improving our PDF SDK. PSPDFKit 3.3 adds support for the upcoming iOS 7.1, can...