This article discusses the basics of Android reverse engineering using the Apktool, smali, and Java decompilers.
A look at self-sizing table view cells for apps supporting iOS 10, 11, and 12, covering three implementation approaches and some pitfalls I encountered supporting these across our UI in PSPDFKit.
This post surveys the Ruby landscape in 2018 to evaluate the current state-of-the-art of generating PDFs with Ruby.
Announcing PSPDFKit for Web 2018.7 — Featuring a new Catalog example app, smooth drawing, a new highlighter tool, and several new customization options.
How to add a PDF viewer and annotator to your TypeScript app by embedding PSPDFKit for Web.
Introducing PSPDFKit 5.1 for Android — featuring a new free-form redaction tool, AndroidX support, and many more improvements.
An exploration of how permissions work, starting from a high level and working down to the lower lever managed by FUSE, the native Android module that interacts with the file system.
We take a look at how images are stored in a PDF and discuss some important things to know about them.
Introducing PSPDFKit 8.1 for iOS — featuring free-form redaction, file conflict detection, and Apple Pencil gestures.
We support all major hybrid technologies, including Cordova, Electron, Flutter, Ionic, React Native, Titanium, and Xamarin.
In this blog post, we'll look at an example of how to generate PDFs with Elixir.
This post describes the process for contributing code to the Swift programming language, including how to propose changes to the language, write a pull request, address feedback, and make your code part of the next version of the language.
A blog post showing how we go the extra mile to create good-looking color in night mode.
Did you know that PDF Viewer offers everything you need for reviewing documents? In this article, you'll learn how you can use PSPDFKit's markup tools to make editing suggestions to the author of an article.
A look at the different ways that we measure and try to improve performance at PSPDFKit.
A look at how we generate our screenshots for the iOS App Store.
A discussion of how managing time by incorporating productivity techniques, making lists, planning your days, and finding ways to utilize downtime can help with your workflow.
Announcing PSPDFKit for Web 2018.6 — with stamp annotations, bookmarks, a smaller WASM build, and a lot more.
Introducing PSPDFKit 5 for Android — featuring the new Redaction and Comparison components, many improvements to existing APIs, and full support for Android 9 Pie.
A recap of how we integrated drag-and-drop support into our Document Editor in iOS.
An overview of the experimental Kotlin Contracts API.
PDFs hold information you may not know about. Discover different forms of metadata and where to look for them.
How to use a flexible path API to draw complex shapes with borders.
In this blog post, we’ll look at an example of how we can run multiple instances of a service with Docker Compose.
The benefits of using clang-tidy and how to get started setting it up in Jenkins.
If you're going to fall down a rabbit hole anyway, you might as well enjoy it!
How to add a PDF viewer to your Vue.js app by embedding PSPDFKit for Web.
How to improve Dynamic Type support in your app and bring it to the next level.
Introducing PSPDFKit 8 for iOS. Featuring new redaction and comparison components, an overhauled sharing UI, and full iOS 12 and Xcode 10 support.
In this blog post, we will look at some simple solutions that we use at PSPDFKit to make our modals more inclusive and accessible.
Learn about how we take new engineer hires and guide them toward being fully productive members of our team.
Explore the extensibility capabilities of LLDB, a debugger for Swift, C, C++, and Objective-C code.
Here at PSPDFKit, we believe doing practical work is the best way to learn things, so we decided to create a few example apps to help customers explore our framework.
We cover how music can help you get in that all-important and elusive state of flow.
A complete step-by-step guide on how to install CocoaPods and integrate PSPDFKit.
We're exploring solutions to run native code in Electron and how WebAssembly can help us with this.
PSPDFKit for Web and Progressive Web Applications: an open source example and guide.
We show how a developer can use our PSPDFPageTemplate class to create custom PDF templates with iOS
With macOS Mojave, Apple is adding support to bring apps written in UIKit to macOS without the requirement of having to rewrite the UI in AppKit. This is not yet officially supported — this post will explore what we can expect in 2019 and how you can use Marzipan today.
How we handle changelogs at PSPDFKit and the tools we built to help us with this.
Is naming a variable so hard? According to Martin Fowler, it is. In this blog post, I'll try to shed some light on what naming entails and why it's a challenge.
Announcing PSPDFKit for Web 2018.5, with image annotations, new table of contents and annotation sidebars, ink highlighter and arrow tools, and a lot more.
Introducing PSPDFKit 4.8 for Android — with document tabs, a pop-up toolbar, custom free text fonts, a new Document Editor API, and more.
An outline of some of the more advanced techniques you can apply to React Native UI components on Android.
We show how a developer can use Edge DevTools to debug a WebView in a UWP app.
RxJava can be useful for many things, and in this post, we’ll have a look at how to use it to add offline support to your app.
A short introduction to Immutable.js and how lazy operations improve performance and readability of your code.
Communication is hard — especially for remote companies. Here's how we organize communication at PSPDFKit.
How we added simple spelling and grammar checks to our website build process to catch some common mistakes.
Announcing PDF Viewer 3.0 with PDF Viewer Pro, our feature pack for the professional user.
On July 19, our CEO, Peter Steinberger, was interviewed by John Sundell on his Swift by Sundell podcast.
How to generate on-device PDF reports without using an internet connection.
Tutorial on how to set up a back-pressure queuing system in Elixir with sbroker.
Introducing PSPDFKit 7.7 for iOS — featuring a new document info screen, Document Editor enhancements, improved thumbnail filtering, image document export, and preliminary iOS 12 and Xcode 10 support.
Another take on writing your project's Gradle build files in pure Kotlin code.
Announcing PSPDFKit for Web 2018.4, which introduces shape annotations, blend modes, and an improved annotation toolbar.
A WebAssembly Benchmark for browser vendors to test a real-world production application.
Slack is both amazing and awful. At a time when many companies quit Slack, we refined our processes to make it work well for us.
We take a look at some of the things you should keep in mind when designing an Android library.
We're taking a look at how to embed files using file annotations.
Simplify managing multiple versions of a document with this one weird trick.
With the new Image Document component, image files can be displayed and annotated with PSPDFKit, just like PDF files.
Introducing PSPDFKit 7.6 for iOS — featuring non-destructive image documents, page templates, and stamp UI improvements.
Announcing PSPDFKit for Web 2018.3, which introduces ink signatures, password-protected PDF unlocking, and combined touchscreen and mouse support.
Introducing PSPDFKit 4.6 for Android — featuring annotation & page rotation, non-destructive image documents, system clipboard images, file annotations, custom page content and more.
Introducing PSPDFKit 1.3 for Windows — featuring customizable toolbars, ink signatures and various other improvements and API additions.
Reviewbot posts GitHub pull requests that are ready to be reviewed into Slack. How does it know when a pull request is ready? We have a special label in our repositories, named `READY TO REVIEW`.
Line annotations are one of the most frequently used annotation types, and they are ideal for things like drawing attention to important areas of your document, diagramming the process flow, and decoration.
We'll look at how a simple Swift script and PSPDFKit for macOS can be used to export image assets for your website or app from a vector PDF graphic, using an iOS app icon as an example.
An overview of how Auto Layout has changed in recent years and how to best use it.
How to create asynchronous stacktraces in Android Studio and IntelliJ.
We explain iOS 11's Smart Punctuation and discuss how it affects string handling in your app.
Introducing PSPDFKit 1.2 for Windows — featuring indexed full-text search, a new API for page sizes and an improved catalog.
An explanation of what appearance streams actually are, along with their gotchas.
This blog post is a short introduction to Docker Compose and will explain how we use it to manage different system configurations that are built off the same base configuration.
In this article, we discuss our internal process for how we handle bugs that you report.
Debugging in real time with Android Studio.
We share some tips on how to navigate a new codebase.
Introducing annotation replies and reviews in PSPDFKit 7.5 for iOS and PSPDFKit 4.5 for Android.
A quick overview of how to use PDF.js, created by Mozilla, to show PDFs on your webpage.
In this article, we have look at using result types to model failable computations in the Djinni IDL.
Announcing PSPDFKit for Web 2018.2, with support for Electron, improved APIs, localization for 27 languages, and much more.
We explain how to integrate Middleman and Webpack to boost your frontend productivity.
We look at SQLite’s FTS extension and how you can use it to add high performance search to your app.
In this blog post, we show how easy it is to deploy our standalone, WebAssembly-powered version of PSPDFKit for Web to ZEIT’s now.sh, a cloud provider.
`UICollectionView` is now at the heart of every document. This blog post talks about why and how we rewrote our view hierarchy.
Kotlin provides the ability to extend any class with new functionality, and we can use this to expand the PSPDFKit API.
Introducing Android support for our native UI component for showing PDFs in a React Native app with PSPDFKit.
How to handle rendering large amounts of bitmaps and maintain a slick UX while doing it.
Objective-C and Swift interoperability with PSPDFKitSwift
Introducing PSPDFKit 7.4 for iOS — featuring a new document features helper, text selection enhancements, and improved Swift interoperability.
Introducing a native UI component for showing PDFs in a React Native app with PSPDFKit.
Four simple yet effective solutions we currently employ in PSPDFKit for Web to reduce WebAssembly startup time.
We’re taking a look at how to run Elixir applications within a Docker container, and how that can simplify the setup of development and deployment environments.
Announcing PSPDFKit for Web 2018.1, with a new thumbnail sidebar, page rotation, and XFDF support.
We look at how easy it is to theme PSPDFKit for Web to fit your web app’s style.
We discuss a simple approach for doing a public survey.
The best shortcuts for Android Studio. The most famous and the most underrated.
ABI? Module stability? What does binary stability mean, and how will it affect you?
Why protecting PDF documents with a digital signature is important and how PSPDFKit signs and validates a document.
Useful tricks for beginners to start writing better code with Kotlin.
Introducing PSPDFKit 7.3 for iOS. Featuring image document support, text selection enhancements, and Digital Signature improvements.
Announcing PSPDFKit for Web 2017.9, Interactive Forms, Instant Layers, a Responsive Toolbar, and Headless Mode
Utilizing the new Drag and Drop feature in iOS 11, and how we integrated it to enhance the user experience.
Tips and tricks for using vector-based stamp annotations.
Instant JSON is a low-tech way to share annotations between documents
Introducing PSPDFKit 7.1 for iOS. Featuring iPhone X compatibility, copying and pasting document pages, drawing performance improvements, and more.
A Case Study with Apple Design Award Winner Ulysses.
Announcing PSPDFKit for Web 2017.7, Supporting Horizontal Scaling, Externally Managed Documents, and an Improved Printing System
Electronic signatures have come a long way in the past couple decades in both adoption and adding additional security to a signature on an electronic document.
We're proud to announce version 2.0 of our macOS SDK. With Apple's release of High...
Introducing PSPDFKit 7.0 for iOS. iOS 11 support. Drag and Drop. New View Hierarchy. Biometric Signatures. Checkpoints.
Announcing PSPDFKit for Web 2017.6.1, with full support for Internet Explorer 11 when using the standalone deployment option.
Announcing PSPDFKit for Web 2017.6, introducing Double Page mode, Note Annotations and improved rendering performances
Today, we are open sourcing PDFXKit, a drop-in replacement for Apple's PDFKit that uses our...
This week, we welcome Ben Kraus as a guest author on Inside PSPDFKit, explaining the...
Picking smart defaults with security in mind when playing videos on Android.
Nowadays people work from multiple devices expecting their data to be available everywhere. Teams need...
Introducing PSPDFKit 6.9 for iOS. Text Markup Behavior. Catalog Refresh. Signature Improvements. UI Tweaks.
User breakpoints are a not very well known feature in Xcode but they are very powerful and can improve your debugging experience and show issues more prominent.
Introducing PSPDFKit 6.8 for iOS. Revamped Digital Signatures. Watermark Filtering. iOS 11. And More.
Today we're releasing PSPDFKit 3.2 for Android! With a new night mode and scrolling settings, improved search and video annotation support.
Another fascinating WWDC is behind us. This year we again witnessed a whole host of...
Today, we are happy to introduce our newest addition to the PSPDF family, PSPDFKit for...
Low-level drawing and animation on Android using Canvas and powerful Shader classes.
PSPDFKit for Web 2017.4 is out, now with mobile annotations, a toolbar API and a document pan mode!
Introducing PSPDFKit 6.7 for iOS. Page Grabber. File Coordination. Document Progress Indication. Privacy Access Denied UI.
Improving an app’s User Experience made easy by adding animations powered by Lottie.
Automating CSS testing and documentation with Hound and Webdriver
Whether you work remotely or go into the same office every weekday, changing the scenery...
Introducing PSPDFKit 6.6 for iOS. Right-to-Left Documents. Annotation Drawing. Line Thickness. Various Bug-fixes.
What Right to Left Support Actually Means and How We Implemented It
PSPDFKit for Web 2017.3 with printing and greatly improved CSS customization.
Tips and tricks how to write readable, concise, and beautiful code using the Kotlin language and RxJava.
We implement a simple vector based free-hand drawing with React using SVG.
Introducing PSPDFKit 6.5 for iOS. Better Apple Pencil Support. 3D Touch. Forms. UI Enhancements. Even More Improvements.
The software and services PSPDFKit uses for design work
This is a story about fixing a bug, even when all the tools go kaput.
At PSPDFKit, we strive to hire the best people for the job, regardless of where they are in the world. Here, I want to share how I’ve been making the most of remote work.
Introducing PSPDFKit 6.4 for iOS. RTL Support. Image Editor. FTS 5. Swift Enhancements.
UITableView is a cornerstone of classical iOS development and one of the oldest classes. It's...
Introducing PSPDFKit 6.3 for iOS. PSPDF Instant Compatibility. More Languages. UI Improvements.
At PSPDFKit we're currently using 20 Mac minis to run our continuous integration. Manually setting...
Developers received a much higher level of integration in iOS 8 thanks to app extensions....
It's finally here, and it's our last BIG release before 2017! Meet PSPDFKit for Web....
Announcing PSPDFKit 6.2 for iOS. Lock Annotations. Document Sharing. Customizations. Performance Improvements.
How to enable Android's demo mode using a quick setting tile
PSPDFKit 6.1 for iOS, featuring a whole new search interface overhaul, analytics integration and much more.
State restoration is an important part of the Android framework, but we might encounter problems with it when implementing MVP architecture.
After many years of providing the industry leading PDF framework for companies, PDF Viewer is now available for iOS and Android.
Clang has powerful sanitizers that are incredibly useful, so we collected our experiences using them between iOS, Android and our C++ core to help you through some gotchas.
We’ve identified five popular ways to use the Document Editor, but since it’s backed by our powerful API, you can build your own custom tools to more specifically fit your needs.
The purpose of this post is to show you how to combine RxJava features with animations on Android to create a great user interface without a lot of nested code.
PSPDFKit continues its saga on Android with the 2.6 release and a host of new features and improvements! Check out this post to learn about the updated features.
React Native enables you to build native mobile apps using a consistent developer experience based...
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 are only interested in a very particular one. This can become very tedious work.
PSPDFKit 6 for iOS is fully optimized for Xcode 8 and iOS 10, comes with improved API for Swift 3, faster rendering, various fixes, and a visual refresh.
Who you hire can have a dramatic effect on your team’s culture, company’s productivity and, overall, is the most influential factor in determining the success or failure of a company. Over the past six years at PSPDFKit, we’ve slowly learned what’s important, what works, and what doesn’t work, at least for us.
At PSPDFKit, we work every day to read through developers' bug reports. In fact, we forward many of them to the engineers at Apple. While this post is Apple-centric, many details can be applied to any sort of bug reporting.
Apple recognizes that real-time collaboration is necessary and so do we. Here's how PSPDFKit is upgrading your ability to work with teams.
At PSPDFKit, we likely spend just as much time polishing the UI as we do implementing PDF features or tweaking the performance. Here's a look at how one of our developers explored improving our status messages.
When books became digital, bookmarks became more complicated. Instead of stuffing a piece of paper in a book, you now had to store a digital marker, which is not always as simple as it looks.
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 about the updated features.
Testing is very important at PSPDFKit. We're building an SDK. When you give your API...
At PSPDFKit, we believe working remote is great. For the individual, it gives you an...
It's easy to overlook some of our most basic developer actions, because we do them...
Pages on iOS 9 shows an activity view controller in a way we can’t reproduce, and...
With our PSPDFKit 2.4 for Android release we improved accessibility of our framework and also...
Few apps have the luxury to support only the most recent version of iOS. It's...
UIImage is one of the most important classes in UIKit. When compared to browsers, image...
PSPDFKit 5.3 for iOS includes customizable color picker, new display settings, and other features!
We're proud to release PSPDFKit 2.4 for Android, just under a month after the last...
Silently corrupting user data is commonly regarded as The Worst Thing You Can Do™ (TWTYCD)....
Here at PSPDFKit, we love testing. With the growing diversity of products on our roadmap,...
Objective-C originates from the early 1980s, and while the language has evolved a lot over...
PSPDFKit used to be an iOS-only framework and testing pull requests was easy. The Jenkins...
We at PSPDFKit are big believers in automated testing. Unit tests, UI automation tests, snapshot...
Working with a soft keyboard on Android can be confusing. While implementing free-text annotation editing...
You might think the UI for a PDF viewer/editor would be trivial, however it’s anything...
At PSPDFKit, we use Jazzy to generate our great-looking iOS API docs. Jazzy is an...
At PSPDFKit we offer native SDKs for iOS, Android and soon also for the browser....
Last week as we prepared to ship our new Document Editor, we discovered a blocker:...
With the release of PSPDFKit 5.3 for iOS and PSPDFKit 2.3 for Android we're not...
tl;dr: Swift extensions on Objective-C classes still need to be prefixed. You can use @objc(prefix_name)...
Our newest release of PSPDFKit 2.2 for Android comes with many improvements on annotation editing,...
Improved Theming Text and annotation selection now use tintColor, enabling easier theming by inheriting color...
Having been designed for comparatively slow mobile devices, both iOS and Android expose highly optimized...
With PSPDFKit 5.1, we focused on improving the overall drawing experience, easier integration, better iOS...
Create and edit, Highlight, Underline, StrikeOut, Squiggle, Ink, Note, and FreeText annotations with PSPDFKit 2.0 for Android.
iOS 8 introduced the UIPresentationController class to manage and customize view controller presentations in a...
At PSPDFKit we work with a very large codebase: over 600k lines and growing. Of...
Just when you get used to the improvements we made in the last release, we...
With version 1.3 for Android, we continue to iterate, while also preparing for the big...
As a bootstrap startup, it is important to reinvest in our company and even more...
The 1.2 release for Android is our biggest release yet. Our team has done an...
In PSPDFKit 4.3 we focussed on stability and detail improvements touching all parts of the...
Version 4.1 features many detail improvements and we've updated everything to work well with the...
Version 4.0 is a major new release. We've created a convenient migration guide to make...
PSPDFKit 3.7 is another great milestone and adds a few long-requested features and improvements: Multiple...
We're really proud to present our 3.6 release just a month after the 3.5 milestone....
PSPDFKit 3.5 features some exciting changes that make it more delightful to use. We also...