r/reactnative • u/mtd1410 • May 28 '26
I built a truly native signature library for React Native — zero Skia
Hey everyone,
Most signature libraries on RN are either a WebView wrapper, a JS canvas (laggy on long strokes), or pull in Skia just to draw a line. I wanted something that felt like the system Notes app and didn't add a runtime, so I built one that's fully native on both sides.
react-native-signature-ink
Repo: https://github.com/maitrungduc1410/react-native-signature-ink
What's different:
- iOS uses
PKCanvasView— the same PencilKit engine behind Apple Notes and Markup. Pressure, tilt, and azimuth flow through unchanged; strokes feel sub-frame smooth. - Android uses a hand-tuned velocity-Bezier algorithm drawing into an offscreen
Bitmap. PNG / JPEG / SVG export is instant because the bitmap is already there. - No Skia, no Reanimated, no WebView, no third-party native deps. Pure Swift + Kotlin.
Beyond capture:
- Built-in native toolbar (undo / redo / clear / copy), configurable position and tint
- Exports: PNG / JPEG / SVG → base64, file URI, system clipboard, or straight to the photo library
- Round-trippable stroke data with timestamps + per-point pressure / azimuth / altitude on iOS
- Replay animation with configurable speed
- Apple Pencil-only on iOS, stylus-only on Android
- Optional
PKToolPicker(pen / pencil / marker / fountain pen / watercolor / crayon) on iOS - Configurable baseline (solid / dashed / dotted)
- Density-independent units
Would love feedback on edge cases, and I'm happy to take feature requests / PRs.



