diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..9363ed2 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,14 @@ +# Changelog + +All notable changes to `@mathnotes/mobile-ink` will be documented here. + +## [0.1.0] - 2026-05-07 + +Initial public release. + +- Added `NativeInkCanvas`, the low-level native Skia/Metal drawing surface for React Native. +- Added `ZoomableInkViewport` for pinch zoom, focal-point zoom, momentum scroll, and Pencil/finger gesture routing. +- Added `ContinuousEnginePool` for fixed-pool native canvas reuse in continuous notebooks. +- Added `InfiniteInkCanvas`, a reusable continuous notebook shell with page growth, serialization, and local save/reload support. +- Added native iOS bridge helpers for page export, notebook parsing, and continuous-window compose/decompose. +- Added an Expo dev-client example app for trying the engine outside MathNotes. diff --git a/README.md b/README.md index 4b898a2..2385522 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ Production-grade React Native ink primitives extracted from the MathNotes canvas

npm version npm downloads + CI status GitHub release license

@@ -31,6 +32,19 @@ The goal is simple: make this the best community drawing engine for React Native mobile-ink is currently used in production in MathNotes: https://apps.apple.com/us/app/mathnotes-ai-notes-for-stem/id6751956086 +## Capability Snapshot + +| Area | Current support | +| --- | --- | +| iOS Apple Pencil drawing | Used in production | +| Native rendering | Custom `MTKView` backed by C++ Skia/Metal | +| Continuous notebooks | Fixed native engine pool with momentum scroll and pinch zoom | +| Tools | Pen, highlighter, crayon, calligraphy, eraser, selection, and shape recognition | +| Serialization | JSON notebook payloads plus native page load/save/export helpers | +| Example app | Expo dev-client app with blank continuous notebook, tools, selection, save/reload, and zoom | +| Android | Not supported yet | +| Expo Go | Not supported because this package includes native code | + ## Demos | Drawing and tools | Selection | Large notebook interaction | @@ -134,6 +148,18 @@ npx expo run:ios - [Architecture](docs/architecture.md) - [API Reference](docs/api.md) +- [Changelog](CHANGELOG.md) + +## Roadmap + +Near-term work is focused on making the public package easier to adopt and easier to contribute to: + +- Improve install and troubleshooting docs for React Native and Expo dev-client apps. +- Add more integration recipes for save/load, tool switching, and app-owned storage. +- Tighten selection transform performance for large stroke groups. +- Improve edge-case zoom behavior near page and canvas boundaries. +- Continue hardening the example app as a small regression harness. +- Explore Android after the iOS API surface has settled. ## Development diff --git a/docs/assets/mobile-ink-social-preview.png b/docs/assets/mobile-ink-social-preview.png new file mode 100644 index 0000000..67ef176 Binary files /dev/null and b/docs/assets/mobile-ink-social-preview.png differ diff --git a/package.json b/package.json index 0af727f..6031aa6 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "ios", "cpp", "docs/*.md", + "CHANGELOG.md", "MathNotesMobileInk.podspec", "react-native.config.js", "README.md", @@ -83,6 +84,8 @@ "skia", "metal", "apple-pencil", + "handwriting", + "notes", "infinite-canvas", "notebook" ],