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

Mobile databases: SQLite and SQLite alternatives for Android and iOS

UPDATED 2023 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), which we maintain ever since. We just updated the comparison table in June 2023.

Why use a local database on mobile?

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

  • Always works: full offline modus for apps that depend on stored data
  • Manageable costs: Frugal on bandwidth for apps that depend on stored data
  • 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