Integrating Real-Time Collaboration into Your iOS Application
With PSPDFKit Instant, it’s easier than ever to add real-time collaboration features to your PSPDFKit-powered app, allowing your users to seamlessly share, edit, and annotate PDF documents across Android, iOS, and web apps. This article will guide you through integrating Instant into your own apps.
Requirements
-
PSPDFKit and Instant require the latest stable version of Xcode available at the time the release was made.
-
A Document Engine instance and one of our example backends. See the Example Projects guide to get an instance up and running.
-
PSPDFKit for iOS and Instant. PSPDFKit, PSPDFKitUI, and Instant are separate frameworks. The frameworks can be integrated into your application via Swift Package Manager, CocoaPods, or manually by downloading the latest release from my.pspdfkit.com.
Quick Start with the Example Project
Instant comes with a source-available iOS example project, which connects to either one of our example server apps.
-
Run Document Engine locally using one of our example projects.
-
In a web browser, log in to the example app with the same user ID the iOS app uses in
AppDelegate.swift
, which by default istest
. -
Add a document to the server using the Upload PDF button.
-
Select the document to view it with PSPDFKit for Web and add some annotations. You can also create a new layer on the same document to switch between different sets of annotations on the same document.
-
Open
Instant-iOS-Example.xcodeproj
in Xcode. -
Build and run the
Instant-iOS-Example
scheme on iOS Simulator. After launching, the app should load the list of all documents with all their respective layers from the server. -
Tap any layer in the app to download it and show it in an
InstantViewController
. -
Add annotations in the iOS app or in the browser to see annotation syncing.
To run on an iOS device instead of the simulator, replace
localhost
in theserverURL
andbaseURL
inAppDelegate.swift
with the hostname or address that the server can be reached at. This is your Mac’s local IP address, which you can see by option-clicking the Wi-Fi icon in the macOS menu bar.
Troubleshooting
If Instant-iOS-Example
doesn’t build, make sure you’re using the latest stable version of Xcode; expand the Frameworks
group in the Project Navigator; and check that the PSPDFKit.xcframework
, PSPDFKitUI.xcframework
, and Instant.xcframework
frameworks aren’t missing. If the app runs but no documents or layers appear, make sure the userID
in AppDelegate.swift
matches the name you entered in the browser when logging in to the example app and that the server and example app are running on your machine.
Integrating the Instant Framework
There are three ways to integrate the Instant framework: with Swift Package Manager, with CocoaPods, and manually. They’re outlined below.
Swift Package Manager
If you’re already using Swift Package Manager, you can add Instant to your project like so:
-
Integrate the Instant Swift package using the public repository URL.
https://github.com/PSPDFKit/Instant-SP
CocoaPods
If you’re already using CocoaPods, you can add PSPDFKit and Instant to your project by adding the following to your Podfile
:
use_frameworks! target :YourTargetName do pod 'PSPDFKit', podspec: 'https://my.pspdfkit.com/pspdfkit-ios/latest.podspec' pod 'Instant', podspec: 'https://my.pspdfkit.com/instant/latest.podspec' end
Then run pod install
.
Manual Integration
To integrate manually:
-
Drag
Instant.xcframework
into the Frameworks, Libraries, and Embedded Content section of your target.