---
title: "Add PDFs to any mobile app: A framework-by-framework guide"
canonical_url: "https://www.nutrient.io/blog/mobile-pdf-sdk/"
md_url: "https://www.nutrient.io/blog/mobile-pdf-sdk.md"
last_updated: "2026-06-30T19:37:00.586Z"
description: "A developer’s guide to adding PDF viewing, annotations, forms, and signing — and picking the right Nutrient SDK: iOS, Android, RN, Flutter, or MAUI."
---

**TL;DR**

Whatever framework your mobile app is built in — Swift/Objective-C, Kotlin/Java, React Native, Flutter, or.NET MAUI — there’s a Nutrient SDK that adds PDF viewing, annotations, forms, digital signatures, and an AI Assistant for document Q&A and summarization, with a consistent API and a drop-in UI. This guide walks through each one and points you to the right starting place. For the full product picture, start with the [mobile SDK overview](https://www.nutrient.io/sdk/mobile-overview/).

Adding PDF capabilities to a mobile app from scratch — rendering, text selection, annotations, form filling, digital signatures — takes months of engineering. Open source libraries cover some of it (usually viewing or generation), and a commercial SDK gives you the whole stack out of the box. If you go the SDK route, the question isn’t really _which features_ — Nutrient ships the same core feature set on every platform — it’s _which SDK matches the framework you already build in_.

This guide answers that framework by framework: what each SDK supports, how to get started, and where to go deeper. If you’d rather compare from the product side first, see the [mobile SDK overview](https://www.nutrient.io/sdk/mobile-overview/).

## Choose your framework

| Platform                   | Language          | iOS | Android | Offline | Forms | Signatures | AI |
| -------------------------- | ----------------- | --- | ------- | ------- | ----- | ---------- | -- |
| [iOS SDK](https://www.nutrient.io/sdk/ios/)         | Swift/Objective-C | ✅   | —       | ✅       | ✅     | ✅          | ✅  |
| [Android SDK](https://www.nutrient.io/sdk/android/) | Kotlin/Java       | —   | ✅       | ✅       | ✅     | ✅          | ✅  |
| [React Native SDK](https://www.nutrient.io/sdk/react-native/) | JavaScript        | ✅   | ✅       | ✅       | ✅     | ✅          | ✅  |
| [Flutter SDK](https://www.nutrient.io/sdk/flutter/) | Dart              | ✅   | ✅       | ✅       | ✅     | ✅          | ✅  |
| [.NET MAUI SDK](https://www.nutrient.io/sdk/maui/)  | C#                | ✅   | ✅       | ✅       | ✅     | ✅          | ✅  |

## What every Nutrient mobile SDK includes

Across all five platforms, you get the same core feature set, so the capabilities don’t change when you switch frameworks:

- On-device [PDF rendering](https://www.nutrient.io/sdk/viewer/) with smooth scrolling and zoom

- 17 [annotation types](https://www.nutrient.io/sdk/annotations/) — highlights, notes, ink, stamps, shapes — with import and export

- Fillable [PDF forms](https://www.nutrient.io/sdk/form-viewing-and-filling/) with data export

- [Electronic](https://www.nutrient.io/sdk/electronic-signatures/) and [digital signatures](https://www.nutrient.io/sdk/digital-signatures/)

- A [document editor](https://www.nutrient.io/sdk/document-editor/) to reorder, rotate, insert, and delete pages

- [Full-text search](https://www.nutrient.io/sdk/indexed-search/)

- An [AI Assistant](https://www.nutrient.io/sdk/ai-assistant/) for document Q&A and summarization (requires a backend and an LLM provider)

- Offline operation for viewing, annotation, forms, and signing — no network required

The sections below focus on what’s _distinctive_ about each platform’s integration and how to get your first PDF onscreen. Every SDK ships with sample apps and regular updates.

## iOS PDF SDK

[Nutrient’s iOS PDF SDK](https://www.nutrient.io/sdk/ios/) is built for Swift and Objective-C apps on iPhone and iPad. It integrates with both UIKit and SwiftUI, and it ships with a default UI you can extend or replace entirely.

Install via Swift Package Manager or CocoaPods, then present a document:

```bash

# Swift Package Manager

# Add https://github.com/PSPDFKit/PSPDFKit-SP to your Xcode project

```

```swift

import PSPDFKit
import PSPDFKitUI

let document = Document(url: documentURL)
let pdfController = PDFViewController(document: document)
// Wrap in a `UINavigationController` to show the built-in toolbar.
present(UINavigationController(rootViewController: pdfController), animated: true)

```

For a full setup walkthrough, see our blog on [how to edit PDFs in an iOS application using a PDF library](https://www.nutrient.io/blog/how-to-edit-pdfs-using-ios-pdf-library.md).

## Android PDF SDK

[Nutrient’s Android PDF SDK](https://www.nutrient.io/sdk/android/) targets Kotlin and Java apps, with Jetpack Compose and XML layout support and a ready-to-use `PdfActivity`.

Add the dependency to your `build.gradle`, and then show a document:

```kotlin

dependencies {
    implementation("io.nutrient:nutrient:11.5.1")
}

```

```kotlin

val config = PdfActivityConfiguration.Builder(context).build()
PdfActivity.showDocument(context, documentUri, config)

```

For a complete guide, see our blog about [how to build an Android PDF viewer](https://www.nutrient.io/blog/how-to-build-an-android-pdf-viewer.md).

## React Native PDF SDK

[Nutrient’s React Native PDF SDK](https://www.nutrient.io/sdk/react-native/) shares PDF logic across iOS and Android from a single JavaScript codebase — with Expo compatibility — while native modules handle rendering on each platform for fully native performance:

```bash

npm install @nutrient-sdk/react-native
cd ios && pod install

```

```jsx

import NutrientView from '@nutrient-sdk/react-native';

export default function App() {
  return (
    <NutrientView
      document="path/to/document.pdf"
      style={{ flex: 1 }}
    />
  );
}

```

For a full setup guide, see our blog on [how to build a React Native PDF viewer](https://www.nutrient.io/blog/how-to-build-a-react-native-pdf-viewer.md).

## Flutter PDF SDK

[Nutrient’s Flutter PDF SDK](https://www.nutrient.io/sdk/flutter/) is a single Dart package that renders natively on each platform and uniquely adds **web** alongside iOS and Android:

```yaml

# pubspec.yaml

dependencies:
  nutrient_flutter: ^5.5.1

```

```dart

import 'package:nutrient_flutter/nutrient_flutter.dart';

await Nutrient.present('path/to/document.pdf');

```

For a full tutorial, see our blog on [how to create and edit PDFs in Flutter](https://www.nutrient.io/blog/create-and-edit-pdfs-in-flutter.md).

##.NET MAUI PDF SDK

[Nutrient’s.NET MAUI PDF SDK](https://www.nutrient.io/sdk/maui/) is the widest-reaching of the five — one C# codebase that targets **Android, iOS, macOS, and Windows**, including desktop.

Declare the `PDFView` control in XAML:

```xml

<pspdfkit:PDFView x:Name="PDFView" />

```

Then load a document through its controller in the code-behind:

```csharp

var config = PDFView.Controller.CreateViewerConfiguration();
await PDFView.Controller.LoadDocumentAsync("document.pdf", config);

```

For a complete guide, see our walkthrough on [how to build a.NET MAUI PDF viewer](https://www.nutrient.io/blog/how-to-build-a-dotnet-maui-pdf-viewer.md).

## Open source vs. a commercial SDK

Every platform has open source PDF options: Apple’s PDFKit on iOS; `PdfRenderer` and AndroidPdfViewer on Android; `flutter_pdfview` and `pdf`/`printing` on Flutter; `react-native-pdf` on React Native; QuestPDF and PDFsharp on.NET. They handle viewing or generation well and are a fine fit for read-only or simple use cases.

Where they stop is everything _after_ viewing: annotation editing, form filling, electronic and digital signatures, [redaction](https://www.nutrient.io/sdk/redaction/), and a configurable UI. Each platform guide linked above compares its open source options in detail. Nutrient fills that gap with the same editing and UI layer across every framework, plus commercial support.

## Which Nutrient SDK should you use?

Choose an SDK based on your team’s stack and target platforms:

- **Native iOS only** — Use the [iOS SDK](https://www.nutrient.io/sdk/ios/). It delivers the best performance and deepest UIKit/SwiftUI integration.

- **Native Android only** — Use the [Android SDK](https://www.nutrient.io/sdk/android/). It includes full Jetpack Compose support and a native Kotlin API.

- **iOS and Android from one codebase (JavaScript team)** — Use the [React Native SDK](https://www.nutrient.io/sdk/react-native/). It shares logic across both platforms with native rendering under the hood.

- **iOS, Android, and web from one codebase (Dart team)** — Use the [Flutter SDK](https://www.nutrient.io/sdk/flutter/). One package covers all three targets.

- **iOS, Android, macOS, and Windows from one codebase (.NET team)** — Use [.NET MAUI SDK](https://www.nutrient.io/sdk/maui/). It’s the best choice if you’re already in the.NET ecosystem.

Because every SDK ships the same core features, switching frameworks later doesn’t mean giving any of them up. For a side-by-side look at platform support and capabilities, see the [mobile SDK overview](https://www.nutrient.io/sdk/mobile-overview/).

## Conclusion

Whichever framework you build in, there’s a Nutrient SDK that adds full PDF capabilities with a consistent feature set and production-ready defaults — a native iOS app, a cross-platform Flutter or React Native project, or a.NET MAUI app all start from the same place.

Browse the [mobile SDK overview](https://www.nutrient.io/sdk/mobile-overview/) for the full picture, [start a free trial](https://www.nutrient.io/try/) to test any SDK, or [contact Sales](https://www.nutrient.io/contact-sales/?ref=sdk) to discuss licensing.

## FAQ

#### What is a mobile PDF SDK?

A mobile PDF SDK is a software library that you integrate into an iOS or Android app to add PDF capabilities — viewing, annotation, form filling, and digital signatures — without building those features from scratch. Nutrient offers native SDKs for iOS, Android, React Native, Flutter, and.NET MAUI.

#### Which platforms does Nutrient’s mobile PDF SDK support?

Nutrient offers mobile PDF SDKs for iOS (Swift/Objective-C), Android (Kotlin/Java), React Native (JavaScript), Flutter (Dart), and.NET MAUI (C#). All SDKs include PDF viewing, annotations, forms, digital signatures, and an AI Assistant for document Q&A and summarization.

#### Can I use Nutrient’s PDF SDK offline?

Yes. All Nutrient mobile SDKs render PDFs on-device and work fully offline. No network connection is required for viewing, annotating, or signing documents.

#### How do I add PDF viewing to a React Native app?

Install the `@nutrient-sdk/react-native` package, run `pod install` for iOS, and add the `NutrientView` component to your screen. See the [React Native PDF viewer guide](https://www.nutrient.io/blog/how-to-build-a-react-native-pdf-viewer.md) for a complete walkthrough.

#### Does Nutrient’s mobile PDF SDK support digital signatures?

Yes. All Nutrient mobile SDKs support both electronic signatures (drawn or typed) and cryptographic digital signatures with certificate validation across iOS, Android, React Native, Flutter, and.NET MAUI.

#### Is Nutrient’s mobile PDF SDK free?

Nutrient offers a free trial so you can test the SDK before committing. Production use requires a commercial license. [Start your free trial](https://www.nutrient.io/try/) or [contact Sales](https://www.nutrient.io/contact-sales/?ref=sdk) for pricing.
---

## Related pages

- [Accessibility Untangled Why It Matters Guide](/blog/accessibility-untangled-why-it-matters-guide.md)
- [The business case for accessibility: Five ways it drives enterprise value](/blog/5-ways-accessibility-drives-enterprise-value.md)
- [Advanced Techniques For React Native Ui Components](/blog/advanced-techniques-for-react-native-ui-components.md)
- [Auto Tagging And Document Accessibility In Dotnet Sdk](/blog/auto-tagging-and-document-accessibility-in-dotnet-sdk.md)
- [Ai Document Automation Extraction To Action](/blog/ai-document-automation-extraction-to-action.md)
- [The CEO’s AI playbook: Why decision architecture beats model selection](/blog/ceo-ai-playbook-decision-architecture.md)
- [Best Document Viewers](/blog/best-document-viewers.md)
- [Convert One Drive Files To Pdf In Sharepoint](/blog/convert-one-drive-files-to-pdf-in-sharepoint.md)
- [Create And Edit Pdfs In Flutter](/blog/create-and-edit-pdfs-in-flutter.md)
- [Complete Guide To Pdfjs](/blog/complete-guide-to-pdfjs.md)
- [Create Pdfs With React](/blog/create-pdfs-with-react.md)
- [Creating A Document Scanner With Ocr In Python](/blog/creating-a-document-scanner-with-ocr-in-python.md)
- [The CTO’s AI playbook: Why accountability architecture beats orchestration](/blog/cto-ai-playbook-accountability-architecture.md)
- [Digital Signatures](/blog/digital-signatures.md)
- [Digital Workflow Automation](/blog/digital-workflow-automation.md)
- [Document Ai Vs Ocr](/blog/document-ai-vs-ocr.md)
- [Document Viewer](/blog/document-viewer.md)
- [How To Build A Dotnet Maui Pdf Viewer](/blog/how-to-build-a-dotnet-maui-pdf-viewer.md)
- [Emerging threats: Your logging system may be an agentic threat vector](/blog/emerging-threats-your-logging-system.md)
- [How To Build A Flutter Pdf Viewer](/blog/how-to-build-a-flutter-pdf-viewer.md)
- [How To Build A Powerpoint Viewer Using Javascript](/blog/how-to-build-a-powerpoint-viewer-using-javascript.md)
- [or](/blog/how-to-build-a-javascript-pdf-viewer-with-pdfjs.md)
- [How To Build A React Powerpoint Viewer](/blog/how-to-build-a-react-powerpoint-viewer.md)
- [or](/blog/how-to-build-a-nextjs-pdf-viewer.md)
- [How To Build A React Native Pdf Viewer](/blog/how-to-build-a-react-native-pdf-viewer.md)
- [or](/blog/how-to-build-a-reactjs-pdf-viewer-with-react-pdf.md)
- [How To Build A Reactjs Viewer With Pdfjs](/blog/how-to-build-a-reactjs-viewer-with-pdfjs.md)
- [How To Build An Android Pdf Viewer](/blog/how-to-build-an-android-pdf-viewer.md)
- [How To Convert Html To Pdf Using Html2pdf](/blog/how-to-convert-html-to-pdf-using-html2pdf.md)
- [or](/blog/how-to-convert-html-to-pdf-using-wkhtmltopdf-and-python.md)
- [or](/blog/how-to-convert-html-to-pdf-using-react.md)
- [How To Convert Word To Pdf In Nodejs](/blog/how-to-convert-word-to-pdf-in-nodejs.md)
- [How To Create Pdfs With React To Pdf](/blog/how-to-create-pdfs-with-react-to-pdf.md)
- [How To Embed A Pdf Viewer In Your Website](/blog/how-to-embed-a-pdf-viewer-in-your-website.md)
- [How To Edit Pdfs Using Ios Pdf Library](/blog/how-to-edit-pdfs-using-ios-pdf-library.md)
- [base_url tells WeasyPrint where to resolve relative asset paths](/blog/how-to-generate-pdf-reports-from-html-in-python.md)
- [How To Generate Pdf From Html With Nodejs](/blog/how-to-generate-pdf-from-html-with-nodejs.md)
- [From an HTML string.](/blog/html-in-pdf-format.md)
- [Nutrient Vs Conga Composer](/blog/nutrient-vs-conga-composer.md)
- [Linearized Pdf](/blog/linearized-pdf.md)
- [Online Document Viewer](/blog/online-document-viewer.md)
- [Pdf Page Labels](/blog/pdf-page-labels.md)
- [Open Pdf In Your Web App](/blog/open-pdf-in-your-web-app.md)
- [Pdf Sdk Performance Benchmark](/blog/pdf-sdk-performance-benchmark.md)
- [Pdf Sdk Compliance Security Checklist](/blog/pdf-sdk-compliance-security-checklist.md)
- [Pdfjs Annotation Editor Layer](/blog/pdfjs-annotation-editor-layer.md)
- [Pdfjs Coordinate Systems Pdf To Screen](/blog/pdfjs-coordinate-systems-pdf-to-screen.md)
- [Pdf Ua Compliance Guide](/blog/pdf-ua-compliance-guide.md)
- [Pdfjs Area Annotations Canvas Capture](/blog/pdfjs-area-annotations-canvas-capture.md)
- [Pdfjs React Viewer Setup](/blog/pdfjs-react-viewer-setup.md)
- [Pdfjs Limitations Commercial Upgrade](/blog/pdfjs-limitations-commercial-upgrade.md)
- [Pdfjs Navigation Zoom Rotation](/blog/pdfjs-navigation-zoom-rotation.md)
- [Pdfjs Eventbus Guide](/blog/pdfjs-eventbus-guide.md)
- [Pdfjs Server Side Text Extraction](/blog/pdfjs-server-side-text-extraction.md)
- [Pdfjs Rendering Overlays React Portals](/blog/pdfjs-rendering-overlays-react-portals.md)
- [Pdfjs Text Highlight Annotations](/blog/pdfjs-text-highlight-annotations.md)
- [Pdfjs Sticky Note Annotations](/blog/pdfjs-sticky-note-annotations.md)
- [Pdfjs Text Search Pdffindcontroller](/blog/pdfjs-text-search-pdffindcontroller.md)
- [Process Flows](/blog/process-flows.md)
- [or](/blog/sample-blog-updated.md)
- [React Native Pdf Annotation](/blog/react-native-pdf-annotation.md)
- [Convert an HTML file to PDF.](/blog/top-ten-ways-to-convert-html-to-pdf.md)
- [Vector Pdf](/blog/vector-pdf.md)
- [Web Sdk Is Now Headless](/blog/web-sdk-is-now-headless.md)
- [Wcag2 Accessibility Requirements Documents](/blog/wcag2-accessibility-requirements-documents.md)
- [What Are Annotations](/blog/what-are-annotations.md)
- [Why Your Ai Agent Hallucinates Pdf Table Data](/blog/why-your-ai-agent-hallucinates-pdf-table-data.md)
- [What Is A Vpat](/blog/what-is-a-vpat.md)
- [Why Pdfium Is A Trusted Platform For Pdf Rendering](/blog/why-pdfium-is-a-trusted-platform-for-pdf-rendering.md)
- [What Is Pdf Ua](/blog/what-is-pdf-ua.md)

