Flutter databases in 2023 – an overview

Flutter databases are databases specifically designed to give Flutter / Dart apps fast data persistence. Other databases can be used depending on the database and use case, but in our experience Flutter databases are easier to use and faster in Flutter/Dart apps. Note: Because “Dart” is such an ambiguous term, “Flutter database” is the established terminology (even though from a tech perspective it is not a great name).

As a Flutter app developer, selecting the right local database is important. After a market overview and terminology, we’ll compare the most popular options (ObjectBox, sqflite, Drift, Floor, Isar, Sembast, Realm) in a matrix.

Continue reading
SQLite alternatives 2024

Mobile databases: SQLite and SQLite alternatives for Android and iOS

UPDATED 2024
A long time ago at Droidcon Berlin, we noticed a lot of questions around databases. Many people weren’t aware of SQLite alternatives and the differentiation between databases and Object-Relational Mappers (ORMs). Therefore, we followed up with an overview of the local database landscape (Edge Databases / On-device Databases), which we maintain ever since. We just updated the comparison table in October 2024 to reflect the recent deprecation of MongoDB Realm Atlas Device Sync, which also entails the end of maintenance for  the open source Realm database.

Why use a local database on Mobile?

There are some advantages associated with using a local database (Edge Database):

  • It always works: full offline modus for apps that depend on stored data
  • Manageable costs: Frugal on bandwidth and cloud costs as most data can reside on the phone
  • Speed: fast and predictable performance independent from network availability
  • Data Privacy: personal data can be stored with the user, where some say they belong)

Continue reading

ORM FAQ

SQLite access with an ORM – FAQ

What is an Object-Relational-Mapper (ORM)?

An ORM is a layer between the relational SQLite database and the object-oriented app code. The ORM allows the developer to use the database without the need to transform objects into a format suited for the relational database.

Do I need an ORM to work with SQLite?

Continue reading