Projekte yomikata

yomikata

Live · nur mit Zugang

Manga-Reader für Android und Browser. Der Lesefortschritt folgt vom Tablet aufs Telefon, ohne dass man etwas dafür tut.

Zeitraum
2025 – heute
Rolle
Alleine — Konzept bis Betrieb
Zustand
Live, hinter dem Single-Sign-on
Code
Repository privat

Die Manga liegen auf dem eigenen Server, gelesen wird abwechselnd: unterwegs auf dem Telefon, zu Hause auf dem Tablet, beide an derselben Serie. Daraus folgt die eine Anforderung, an der alles hängt — ein Band, der am Tablet halb gelesen wurde, muss am Telefon an genau derselben Stelle aufgehen, ohne dass man etwas dafür tut. Keines der vorhandenen Leseprogramme konnte das gegen diesen Server: die einen setzen Fähigkeiten voraus, die er nicht mitbringt, die übrigen kennen den Lesestand schlicht nicht.

yomikata ist der Leser dafür — eine Android-App und eine Weboberfläche, beide gegen ein eigenes Backend, das seinerseits mit der Bibliothek spricht. Dazu kommt, was einen Manga-Leser von einem Comic-Leser unterscheidet: Die Leserichtung wird pro Serie gesetzt, weil eine gemischte Bibliothek beide Richtungen enthält und die Angaben des Servers hier nichts taugen. Heruntergeladene Bände sind im Flugmodus vollständig lesbar und räumen sich nach dem Durchlesen selbst weg. Helligkeit und Warmfilter sitzen im Leser selbst, nicht drei Ebenen tief in den Einstellungen — abends ist die Mindesthelligkeit des Systems zu hell.

Bemerkenswert ist die Grenze, die das Projekt zieht. Die App ist ausdrücklich für einen Menschen mit zwei Geräten gestaltet: ein Erscheinungsbild, ein Dateiformat, keine Filter, keine Sortierung. Was mehrere Nutzer wirklich brauchen — eigene Konten, eigene Zugänge, eigene Lesestände —, trägt das Backend darunter, und wer das helle Erscheinungsbild vermisst, liest im Browser. Einfachheit vor Allgemeinheit ist hier keine Ausrede im Nachhinein, sondern eine aufgeschriebene Regel.

Stack
KotlinComposeRoomRetrofit · OkHttpTypeScriptExpressSQLite (better-sqlite3)React · VitePWASingle-Sign-on (OIDC)

Entscheidungen

ADR 014

Den Server vermessen, statt der Beschreibung zu glauben

Die Zielinstanz spricht die Schnittstelle einer bekannten Bibliothekssoftware, hält aber nicht alles, was deren Beschreibung verspricht — ausgerechnet einen Lesestand abzulegen war nicht darunter, und zwar bei keinem einzigen Buch. Wäre das erst beim Bauen aufgefallen, hätte es die einzige Funktion gekostet, derentwegen es die App gibt. Statt auf ein Update fremder Software zu warten, ist die App auf das zugeschnitten, was der Server nachweislich kann — gemessen, bevor die erste Zeile entstand.

ADR 004

Höchste Seite gewinnt statt neuester Zeitstempel

Zwei Geräte melden für dasselbe Buch verschiedene Seiten, und einer der beiden Stände muss weichen. Die übliche Regel — der neuere gewinnt — wäre hier die falsche: Wer am Tablet auf Seite 80 ist und das Buch am Telefon versehentlich aufschlägt, hätte mit Seite 1 den frischeren Eintrag und damit den Fortschritt verloren. Deshalb gewinnt die höhere Seite, und nur ein ausdrückliches Zurücksetzen darf darunter.

ADR 009

Zwischengespeichert ist nicht heruntergeladen

Gelesene Seiten bleiben auf der Platte liegen, damit Zurückblättern sofort geht. Das sieht aus wie ein Download, ist aber keiner, und ein Zwischenspeicher, den man für eine Offline-Garantie hält, führt zum schlimmsten Fehlerbild: im Zug ein Buch öffnen, das gestern noch da war. Beide Speicher werden deshalb getrennt geführt, getrennt geräumt und getrennt angezeigt — die Offline-Markierung trägt nur, was ausdrücklich geladen wurde.

ADR W13

Der Torwächter läuft gegen eine Attrappe, nicht gegen den echten Server

An einem Tag entstanden drei rein optische Fehler — Schrift, die auf zu dunklem Grund verschwand, eine Karte, die deckend über einem Verlauf lag. Kein Test, der prüft, ob ein Element vorhanden ist, findet so etwas; dafür braucht es Bildvergleiche. Gegen die laufende Instanz zu testen wäre einfacher gewesen, hätte aber fremde Lesestände angefasst und wäre rot geworden, sobald der Server neu startet — und ein Prüflauf, der grundlos rot wird, bringt allen bei, Rot zu übersehen. Der erste brauchbare Lauf gegen den nachgebauten Server fand einen stillen Datenverlust, den vier Nutzer seit Wochen hatten.