Wat we ermee bouwen

SQLite is de database die met de app meereist. Op mobiel bewaart een product er de data die het met het netwerk uit moet kunnen lezen: gecachte API-antwoorden, concepten die de gebruiker nog niet heeft verstuurd, berichtgeschiedenis, en de wachtrij met schrijfacties die op synchronisatie wacht.

Het is een echte relationele database en geen sleutel-waardeopslag, en dat telt zwaarder dan het klinkt. Zodra lokale data relaties heeft en gefilterd of gesorteerd moet worden, verslaat dat in SQL doen het alles in het geheugen laden en het in Dart doen — vooral bij de lijsten die soepel moeten blijven tijdens het scrollen.

Waar het past

Elke app die offline werkt heeft deze laag, of ze nu ontworpen is of niet. Ons werk hier is meestal om haar bewust te maken: een schema met migraties, een heldere regel voor wat gecacht is en wat gezaghebbend, en een synchronisatiestrategie die overleeft dat de app halverwege een schrijfactie wordt afgesloten.

Wanneer we het aanraden

Voor opslag op het toestel die verder gaat dan een handvol waarden, en voor elk product waarvan de gebruikers in de trein zitten, in een kelder staan, of op mobiele data zitten die ze liever niet opmaken.

Voor een paar vlaggen en voorkeuren is SQLite meer dan de klus vraagt — eenvoudige sleutel-waardeopslag volstaat, en migraties toevoegen om een boolean te bewaren is een kostenpost zonder opbrengst. En het is een lokale database, geen backend: de serverkant van hetzelfde product hoort in PostgreSQL.