Releases: mathnotes-app/mobile-ink
Releases · mathnotes-app/mobile-ink
v0.3.1
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
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
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
@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 installPackage: 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.