Skip to content

Bopa 0.2.0

Choose a tag to compare

@ivanlee1999 ivanlee1999 released this 21 Aug 04:06
a03169d

Highlights

  • A page is a sheet now. Pages have a real paper size, and writing past the bottom divides an overgrown page into pages rather than letting one canvas run on forever. Continuous scrolling carries you across the seam; pulling past the bottom turns the page whichever way pages turn, and the reader chooses which way that is.
  • A way around a long notebook. The navigator panel gains bookmarks, a handwritten outline, and a page overview — three tabs, one way in — and they travel through sync.
  • The tool rail grew up. A wider five-step nib ramp, the full twelve-ink palette, and an eraser with the same width steps as the pens.
  • The Trash means the same thing on both devices. Folders and notebooks throw away and come back whole — subtrees included — and trashings that only ever happened on the iPad now reach the server.
  • Sync got harder to fool. A resurrected notebook is pushed as a create (CouchDB refuses the alternative); deletion-vs-edit is answered by page clocks now that ink no longer touches the notebook envelope; timestamps come from a clock corrected for server skew; the checkpoint can no longer outrun a write it describes; the change feed survives partial responses and lost races; conflicts back off instead of burning their retries; images and file-backed backgrounds travel as assets with real tombstones and garbage collection.
  • Ink is safer at the edges. The page flushes on every way out of the editor, unsaved ink survives a failed flush before a fold, a stroke keeps one identity for as long as it lives, and ink lands on the paper wherever the view happens to be looking.

Validation

  • NotableKit: full suite green (swift test), locally and on CI.
  • iPad app: full simulator suite green on CI at the released commit.
  • Real-server CouchDB tests skip when no server is configured, as in v0.1.0; the fake-server scenario suite runs in full.

Compatibility

Syncs with Notable for BOOX v0.38.0. Both apps now run PageSplit with deterministic page ids, share the twelve-ink palette by position, and read liveness from page clocks (§6.4).