v0.15.0
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 aFutureandputQueued()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
streamandfindStream()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
finalfields 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 newUniqueViolationExceptionthrown 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.