Flutter Data is the seamless way to handle persistent data models in the reactive Flutter environment.
Inspired by Ember Data and ActiveRecord.
Features
- Auto-generated repositories (REST clients) for all models 🚀
- CRUD and custom actions on remote API
- StateNotifier, Future and Stream APIs
- Built for offline-first 🔌
- uses Hive at its core for caching & local storage
- included read/write retry offline adapter
- Effortless setup ⏰
- Automatically configured Providers
- Convention over configuration powered by Dart mixins
- Exceptional relationship support ⚡️
- Automatically synchronized, traversable relationship graph
- Reactive relationships
- Clean, intuitive API and minimal boilerplate 💙
- Truly configurable and composable
- Scales very well (both up and down)
Working on a Flutter app that talks to an API server?
You want to fetch data from a REST API, serialize it, store it for offline use and hook it up with your state management solution – all that for 20+ interconnected models in your app.
Trying to make this work with http/Chopper/Firebase, json_serializable, ad-hoc caching, Provider wiring up, custom loading/error states (not to mention sync’ing with local storage, Hive or SQLite)… can be painful 😫.
What if you could get it all working smoothly with minimal effort?
Get started with the quickstart guide and go through the tutorial to see how we build a CRUD app from the ground up in record time!
Compatibility
Fully compatible with the tools we know and love:
Compatible | ||
---|---|---|
Flutter | ✅ | It can also be used with pure Dart |
json_serializable | ✅ | Not required! Other fromJson /toJson can be supplied |
JSON REST API | ✅ | Great support |
JSON:API | ✅ | Great support |
Firebase | ✅ | Adapter coming soon 🎉 as well as Firebase Auth |
Provider | ✅ | Not required! It can be automatically wired up |
get_it | ✅ | Not required! Very easy to integrate |
Streams / BLoC | ✅ | Great support |
Freezed | ✅ | Good support |
Flutter Web | ✅ | Full support coming soon! |
Hive | ✅ | Flutter Data uses Hive internally for local storage |
Chopper/Retrofit | Not needed: Flutter Data generates its own REST clients (**) |
(**) That said, adapters are being considered!
Around the web
- Flutter Data on Pub: https://pub.dev/packages/flutter_data
- Flutter Data on Github: https://github.com/flutterdata/flutter_data
- Find me on Twitter: https://twitter.com/thefrank06
➡ Go to the quickstart!