← ClaudeAtlas

pencilkitlisted

Add Apple Pencil drawing, canvas views, tool pickers, and ink serialization using PencilKit. Use when building drawing apps, annotation features, handwriting capture, signature fields, or any Apple Pencil-powered experience on iOS/iPadOS/visionOS.
dpearson2699/swift-ios-skills · ★ 730 · DevOps & Infrastructure · score 80
Install: claude install-skill dpearson2699/swift-ios-skills
# PencilKit Capture Apple Pencil and finger input using `PKCanvasView`, manage drawing tools with `PKToolPicker`, serialize drawings with `PKDrawing`, and wrap PencilKit in SwiftUI. Targets Swift 6.3 / iOS 26+. ## Contents - [Setup](#setup) - [PKCanvasView Basics](#pkcanvasview-basics) - [PKToolPicker](#pktoolpicker) - [PKDrawing Serialization](#pkdrawing-serialization) - [Exporting to Image](#exporting-to-image) - [Stroke Inspection](#stroke-inspection) - [SwiftUI Integration](#swiftui-integration) - [PaperKit Relationship](#paperkit-relationship) - [Common Mistakes](#common-mistakes) - [Review Checklist](#review-checklist) - [References](#references) ## Setup PencilKit requires no entitlements or Info.plist entries. Import `PencilKit` and create a `PKCanvasView`. ```swift import PencilKit ``` **Platform availability:** iOS 13+, iPadOS 13+, Mac Catalyst 13.1+, visionOS 1.0+. ## PKCanvasView Basics `PKCanvasView` is a `UIScrollView` subclass that captures Apple Pencil and finger input and renders strokes. ```swift import PencilKit import UIKit class DrawingViewController: UIViewController, PKCanvasViewDelegate { let canvasView = PKCanvasView() override func viewDidLoad() { super.viewDidLoad() canvasView.delegate = self canvasView.drawingPolicy = .anyInput canvasView.tool = PKInkingTool(.pen, color: .black, width: 5) canvasView.frame = view.bounds canvasView.autoresizingMask = [.flexibleWidth, .flexibleHeight]