Skip to content

Releases: mathnotes-app/mobile-ink

v0.3.1

20 May 02:37
8ab6005

Choose a tag to compare

Changes

  • Added crisp settled zoom rendering with scale-aware native drawables and cached stroke tiles.
  • Stabilized zoom viewport math so drawing coordinates stay aligned through fast zoom and pan cycles.
  • Capped high-zoom native drawable scale to keep Apple Pencil drawing responsive at deep zoom levels.
  • Improved large PDF notebook behavior, page background windowing, and selection gesture exclusion regions.
  • Fixed an iOS drawable resize recursion that could crash dev builds on launch.

Validation

  • npm run validate
  • GitHub CI: Package, native smoke, and example

v0.3.0 - Android v1 parity

15 May 02:47
24cc320

Choose a tag to compare

Android v1 parity

  • Added the Android native ink renderer with Skia Ganesh GPU rendering and React Native view integration.
  • Brought continuous multi-page notebooks to Android, including pooled native canvas activation, page preview overlays while engines mount, and saved notebook reload in the example app.
  • Added Android PDF background loading, notebook serialization support, and native smoke coverage.
  • Documented Android setup and parity status for the example app and package consumers.

Published to npm: https://www.npmjs.com/package/@mathnotes/mobile-ink/v/0.3.0

v0.2.0

12 May 20:57
ecaf20a

Choose a tag to compare

What's Changed

  • Defaulted iOS rendering to the Ganesh/Metal backend while keeping CPU rendering selectable for comparison and fallback.
  • Added benchmark tooling for replayed strokes, manual notebook recording, multi-page notebook suites, scroll sampling, selection, eraser, and tool coverage.
  • Matched Ganesh color output with the CPU path for highlighter, selection chrome, and other tool colors.

Performance Evidence

  • Synthetic suite on 12 pages: Ganesh render p95 averaged 4.87 ms vs CPU 7.35 ms.
  • Scroll sweep stayed comparable: Ganesh 52.68 fps vs CPU 51.54 fps.
  • Manual notebook recording showed lower render time on Ganesh while preserving real drawing latency.

Verification

  • npm package published as @mathnotes/mobile-ink@0.2.0.
  • npm pack/build completed successfully during publish.
  • GitHub CI passed on PR #18.

v0.1.0

07 May 22:42

Choose a tag to compare

@mathnotes/mobile-ink v0.1.0

Initial public release of @mathnotes/mobile-ink, the reusable React Native drawing engine extracted from the MathNotes canvas.

Install

npm install @mathnotes/mobile-ink \
  @shopify/react-native-skia \
  react-native-gesture-handler \
  react-native-reanimated \
  react-native-worklets
cd ios && pod install

Package: https://www.npmjs.com/package/@mathnotes/mobile-ink

Highlights

  • iOS-first native Skia/Metal ink canvas for React Native.
  • Apple Pencil drawing, eraser, selection, shape/object basics, serialization, and page export primitives.
  • Continuous notebook surface with pinch zoom, momentum scrolling, trailing page growth, and a fixed native engine pool.
  • Generic native bridge and public TypeScript API for host apps.
  • Expo dev-client example app with blank continuous canvas, tools, save/reload, selection, zoom, and scrolling.

Status

This is a 0.x launch release. MathNotes is dogfooding the package, and the public API may evolve before 1.0.