What problem does it solve?
PaperKit removes the fragmentation of drawing and structured annotations by giving you one consistent, platform-aligned markup system for canvases and document editors.
Core Features & Use Cases
- Unified markup canvas via PaperMarkupViewController: Use a scrollable, zoomable controller that supports both PencilKit drawing and structured markup elements.
- Structured, persistable markup model: Serialize and restore all markup content using PaperMarkup dataRepresentation for reliable document storage and exchange.
- Consistent insertion UI and toolbar behavior: Embed the standard markup insertion menu/toolbar through MarkupEditViewController (iOS/iPadOS/visionOS) or MarkupToolbarViewController (macOS/Mac Catalyst).
- FeatureSet-based capability control: Enable or restrict capabilities (drawing, text, shapes, images, etc.) with a shared FeatureSet across the view controller and insertion UI.
- Practical integrations: Wrap it in SwiftUI (UIViewControllerRepresentable), compose it with PencilKit tools, and render thumbnails or content for review flows.
Quick Start
Use the paperkit skill to embed PaperMarkupViewController in your app and wire up PencilKit’s PKToolPicker so users can draw and insert structured markup using the system-standard toolbar and controllers.