Releases: objectbox/objectbox-dart
Releases · objectbox/objectbox-dart
v1.1.1
v1.1.0
- New
openStore()in the generated code to simplify creating a store instance, especially on Flutter (uses application
documents directory as a default). - Add support for Entities used together with some custom code-generators (immutable objects, JSON, ...).
See@Entity(realClass: )new field and its docs. - New
Query.param()to support reusable queries (changing condition values before execution).
See Reusing queries in docs. - Rename semi-internal
QueryRelationPropertytoQueryRelationToOneandQueryRelationManytoQueryRelationToMany
to help users pick the right link function:link()vslinkMany(). - Add support for the entity/property/relation rename or reset workflow.
See Data model updates for details. - Add support for
ToOnerelation cycles. - Enforce you can only open the same database directory once (multiple parallel
Storeinstances are not allowed). - Fix
macOSsandbox database directory permissions (see notes in Flutter-specific "Getting Started" docs). - Fix
ToManyshowing duplicate items after adding them before reading the previous list. - Fix invalid native free during store shutdown if large data was inserted (more than 64 kilobytes flatbuffer).
- FlatBuffers serialization performance improvements.
- Update to objectbox-android v2.9.2-RC3.
v1.0.0
- 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. - New Query condition
between()for integers and IDs. - 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.
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.
v0.14.0
- Fix non-nullable
DateTimefields deserialization regression (introduced in v0.13.0) - fields were read as nanosecond instead of millisecond timestamp. - Respect case-sensitivity setting in string
PropertyQuery.count()withdistinct = true(the result was always like withcaseSensitive = true). - Query
findFirst()doesn't changeQueryobject'soffsetandlimitanymore. - Change Query string conditions
caseSensitivedefault totrue, previously conditions were case-insensitive by default. - Introduce Store constructor argument
queriesCaseSensitiveDefault- allows changing the default value ofcaseSensitivein queries.
This includes stringPropertyQuerywhen usingdistinct = true. - Get around Flutter's Android release build issue by changing the code the compiler had trouble with.
- Remove deprecated APIs from internal plugin interfaces (deprecation notice printed during Flutter build).
- Generator - update dependencies to their null-safe versions.
- Generated code - avoid more linter issues.
v0.13.0
- Null-safety support: both in the library and the generated code.
- Remove deprecated arguments
offset,limit,withEqualfromQuerymethods. - More performance optimizations, mostly in our FlatBuffers fork.
- Fix FlatBuffers builder growing.
- Update to objectbox-c v0.13.0
- Update to objectbox-android v2.9.1
- Increase minimum SDK versions: Flutter v2.0 & Dart v2.12.
v0.13.0-nullsafety.3
Null safety pre-release, including new features and performance improvements (details will be specified in the final release).
Any feedback is welcome - raise a GitHub issue or comment on an existing one.
v0.12.1
v0.12.0
- Recognize
DateTimeentity fields, settingPropertyType.date(millisecond storage precision). - Support specifying
PropertyType.dateNanoforDateTimefields (nanosecond storage precision). - Add
Store.referencegetter andStore.fromReference()factory - enabling access to store from multiple isolates. - Add
Store.subscribe<EntityType>()andStore.subscribeAll()data change event streams. - Add multiple
SyncClientevent streams. - Add
Queryconditions forlessOrEqual/greaterOrEqualon integer and double property types. - Add self-assignable IDs: annotation
@Id(assignable: true). - Update to objectbox-c v0.12.0
- Update to objectbox-android v2.9.0
- Update to objectbox-swift v1.5.0
- Increase minimum SDK versions: Flutter v1.20 & Dart v2.9. Code generator already required Flutter v1.22 & Dart v2.10.