- High performance - improving response rates and enabling real-time applications.
- ACID compliant - Atomic, Consistent, Isolated, Durable.
- Multiplatform - Android, iOS, macOS, Linux, Windows.
- Scalable - grows with your app, handling millions of objects with ease.
- Relations - object links / relationships are built-in.
- Queries - filter data as needed, even across relations.
- Statically typed - compile time checks & optimizations.
- Schema migration - change your model with confidence.
- Data Sync - keeps data in sync offline or online, between devices and servers.
@Entity() class Person { int id; String firstName; String lastName; Person({this.id = 0, required this.firstName, required this.lastName}); } final store = await openStore(); final box = store.box(); var person = Person(firstName: 'Joe', lastName: 'Green'); final id = box.put(person); // Create person = box.get(id)!; // Read person.lastName = "Black"; box.put(person); // Update box.remove(person.id); // Delete // find all people whose name start with letter 'J' final query = box.query(Person_.firstName.startsWith('J')).build(); final people = query.find(); // find() returns List
Example
Add these dependencies to your pubspec.yaml
:
dependencies:
objectbox: ^1.4.1
objectbox_flutter_libs: any
# for ObjectBox Sync use this dependency instead:
# objectbox_sync_flutter_libs: any
dev_dependencies:
build_runner: ^2.0.0
objectbox_generator: any
Install the packages:
flutter pub get
For iOS: in the Flutter Runner Xcode project
- increase the deployment target to at least iOS 11 and,
- under Architectures, replace
${ARCHS_STANDARD}
witharm64
(or$ARCHS_STANDARD_64_BIT
). See FAQ for details.
For sandboxed macOS apps: specify an application group. Check all
macos/Runner/*.entitlements
files if they contain a<dict>
section with correct group ID info. Change the string value to theDEVELOPMENT_TEAM
found in Xcode settings, plus an application-specific suffix, for example:<key>com.apple.security.application-groups</key> <array> <string>FGDTDLOBXDJ.demo</string> </array>
Next, in the app code, pass the same string when opening the Store, for example:
openStore(macosApplicationGroup: 'FGDTDLOBXDJ.demo')
.
Note: Pick a short group identifier; there's an internal limit in macOS that requires the complete string to be 19 characters or fewer.For Sync + Android: in
android/app/build.gradle
setminSdkVersion 21
in sectionandroid -> defaultConfig
.In order to run Flutter unit tests locally on your machine, install the native ObjectBox library on your host machine (same as you would if you developed for Dart native, as described in the next section):
bash <(curl -s https://raw.githubusercontent.com/objectbox/objectbox-dart/main/install.sh)
Done!
0 comments:
Post a Comment