Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: packages/alice_objectbox #205

Merged
merged 62 commits into from
Jun 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
b324838
feat: packages/alice_objectbox
techouse Jun 23, 2024
31ac7ac
feat: packages/alice_objectbox
techouse Jun 26, 2024
0ca2009
feat: packages/alice_objectbox
techouse Jun 26, 2024
06fb2fb
feat: packages/alice_objectbox
techouse Jun 26, 2024
1406e7e
Merge remote-tracking branch 'refs/remotes/origin/master' into feat/o…
techouse Jun 27, 2024
3add39a
feat: packages/alice_objectbox
techouse Jun 27, 2024
3806683
feat: packages/alice_objectbox
techouse Jun 27, 2024
b46bd84
feat: packages/alice_objectbox
techouse Jun 27, 2024
1f18fcf
feat: packages/alice_objectbox
techouse Jun 27, 2024
a163055
feat: packages/alice_objectbox
techouse Jun 27, 2024
1b2ed82
feat: packages/alice_objectbox
techouse Jun 27, 2024
b42a19c
feat: packages/alice_objectbox
techouse Jun 27, 2024
f944ea1
feat: packages/alice_objectbox
techouse Jun 27, 2024
f2e6794
feat: packages/alice_objectbox
techouse Jun 27, 2024
d3cf0c7
feat: packages/alice_objectbox
techouse Jun 27, 2024
c425b6f
feat: packages/alice_objectbox
techouse Jun 27, 2024
03f5c1d
feat: packages/alice_objectbox
techouse Jun 27, 2024
278c22d
feat: packages/alice_objectbox
techouse Jun 27, 2024
976de98
feat: packages/alice_objectbox
techouse Jun 27, 2024
cb482b5
feat: packages/alice_objectbox
techouse Jun 27, 2024
5b673af
feat: packages/alice_objectbox
techouse Jun 27, 2024
214a94a
feat: packages/alice_objectbox
techouse Jun 27, 2024
fe290a9
feat: packages/alice_objectbox
techouse Jun 27, 2024
675cac5
feat: packages/alice_objectbox
techouse Jun 27, 2024
8ddd880
feat: packages/alice_objectbox
techouse Jun 27, 2024
f624df2
feat: packages/alice_objectbox
techouse Jun 27, 2024
e837b8e
feat: packages/alice_objectbox
techouse Jun 27, 2024
1234cbb
feat: packages/alice_objectbox
techouse Jun 27, 2024
948f525
feat: packages/alice_objectbox
techouse Jun 27, 2024
393be4b
feat: examples/alice_objectbox
techouse Jun 27, 2024
091af35
feat: examples/alice_objectbox
techouse Jun 27, 2024
05599ac
feat: examples/alice_objectbox
techouse Jun 27, 2024
b02818a
feat: examples/alice_objectbox
techouse Jun 27, 2024
ef8bb74
feat: examples/alice_objectbox
techouse Jun 27, 2024
49c017d
feat: examples/alice_objectbox
techouse Jun 27, 2024
e45fb6c
feat: examples/alice_objectbox
techouse Jun 28, 2024
bdde6c4
feat: examples/alice_objectbox
techouse Jun 28, 2024
f3e9d71
feat: examples/alice_objectbox
techouse Jun 28, 2024
1cb99eb
feat: examples/alice_objectbox
techouse Jun 28, 2024
91b15d7
feat: examples/alice_objectbox
techouse Jun 28, 2024
efaac59
feat: examples/alice_objectbox
techouse Jun 28, 2024
bdf2f87
feat: examples/alice_objectbox
techouse Jun 28, 2024
82dd674
feat: examples/alice_objectbox
techouse Jun 28, 2024
b5b29d6
feat: examples/alice_objectbox
techouse Jun 28, 2024
226337c
feat: examples/alice_objectbox
techouse Jun 28, 2024
12583b3
feat: examples/alice_objectbox
techouse Jun 28, 2024
d091f3b
feat: examples/alice_objectbox
techouse Jun 28, 2024
01ff4bc
feat: examples/alice_objectbox
techouse Jun 28, 2024
338d5ca
feat: packages/alice_objectbox
techouse Jun 28, 2024
536c334
feat: packages/alice_objectbox
techouse Jun 28, 2024
e92e1b5
feat: packages/alice_objectbox
techouse Jun 28, 2024
ef6b620
feat: packages/alice_objectbox
techouse Jun 28, 2024
dbf32ce
feat: packages/alice_objectbox
techouse Jun 28, 2024
0485042
feat: packages/alice_objectbox
techouse Jun 28, 2024
fe18023
feat: packages/alice_objectbox
techouse Jun 28, 2024
e346904
feat: packages/alice_objectbox
techouse Jun 28, 2024
7ccb472
docs: packages/alice_objectbox
techouse Jun 28, 2024
a325a10
docs: packages/alice_objectbox
techouse Jun 28, 2024
dc509a8
feat: packages/alice_objectbox
techouse Jun 28, 2024
4eab8ea
feat: packages/alice_objectbox
techouse Jun 28, 2024
ba76fa3
feat: packages/alice_objectbox
techouse Jun 28, 2024
592a1a7
feat: packages/alice_objectbox
techouse Jun 28, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions docs/usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,3 +100,58 @@ httpClient
aliceHttpClientAdapter.onResponse(httpResponse, request, body: responseBody);
});
```

## ObjectBox

Setting up ObjectBox with Alice is simple, however, there are a few crucial steps which need to be followed.

1. Add it to your dependencies

```yaml
dependencies:
alice_objectbox: ^1.0.0
```

2. Follow the ObjectBox [example](https://github.com/objectbox/objectbox-dart/blob/main/objectbox/example/flutter/objectbox_demo/lib/main.dart)

```dart
Future<void> main() async {
/// This is required so ObjectBox can get the application directory
/// to store the database in.
WidgetsFlutterBinding.ensureInitialized();

/// Initialize [AliceObjectBoxStore] before running the app.
final AliceObjectBoxStore store =
await AliceObjectBoxStore.create(persistent: false);

/// Pass [AliceObjectBoxStore] to the app
runApp(MyApp(store: store));
}

class MyApp extends StatefulWidget {
const MyApp({
super.key,
required this.store,
});

final AliceObjectBoxStore store;

@override
State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
late final Alice _alice = Alice(
showNotification: true,
showInspectorOnShake: true,
maxCallsCount: 1000,
/// Pass [AliceObjectBox] to the [Alice] constructor
aliceStorage: AliceObjectBox(
store: widget.store,
maxCallsCount: 1000,
),
);

// your custom stuff...
}
```
43 changes: 43 additions & 0 deletions examples/alice_objectbox/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Miscellaneous
*.class
*.log
*.pyc
*.swp
.DS_Store
.atom/
.buildlog/
.history
.svn/
migrate_working_dir/

# IntelliJ related
*.iml
*.ipr
*.iws
.idea/

# The .vscode folder contains launch configuration and tasks you configure in
# VS Code which you may wish to be included in version control, so this line
# is commented out by default.
#.vscode/

# Flutter/Dart/Pub related
**/doc/api/
**/ios/Flutter/.last_build_id
.dart_tool/
.flutter-plugins
.flutter-plugins-dependencies
.pub-cache/
.pub/
/build/

# Symbolication related
app.*.symbols

# Obfuscation related
app.*.map.json

# Android Studio will place build artifacts here
/android/app/debug
/android/app/profile
/android/app/release
33 changes: 33 additions & 0 deletions examples/alice_objectbox/.metadata
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc.
#
# This file should be version controlled and should not be manually edited.

version:
revision: "761747bfc538b5af34aa0d3fac380f1bc331ec49"
channel: "stable"

project_type: app

# Tracks metadata for the flutter migrate command
migration:
platforms:
- platform: root
create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
- platform: android
create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
- platform: ios
create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49
base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49

# User provided section

# List of Local paths (relative to this file) that should be
# ignored by the migrate tool.
#
# Files that are not part of the templates will be ignored by default.
unmanaged_files:
- 'lib/main.dart'
- 'ios/Runner.xcodeproj/project.pbxproj'
3 changes: 3 additions & 0 deletions examples/alice_objectbox/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# example

Alice + ObjectBox Example
10 changes: 10 additions & 0 deletions examples/alice_objectbox/analysis_options.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
analyzer:
exclude:
- "lib/generated_plugin_registrant.dart"
- "**.g.dart"

include: package:flutter_lints/flutter.yaml

linter:
rules:
#library_annotations: false
13 changes: 13 additions & 0 deletions examples/alice_objectbox/android/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
gradle-wrapper.jar
/.gradle
/captures/
/gradlew
/gradlew.bat
/local.properties
GeneratedPluginRegistrant.java

# Remember to never publicly share your keystore.
# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
key.properties
**/*.keystore
**/*.jks
58 changes: 58 additions & 0 deletions examples/alice_objectbox/android/app/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
plugins {
id "com.android.application"
id "kotlin-android"
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id "dev.flutter.flutter-gradle-plugin"
}

def localProperties = new Properties()
def localPropertiesFile = rootProject.file("local.properties")
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader("UTF-8") { reader ->
localProperties.load(reader)
}
}

def flutterVersionCode = localProperties.getProperty("flutter.versionCode")
if (flutterVersionCode == null) {
flutterVersionCode = "1"
}

def flutterVersionName = localProperties.getProperty("flutter.versionName")
if (flutterVersionName == null) {
flutterVersionName = "1.0"
}

android {
namespace = "com.jhomlala.alice_objectbox_example"
compileSdk = flutter.compileSdkVersion
ndkVersion = flutter.ndkVersion

compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}

defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId = "com.jhomlala.alice_objectbox_example"
// You can update the following values to match your application needs.
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
minSdk = flutter.minSdkVersion
targetSdk = flutter.targetSdkVersion
versionCode = flutterVersionCode.toInteger()
versionName = flutterVersionName
}

buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig = signingConfigs.debug
}
}
}

flutter {
source = "../.."
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- The INTERNET permission is required for development. Specifically,
the Flutter tool needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>
45 changes: 45 additions & 0 deletions examples/alice_objectbox/android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application
android:label="alice_objectbox_example"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher">
<activity
android:name=".MainActivity"
android:exported="true"
android:launchMode="singleTop"
android:taskAffinity=""
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<!-- Specifies an Android theme to apply to this Activity as soon as
the Android process has started. This theme is visible to the user
while the Flutter UI initializes. After that, this theme continues
to determine the Window background behind the Flutter UI. -->
<meta-data
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme"
/>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<!-- Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
<meta-data
android:name="flutterEmbedding"
android:value="2" />
</application>
<!-- Required to query activities that can process text, see:
https://developer.android.com/training/package-visibility and
https://developer.android.com/reference/android/content/Intent#ACTION_PROCESS_TEXT.

In particular, this is used by the Flutter engine in io.flutter.plugin.text.ProcessTextPlugin. -->
<queries>
<intent>
<action android:name="android.intent.action.PROCESS_TEXT"/>
<data android:mimeType="text/plain"/>
</intent>
</queries>
</manifest>
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.jhomlala.alice_objectbox_example

import io.flutter.embedding.android.FlutterActivity

class MainActivity: FlutterActivity()
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="?android:colorBackground" />

<!-- You can insert your own image assets here -->
<!-- <item>
<bitmap
android:gravity="center"
android:src="@mipmap/launch_image" />
</item> -->
</layer-list>
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/white" />

<!-- You can insert your own image assets here -->
<!-- <item>
<bitmap
android:gravity="center"
android:src="@mipmap/launch_image" />
</item> -->
</layer-list>
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when
the Flutter engine draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item>
</style>
<!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your
Flutter UI initializes, as well as behind your Flutter UI while its
running.
This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item>
</style>
</resources>
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
<!-- Show a splash screen on the activity. Automatically removed when
the Flutter engine draws its first frame -->
<item name="android:windowBackground">@drawable/launch_background</item>
</style>
<!-- Theme applied to the Android Window as soon as the process has started.
This theme determines the color of the Android Window while your
Flutter UI initializes, as well as behind your Flutter UI while its
running.

This Theme is only used starting with V2 of Flutter's Android embedding. -->
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
<item name="android:windowBackground">?android:colorBackground</item>
</style>
</resources>
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- The INTERNET permission is required for development. Specifically,
the Flutter tool needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>
18 changes: 18 additions & 0 deletions examples/alice_objectbox/android/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
allprojects {
repositories {
google()
mavenCentral()
}
}

rootProject.buildDir = "../build"
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(":app")
}

tasks.register("clean", Delete) {
delete rootProject.buildDir
}
3 changes: 3 additions & 0 deletions examples/alice_objectbox/android/gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError
android.useAndroidX=true
android.enableJetifier=true
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip
Loading
Loading