Repository navigation
Reader 0.3.0: long Books open at once
Reader 0.3.0: long Books open at once (N6). Light builds and signs Tools from a public commit, so this release is the tagged commit. There is no APK here; a Light-signed build will follow when Light's developer portal opens.
versionName 0.3.0, versionCode 3. light-sdk stays at v0.1.2, still Light's newest tag.
Opening
- A Book opens on its Page after reading only its package, its tables of contents and the Spine item your Place is in. The rest of the Book comes in behind the Page, and Contents and Progress follow once it has (#50, ADR 0009).
- On a Light Phone III (release build, P90, from the open to the drawn Page): War and Peace 692 → ~126 ms, the King James Bible 730 → ~127 ms, Alice 151 → ~108 ms. A Book that keeps everything in one huge file gains less: a 638 K-character one opens in ~186 ms, a 1.43 M-character one in ~361 ms.
- Until the whole Book is in, the Progress line is blank, Contents opens once it's in, and a turn past the Spine item's edge waits, then turns. The reader's latest action wins: showing the controls drops a waiting turn, and hiding them drops a waiting Contents (#50).
- A Book with a broken Spine item now shows its first Page, then "Couldn't open this Book." once the rest fails to parse. It doesn't retry on resume; reopening from the Shelf does (#50).
Speed, measured (N6)
- ADR 0007's bar holds on the phone with room to spare. On five Books, from a 163 K-character Alice to the 4.3 M-character King James Bible: the first Page at any Place takes 11–45 ms (P90, bar 300), a font change 29–80 ms, and a page turn under 4 ms with no layout work.
- ADR 0009 adds a bar for the whole open: ≤ 300 ms P90 to the drawn Page when the Place's Spine item is ≤ 200 K characters.
- The ~0.9 s that every open seemed to take in earlier measurements was Light's splash screen (held for the Activity's first second), which only test sessions met. A tap on the Shelf can't come before it (#49).
Tooling
scripts/perf.shmeasures release builds (-r), any Place (-i/-o), page turns across a window seam, the main-thread repack, the time to the drawn Page, how long the whole Book takes, and memory. It restores the phone as it found it, including the installed build (#48, #50).scripts/ci.shopens the Book lazily on both devices and checks that the whole Book came in (#50).
Upgrading
- Your Shelf, every Place and your font size carry over from 0.2.0. The reading data is unchanged;
schemaVersionstays 1.
Next
- Illustrations: first the drop caps drawn as an image inside a paragraph, then the editions with images, with line art inverted for the display.
Release checks
- Unit and property tests: 589 passed (555 at 0.2.0). Domain drift: 0 unresolved.
- Light-builder simulation (
lightbuilder prepare+ unsigned minified release, SDK v0.1.2): OK. - Upgrade path on the emulator: this build installed over 0.2.0 with six Books on the Shelf, five with a Place. Every Place was kept and the Shelf renders.
- Minified release on the emulator: opens lazily, changes the font, turns pages; reading data unchanged.
signoff/emulatorandsignoff/lp3viamise run cion the release commit.