What Is Flutter?
Flutter is a relatively new hybrid technology (compared to Cordova, Xamarin, and React Native, which are all at least a few years old) and it’s made by Google. According to Google, “Flutter allows you to build beautiful native apps on iOS and Android from a single codebase.”
When we first looked into using Flutter, we enjoyed the development experience, and our experimenting resulted in the PSPDFKit Flutter wrapper. In this post, I’ll talk about how to get started with PSPDFKit Flutter. I’ll also discuss how easy and fast it is to get our sample project running on both Android and iOS.
There are four simple steps, which you’ll find below.
Step 1: Install the Flutter SDK and the IDEs
ℹ️ Note: If you’re following this tutorial on a single platform, it’s not necessary to install the other platform’s IDE. For example, if you want to run the sample project on Android, it’s unnecessary to install Xcode.
Step 2: Clone the PSPDFKit Flutter Repository
You need to download or clone the open source repository for PSPDFKit Flutter:
git clone email@example.com:PSPDFKit/pspdfkit-flutter.git
Step 3: Download and Set Up PSPDFKit
Then, you need to download and set up PSPDFKit for Android and iOS.
Setting Up PSPDFKit for Android
For Android, you need to create a local property file in
pspdfkit-flutter/example/android/local.properties and specify the following properties:
1 2 3 4
sdk.dir=/path/to/your/Android/sdk flutter.sdk=/path/to/your/flutter/sdk pspdfkit.password=YOUR_PASSWORD_GOES_HERE flutter.buildMode=debug
cd into the
pspdfkit-flutter/example directory, and run
flutter emulators --launch <EMULATOR_ID> to launch the desired emulator, like so:
cd pspdfkit-flutter/example flutter emulators --launch <EMULATOR_ID>
💡 Tip: Optionally, you can repeat this step to launch multiple emulators.
Step 4: Build and Run
The app is ready to start! Run
flutter run -d all to deploy the PSPDFKit Flutter example on all your connected devices:
flutter run -d all
Flutter allows you to run our example from a single codebase on both Android and iOS. In our example app, the logic is in
main.dart, and it contains very little platform-specific code.
Let us know what you think!