Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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.
26 changes: 26 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ Production-grade React Native ink primitives extracted from the MathNotes canvas
<p>
<a href="https://www.npmjs.com/package/@mathnotes/mobile-ink"><img src="https://img.shields.io/npm/v/@mathnotes/mobile-ink.svg" alt="npm version" /></a>
<a href="https://www.npmjs.com/package/@mathnotes/mobile-ink"><img src="https://img.shields.io/npm/dm/@mathnotes/mobile-ink.svg" alt="npm downloads" /></a>
<a href="https://github.com/mathnotes-app/mobile-ink/actions/workflows/ci.yml"><img src="https://github.com/mathnotes-app/mobile-ink/actions/workflows/ci.yml/badge.svg" alt="CI status" /></a>
<a href="https://github.com/mathnotes-app/mobile-ink/releases/tag/v0.1.0"><img src="https://img.shields.io/github/v/release/mathnotes-app/mobile-ink" alt="GitHub release" /></a>
<a href="https://github.com/mathnotes-app/mobile-ink/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/@mathnotes/mobile-ink.svg" alt="license" /></a>
</p>
Expand All @@ -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 |
Expand Down Expand Up @@ -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

Expand Down
Binary file added docs/assets/mobile-ink-social-preview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
"ios",
"cpp",
"docs/*.md",
"CHANGELOG.md",
"MathNotesMobileInk.podspec",
"react-native.config.js",
"README.md",
Expand Down Expand Up @@ -83,6 +84,8 @@
"skia",
"metal",
"apple-pencil",
"handwriting",
"notes",
"infinite-canvas",
"notebook"
],
Expand Down
Loading