Open Source libraries to make apps and app development fast and fun - less boilerplate and managing infrastructure code
Our open source libraries run on over a billion devices and are used by large companies with especially high performance requirements. Learn about our widely used, battle-tested, and performance-optimized open source libararies for mobile app development:
> 2.000.000.000 people rely on greenrobot libraries
Slim & fast - that is what we stand for and that is why thousands of mobile developers wordlwide use our solutions, leading to more than a billion mobile users relying on our code
Lean & light
Mobile News from greenrobot
Library updates, new releases, related developments in open source, mobile databases, and Android
ObjectBox – the high performance Android database for Java / Kotlin – goes 3.0 ❤️ and apart from features. the dev team is also sharing CRUD performance benchmarks including MongoDB Realm and SQLite with Room. ObjectBox Database has been used by over 800,000 developers since the 1.0 release for Android and apart from Java / Kotlin for Android, the ObjectBox DB also has C/C++, Go, Flutter/Dart, Swift bindings now and a superfast Data Sync.
What is ObjectBox?
ObjectBox is a NoSQL ACID-compliant object database and an alternative to SQLite and Room. ObjectBox is optimized for fast object persistence on restricted devices, typically “embedded devices”, sometimes called “edge devices” like e.g. smartphones, IoT gateways, PoS systems, or Controlling Units. Because most applications today include any number of decentralized connected devices, ObjectBox also provides fast and easy access to decentralized edge data through an out-of-the-box Data Sync solution (Early Access).
Flutter Database options are still limited. We compare the available alternatives, and share performance benchmarks.
How to persist data in Flutter / Dart?
The database market is a long-established saturated market and still experiencing double-digit growth. Most of that growth stems from NoSQL databases and newer database technologies, like time-series databases or graph databases. As Computing is shifting towards Decentralized Computing on the Edge, local databases that support decentralized data flows on Mobile, IoT, and other Embedded Devices come into focus. Some come from the Flutter data persistence world, and we will take a look at them in a second.
Before we dive into the Flutter database options and compare them, we’re quickly carifying the term to make sure we share a common ground. Don’t worry, we’ll not get theoretical, but simply make sure we share a common language.
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)
EventBus 3.2.0 is now available on Maven Central. In 2020, seven years since version 1.0, EventBus is still one of the most used Android libraries. This update addresses advancements in the Gradle build system and supporting Android libraries.
EventBus 3.2 adds incremental processing to the EventBus annotation processor. This can greatly reduce build times – if all involved annotation processors play along (e.g. ObjectBox is getting there too).
The EventBus annotation processor is used when building EventBus with a subscriber index. This is now recommended for all Android apps. It improves run time performance and avoids crashes by looking up subscriber methods via reflection.
EventBus 3.2 also improves support for JetPack/AndroidX. When looking for @Subscribe methods, it now ignores all base classes from the androidx package and its subpackages, e.g. AppCompatActivity (from androidx.appcompat.app) or Fragment (from androidx.fragment.app). Before 3.2, those classes were scanned using reflection, regardless if a subscriber index was available or not.
Those two changes make EventBus faster and more resilient and we hope you consider making this update soon.
The EventBus library is free open source software. If you like it, we appreciate a star on GitHub, a tweet, or any feedback to us. If you use EventBus in a cool app that is a great showcase for its usefulness, we would love to share a case study with our community. Please get in touch.