PackageTrack
Sign in Get early access

nutrient_flutter_ios

iOS implementation of the nutrient_flutter plugin.

2.0.0 8.6K downloads/mo #3121 most downloaded on pub.dev PSPDFKit/pspdfkit-flutter

What this package is like to depend on

Last release 26 days ago

29 Jul 2026

Ships fairly regularly

a new release about every 6 weeks

Nearly every release is documented

notes for 7 of 7 stable releases

Nothing withdrawn

no release was ever pulled

6 months old

7 releases · first in 2026

7 releases in the last 12 months

see the full history below

Release timeline

7 releases · Feb 2026 to Jul 2026
Release Pre-release

Releases

latest 7
  1. 2.0.0 29 Jul 2026
    Release notes
    • First pub.dev published version. (#28157)
    • Updates the minimum required Flutter SDK version to 1.12.0. (#28157)
    Open source →
    Release notes

    Changed

    First pub.dev published version. ( #28157 )

    Changed

    Updates the minimum required Flutter SDK version to 1.12.0. ( #28157 )

    Open source →
    Release notes
    • Populates PageInfo.label from PSPDFDocument.pageLabelForPageAtIndex(_, substituteWithPlainLabel:) on iOS (was previously always null). Falls back to null when the PDF has no explicit label dictionary entry. (J#HYB-951)
    • Fixes BookmarkManagerIOS.toBookmark emitting actionJson as {"pageIndex": N} without the "type": "goTo" discriminator. The Bookmark.pageIndex convenience getter on nutrient_flutter/bindings.dart gates on action['type'] == 'goTo' before reading pageIndex, so the getter always returned null on iOS-sourced bookmarks. Now matches the Android and Web impls, which both already emit the canonical GoTo-action shape. (J#HYB-951)
    • Implements seven view-scoped methods on IOSAdapter via FFI (PSPDFViewController, PSPDFDocumentViewController, PSPDFPageView, PSPDFAnnotationStateManager): getVisibleRect, zoomToRect, getZoomScale, enterAnnotationCreationMode, exitAnnotationCreationMode, convertViewPointToPdfPoint, convertPdfPointToViewPoint. getZoomScale previously returned an error in the legacy plugin and is now functional via PSPDFPageView.PDFScale. (J#HYB-952)
    • Adds utils/annotation_tool_ios_mapping.dart with iosAnnotationStringNameFor (testable, FFI-free) and iosAnnotationStringFor (FFI-touching) helpers, mapping the platform-interface AnnotationTool enum to the iOS PSPDFAnnotationString* constants. (J#HYB-952)
    • Adds a nativeViewController accessor on IOSAdapter for subclasses that need direct PSPDFViewController access from outside the existing lifecycle callbacks.
    • Wires IOSAdapter to drive the cross-platform events stream via a PSPDFViewControllerDelegate attached in onPlatformViewCreated (before onViewControllerReady): didChangeDocumentDocumentLoadedEvent, willBeginDisplayingPageViewPageChangedEvent (deduped via _lastEmittedPageIndex), didSaveDocument:error:DocumentSavedEvent / DocumentErrorEvent, didSelectAnnotations:onPageView:AnnotationSelectedEvent + PageClickedEvent + IOSAnnotationTappedEvent, didDeselectAnnotations:onPageView:AnnotationDeselectedEvent, didSelectText:withGlyphs:atRect:onPageView:TextSelectionChangedEvent. (J#HYB-957)
    • Adds IOSNutrientEvent sealed class and iosEvents broadcast stream on IOSAdapter for iOS-only events: IOSViewControllerWillDismissEvent, IOSViewControllerDidDismissEvent, IOSViewModeChangedEvent, IOSUserInterfaceShownEvent, IOSUserInterfaceHiddenEvent, IOSAnnotationTappedEvent, IOSInstantDownloadFinishedEvent, IOSInstantDownloadFailedEvent. Subclasses can call the protected emitIOSEvent(...) helper. (J#HYB-957)
    • Adds NSNotificationCenter, NSNotification, and NSOperationQueue to ffigen_ios.yaml and regenerates the iOS bindings to expose addObserverForName:object:queue:usingBlock:, the API needed to subscribe to PSPDFKit's annotation notifications (PSPDFAnnotationsAddedNotification, PSPDFAnnotationChangedNotification, PSPDFAnnotationsRemovedNotification). Previously only the notification names were external'd in the bindings; the subscription API itself was missing. (J#HYB-957)
    • Subscribes to PSPDFAnnotationsAdded / Changed / Removed notifications on NSNotificationCenter.default to fire AnnotationCreatedEvent / AnnotationUpdatedEvent / AnnotationDeletedEvent on the cross-platform stream. Observer tokens are torn down in dispose() via removeObserver:. The observer blocks use ObjCBlock_ffiVoid_NSNotification.listener(...) (not .fromFunction(...)) so they can fire safely from PSPDFKit's background save queue without crashing in dart::Assert::Fail / DLRT_GetFfiCallbackMetadata. (J#HYB-957)
    • Adds UITapGestureRecognizer to ffigen_ios.yaml, plus a small ObjC helper (_NutrientPageTapTarget + nutrient_install_page_tap C function in NutrientFFI.{h,mm}). Installs a permissive tap gesture recognizer on each PSPDFPageView from the didConfigurePageView:forPageAtIndex: delegate so empty-page taps fire PageClickedEvent with PDF-space coordinates, matching Android's DocumentListener.onPageClick contract. The Dart-side handler wraps a NativeCallable.listener so the callback can fire from UIKit's gesture-recognizer dispatch thread. (J#HYB-957)
    • Updates to Nutrient iOS SDK 26.11.0 and regenerates the FFI bindings against its headers.
    Open source →
  2. 1.2.0 22 Jun 2026
    Release notes
    • Adds AI Assistant support to NutrientInstantViewIOS via NutrientViewConfiguration.aiAssistantConfiguration.
    • Honours NutrientViewConfiguration.enableInstantComments in NutrientInstantViewIOS by inserting instantCommentMarker into editableAnnotationTypes after the Instant view controller is initialised.
    Open source →
  3. 1.1.1 16 Apr 2026
    Release notes
    • Pins PSPDFKit and Instant podspec dependencies to match nutrient_flutter.
    Open source →
  4. 1.1.0 09 Apr 2026
    Release notes
    • Adds NutrientInstantViewIOS, an iOS implementation of the embedded Instant document widget using PSPDFInstantViewController via FFI. (J#HYB-988)
    • Fixes Instant two-way sync by retaining the PSPDFInstantDocumentDescriptor for the lifetime of the view controller, preventing ARC from releasing it and discarding the sync configuration. (J#HYB-988)
    • Fixes Instant sync not working on subsequent document opens by reauthenticating with the JWT when the document is already downloaded locally. (J#HYB-988)
    • Adds IOSConfigurationBuilder to convert NutrientViewConfiguration into a PSPDFConfigurationBuilder JSON dict, supporting all major viewer options. (J#HYB-988)
    Open source →
  5. 1.0.2 24 Feb 2026
    Release notes
    • Fixes a build error where NutrientIOSBindings.m failed to compile with 'PSPDFKit/PSPDFKit.h' file not found when using the plugin from a third-party app. The native-assets hook now resolves the PSPDFKit Pods directory from the consuming app instead of the plugin's own example app. (#50888)
    • Fixes getViewController thread safety by dispatching to the main thread when called from a background thread. (#50888)
    • Improves build error reporting in hook/build.dart by replacing a silent assert with an explicit exception. (#50888)
    Open source →
  6. 1.0.1 22 Feb 2026
    Release notes
    • Updates to Nutrient iOS SDK 26.5.0. (#50888)
    • Regenerates FFI bindings for Nutrient iOS SDK 26.5.0. (#50888)
    • Adds a native-assets build hook (hook/build.dart) to compile ObjC protocol trampolines into a bundled dylib, fixing the No asset found runtime error for FFI delegates. (#50888)
    • Fixes an issue where nutrient_get_view_controller returned null when called from the AdapterBridge / NutrientView path. (#50888)
    • Fixes AOT compilation errors caused by system opaque-struct globals (_xpc_*, _dispatch_*, kDNSService*) in the generated bindings. (#50888)
    • Updates objective_c to 9.3.0, ffi to 2.2.0, ffigen to 20.1.1, code_assets to 1.0.0, hooks to 1.0.0, native_toolchain_c to 0.17.4. (#50888)
    Open source →
  7. 1.0.0 13 Feb 2026
    Release notes
    • Initial release as standalone pub.dev package.
    • Native iOS bindings using FFI for direct Nutrient iOS SDK integration.
    • Provides platform adapter to extend nutrient_flutter with native bindings.
    • Implements nutrient_flutter_platform_interface for the federated plugin architecture.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive