Notes on the parts a feature list cannot hold
Each note starts from a specific problem — a page of a PDF, a highlight on an e-ink screen, a gesture that worked in one hand and not the other — and follows it to the decision we made. They are written as we finish them, not as a schedule.
-
A PDF on a phone does not lose resolution — it loses the page number
Reflow makes a two-column paper readable on a six-inch screen and quietly destroys the only thing a citation depends on: the page. What we do about it, and what we refuse to do.
-
One shelf, two ideas of where I stopped
A PDF knows its pages. An EPUB does not know its pages until the screen decides. Storing both kinds of position in one library is the least visible decision in the app, and the one users notice first when it is wrong.
-
A highlight that disappears on an e-ink screen
Colour highlighters are chosen on a colour screen and read on a greyscale one. The palette has to survive a luminance conversion, or the annotation becomes a slightly darker paragraph.
-
The left-edge tap zone that a one-handed reader cannot reach
Page-turn zones are designed on a tablet and used on a phone. At 360dp wide, a 20% edge strip is eleven millimetres of glass under the base of your thumb — which is why the default changed.
-
Why automatic hyphenation is off until you ask for it
Justified text in a narrow column needs hyphenation to avoid rivers. Automatic hyphenation needs a language it can trust, and a document does not always have one. The default is ragged right, and here is the reasoning.
-
Listening with the screen off is a policy problem before it is a voice problem
Text-to-speech on Android 14 stopped being a matter of calling a synthesiser. It became a foreground-service declaration, a required demonstration video, and a decision about what happens when the user locks the phone.
-
What 'find my books' actually requires from Android
A reader has to index files it did not create, in folders it did not choose, across storage it does not own. The storage APIs were designed for the opposite case, and the gap between them is where the broad-file-access permission lives.
-
Thirty-four formats is not a feature, it is a promise about failure
A format list is usually read as a score. It is better read as a statement about which parsers will run on your file, which of them are native code, and how the app behaves when the file is malformed.
-
What a reader should say when the file will not open
An inherited error dialog offered to hand the book to a different app — one sold by the upstream author. It looked helpful. It was a sales funnel wearing an error message.