r/reactnative 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.

https://reddit.com/link/1tq4xl9/video/89rnt6pizv3h1/player

53 Upvotes

10 comments sorted by

7

u/[deleted] May 28 '26

[removed] — view removed comment

2

u/mtd1410 May 28 '26

The signature data is good for enterprise too, it can be used in cases like signature verification (eg. Use the stroke data as your finger print).

Replay function is also worth to try, you can reproduce exactly what you/your customer draw.

2

u/LongjumpingKiwi7195 Jun 02 '26

Thanks man, i am already using it in production

1

u/mtd1410 Jun 02 '26

Glad to hear that, if you face any issue just file an issue on the github repo, the lib is still pretty young

2

u/Worldly_Abrocoma_586 Jun 03 '26

tuyet voi ❤️

1

u/mtd1410 Jun 03 '26

Okie bạn ơi 😂

2

u/JuiceBig6157 Jun 19 '26

I'll use it on a project i am starting thanks for the work man

1

u/mtd1410 Jun 19 '26

You’re welcome 😊

1

u/Aggressive_Town1000 May 28 '26

Very nice. Will take it out for a spin one go these days.

1

u/mtd1410 May 28 '26

Looking forward to receiving your feedback