This is a 1.0 release candidate - please try it out and give us any last-minute feedback, especially on new and changed APIs.
- New Box
putAsync()
returning aFuture
andputQueued()
for asynchronous writes. - Query now supports auto-closing. You can still call
close()
manually if you want to free native resources sooner
than they would be by Dart's garbage collector, but it's not mandatory anymore. - Change the "meta-model" fields to provide completely type-safe query building.
Conditions you specify are now checked at compile time to match the queried entity. - Make property queries fully typed,
PropertyQuery.find()
now returns the appropriateList<...>
type without casts. - Query conditions
inside()
renamed tooneOf()
,notIn()
andnotInList()
renamed tonotOneOf()
. - Query
stream
andfindStream()
are replaced byQueryBuilder.watch()
, i.e.box.query(...).watch()
. - New Query
stream()
to stream objects all the while the query is executed in the background. - Store
subscribe<EntityType>()
renamed towatch()
. - Store
subscribeAll()
replaced by a shared broadcast streamentityChanges
. - Entities can now contain
final
fields and they're properly stored/loaded (must be constructor params). - Flutter desktop - native library is now downloaded automatically, same as for mobile platforms.
- Follow exception-vs-error throwing conventions - throwing errors when it's a permanent developer-caused error. Namely,
there's a newUniqueViolationException
thrown when an object you're trying toput()
would violate aUnique()
index. - Even higher than usual amount of internal optimizations and improvements.
- Update to objectbox-c v0.14.0.
- Update to objectbox-swift v1.6.0.
- Update to objectbox-android v2.9.2-RC.