Коммит f78635d8 создал по автору ovc-serega's avatar ovc-serega
Просмотр файлов

Added support for flutter 3.32.7

владелец 171374f7
## 0.1.0
# Changelog
## 0.2.0
* Added support for flutter 3.32.7
## 0.1.0
* The objectbox version has been updated
* Updated documentation
......
......@@ -54,7 +54,6 @@ query.close();
- **NoSQL model:** store pure Dart objects, not tables/rows.
- **Secure, offline-first** architecture for reliable local data access.
---
## Contents
- [Installation and build](#installation-and-build)
......@@ -73,11 +72,6 @@ dependencies:
url: https://developer.auroraos.ru/git/flutter/flutter-community-plugins/objectbox_flutter_libs_aurora.git
```
***.desktop**
```desktop
Permissions=UserDirs
```
<a name="compatibility"></a>
## Compatibility
......
......@@ -54,8 +54,6 @@ query.close();
- **NoSQL-модель:** хранение чистых Dart-объектов, а не таблиц или строк.
- **Надежная офлайн-архитектура** для локального доступа к данным.
---
## Содержание
- [Установка и сборка](#установка-и-сборка)
......@@ -75,11 +73,6 @@ dependencies:
url: https://developer.auroraos.ru/git/flutter/flutter-community-plugins/objectbox_flutter_libs_aurora.git
```
***.desktop**
```desktop
Permissions=UserDirs
```
<a name="совместимость"></a>
## Совместимость
......
# SPDX-FileCopyrightText: 2024-2025 Open Mobile Platform LLC <community@omp.ru>
# SPDX-License-Identifier: BSD-3-Clause
# CMAKE_SYSTEM_PROCESSOR - CPU architecture name (armv7l, aarch64, x86_64)
# CMAKE_BUILD_TYPE - Build mode (debug, profile, release)
# PSDK_VERSION - Build psdk exact version
# PSDK_MAJOR - Build psdk major version
cmake_minimum_required(VERSION 3.10)
set(PROJECT_NAME objectbox_flutter_libs_aurora)
set(PLUGIN_NAME objectbox_flutter_libs_aurora_platform_plugin)
project(${PROJECT_NAME} LANGUAGES CXX)
cmake_policy(VERSION 3.10)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
......@@ -18,9 +23,6 @@ if(${PSDK_MAJOR} LESS 5)
message( FATAL_ERROR "Cannot build this project on Aurora version less than 5" )
endif()
find_package(PkgConfig REQUIRED)
pkg_check_modules(FlutterEmbedder REQUIRED IMPORTED_TARGET flutter-embedder)
add_library(${PLUGIN_NAME} SHARED
objectbox_flutter_libs_aurora_plugin.cpp
)
......@@ -34,7 +36,7 @@ add_custom_command(TARGET ${PLUGIN_NAME} POST_BUILD
####################
set_target_properties(${PLUGIN_NAME} PROPERTIES CXX_VISIBILITY_PRESET hidden)
target_link_libraries(${PLUGIN_NAME} PRIVATE PkgConfig::FlutterEmbedder)
target_link_libraries(${PLUGIN_NAME} PRIVATE aurora_embedder::aurora_embedder)
target_include_directories(${PLUGIN_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include)
target_compile_definitions(${PLUGIN_NAME} PRIVATE PLUGIN_IMPL)
......@@ -2,13 +2,11 @@
* SPDX-FileCopyrightText: 2024-2025 Open Mobile Platform LLC <community@omp.ru>
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef FLUTTER_PLUGIN_OBJECTBOX_FLUTTER_LIBS_AURORA_PLUGIN_GLOBALS_H
#define FLUTTER_PLUGIN_OBJECTBOX_FLUTTER_LIBS_AURORA_PLUGIN_GLOBALS_H
#pragma once
#ifdef PLUGIN_IMPL
#define PLUGIN_EXPORT __attribute__((visibility("default")))
#else
#define PLUGIN_EXPORT
#endif
#endif /* FLUTTER_PLUGIN_OBJECTBOX_FLUTTER_LIBS_AURORA_PLUGIN_GLOBALS_H */
[EN](README.md) | [**RU**](README.ru.md)
# objectbox_flutter_libs_aurora Example
# objectbox_flutter_libs_aurora_example
## Description
Demo application for the [objectbox_flutter_libs_aurora](https://gitlab.com/omprussia/flutter/flutter-community-plugins/objectbox_flutter_libs_aurora) plugin — ObjectBox implementation for Aurora OS. ObjectBox is a high-performance object database.
Demo application for the `objectbox_flutter_libs_aurora` plugin — ObjectBox implementation for Aurora OS. ObjectBox is a high-performance object database.
Navigate to the application directory, then:
1. Install dependencies:
```shell
flutter-aurora pub get
```
2. Generate required files:
The command for generating objectbox models:
```shell
flutter-aurora pub run build_runner build --delete-conflicting-outputs
```
3. Launch the application:
```shell
flutter-aurora run
```
Or build a release version:
```shell
flutter-aurora build aurora --release
```
## Screenshots
![Main page](screenshots/main_page.png)
![Main page with saved first value](screenshots/saved_first_value.png)
![Value validation](screenshots/value_validation.png)
![Main page with saved second value](screenshots/saved_second_value.png)
![Cleared](screenshots/cleared.png)
## Project Structure
The project follows the standard Dart and Flutter application structure for Aurora OS.
* The **[aurora](aurora)** directory contains C++ source code and installation resources.
* The **[lib](lib)** directory contains Dart plugin source code.
* The **[main.dart](lib/main.dart)** file is the application entry point.
* The **[node_model.dart](lib/models/node_model.dart)** note model (entity).
* The **[note_repository.dart](lib/repositories/note_repository.dart)** repository for data operations.
* The **[pubspec.yaml](pubspec.yaml)** file describes plugin dependencies and settings.
[**RU**](README.ru.md) | [EN](README.md)
# Пример использования objectbox_flutter_libs_aurora
# objectbox_flutter_libs_aurora_example
## Описание
Демонстрационное приложение для работы с плагином [objectbox_flutter_libs_aurora](https://gitlab.com/omprussia/flutter/flutter-community-plugins/objectbox_flutter_libs_aurora) реализацией ObjectBox для Aurora OS. ObjectBox представляет собой высокопроизводительную базу данных для хранения объектов.
Демонстрационное приложение для работы с плагином `objectbox_flutter_libs_aurora` - реализацией ObjectBox для Aurora OS. ObjectBox представляет собой высокопроизводительную базу данных для хранения объектов.
Перейти в директорию с приложением, затем:
1. Установите зависимости:
```shell
flutter-aurora pub get
```
2. Сгенерируйте необходимые файлы:
Команда для генерации моделей objectbox:
```shell
flutter-aurora pub run build_runner build --delete-conflicting-outputs
```
3. Запустите приложение:
```shell
flutter-aurora run
```
Или соберите релизную версию:
```shell
flutter-aurora build aurora --release
```
## Скриншоты
![Main page](screenshots/main_page.png)
![Main page with saved first value](screenshots/saved_first_value.png)
![Value validation](screenshots/value_validation.png)
![Main page with saved second value](screenshots/saved_second_value.png)
![Cleared](screenshots/cleared.png)
## Структура проекта
Проект имеет стандартную структуру приложения на базе Dart и Flutter для ОС Аврора.
* Каталог **[aurora](aurora)** содержит исходный код на C++ и ресурсы необходимые для установки.
* Каталог **[lib](lib)** содержит исходный код плагина на Dart.
* Файл **[main.dart](lib/main.dart)** является точкой входа в приложение.
* Файл **[node_model.dart](lib/models/node_model.dart)** модель заметки (сущность).
* Файл **[note_repository.dart](lib/repositories/note_repository.dart)** репозиторий для работы с данными.
* Файл **[pubspec.yaml](pubspec.yaml)** описывает зависимости и настройки имени плагина.
/flutter
/rpm/requires.inc
/rpm/defines.inc
\ Нет новой строки в конце файла
# SPDX-FileCopyrightText: 2024-2025 Open Mobile Platform LLC <community@omp.ru>
# SPDX-License-Identifier: BSD-3-Clause
# This file will be recreated at the next build. To avoid this, delete this line.
# CMAKE_SYSTEM_PROCESSOR - CPU architecture name (armv7l, aarch64, x86_64)
# CMAKE_BUILD_TYPE - Build mode (debug, profile, release)
# PSDK_VERSION - Build psdk exact version
# PSDK_MAJOR - Build psdk major version
cmake_minimum_required(VERSION 3.10)
project(ru.aurora.objectbox_flutter_libs_aurora_example LANGUAGES CXX)
project(${FLUTTER_PROJECT_NAME} LANGUAGES CXX)
include(GNUInstallDirs)
......@@ -17,24 +22,16 @@ set(CMAKE_CXX_FLAGS_RELEASE "-O3")
set(CMAKE_SKIP_RPATH OFF)
set(CMAKE_INSTALL_RPATH "\$ORIGIN/../share/${BINARY_NAME}/lib")
find_package(PkgConfig REQUIRED)
pkg_check_modules(FlutterEmbedder REQUIRED IMPORTED_TARGET flutter-embedder)
add_executable(${BINARY_NAME} main.cpp ${FLUTTER_DIR}/generated_plugin_registrant.cpp)
target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::FlutterEmbedder)
target_include_directories(${BINARY_NAME} PRIVATE ${FLUTTER_DIR})
add_executable(${BINARY_NAME} main.cpp)
include(flutter/generated_plugins.cmake)
target_link_libraries(${BINARY_NAME} PRIVATE aurora_embedder::aurora_embedder)
target_include_directories(${BINARY_NAME} PRIVATE ${FLUTTER_DIR})
set(PACKAGE_INSTALL_DIR ${CMAKE_INSTALL_DATADIR}/${BINARY_NAME})
set(DESKTOP_INSTALL_DIR ${CMAKE_INSTALL_DATADIR}/applications)
set(ICONS_INSTALL_ROOT_DIR ${CMAKE_INSTALL_DATADIR}/icons/hicolor)
add_custom_command(TARGET ${BINARY_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/libflutter-embedder.so
${PROJECT_BINARY_DIR}/bundle/lib/libflutter-embedder.so)
install(FILES ${PROJECT_BINARY_DIR}/bundle/icudtl.dat DESTINATION ${PACKAGE_INSTALL_DIR})
install(DIRECTORY ${PROJECT_BINARY_DIR}/bundle/flutter_assets DESTINATION ${PACKAGE_INSTALL_DIR})
install(DIRECTORY ${PROJECT_BINARY_DIR}/bundle/lib DESTINATION ${PACKAGE_INSTALL_DIR})
......
# This file will be recreated at the next build. To avoid this, delete this line.
[Desktop Entry]
Type=Application
Name=objectbox_flutter_libs_aurora_example
......
/**
* SPDX-FileCopyrightText: Copyright 2024-2025 Open Mobile Platform LLC <community@omp.ru>
* SPDX-FileCopyrightText: 2024-2025 Open Mobile Platform LLC <community@omp.ru>
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <flutter/flutter_aurora.h>
#include "generated_plugin_registrant.h"
int main(int argc, char* argv[]) {
aurora::Initialize(argc, argv);
aurora::RegisterPlugins();
aurora::Launch();
return 0;
int main(int argc, char *argv[]) {
aurora::FlutterApp app(argc, argv);
return app.exec();
}
%dnl This file will be recreated at the next build. To avoid this, delete this line.
%include %{_sourcedir}/defines.inc
%global __provides_exclude_from ^%{_datadir}/%{name}/lib/.*$
%global __requires_exclude ^lib(dconf|flutter-embedder|maliit-glib|.+_platform_plugin)\\.so.*$
%global __requires_exclude %{_flutter_excludes}
Name: ru.aurora.objectbox_flutter_libs_aurora_example
Name: %{orgName}.%{appName}%{?flavor}
Summary: Demonstrates how to use the objectbox_flutter_libs_aurora plugin.
Version: 0.1.0
Version: %{appVersion}
Release: 1
License: Proprietary
Source0: %{name}-%{version}.tar.zst
BuildRequires: cmake
BuildRequires: ninja
%requires
%dnl Place to add custom BuildRequires.
%description
%{summary}.
......@@ -18,7 +22,7 @@ BuildRequires: ninja
%autosetup
%build
%cmake -GNinja -DCMAKE_BUILD_TYPE=%{_flutter_build_type} -DPSDK_VERSION=%{_flutter_psdk_version} -DPSDK_MAJOR=%{_flutter_psdk_major}
%cmake -GNinja -DCMAKE_BUILD_TYPE=%{_flutter_build_type} -DPSDK_VERSION=%{_flutter_psdk_version} -DPSDK_MAJOR=%{_flutter_psdk_major} -DFLUTTER_PROJECT_NAME=%{name}
%ninja_build
%install
......
......@@ -5,7 +5,6 @@ import 'package:flutter/material.dart';
import 'node_model.dart';
import 'note_repository.dart';
enum DataState { loading, error, success }
void main() {
......@@ -41,6 +40,7 @@ class _MyAppState extends State<MyApp> {
noteRepository = await NoteRepository.init();
_updateStateNotes();
} catch (e) {
debugPrint(e.toString());
setState(() => _state = DataState.error);
}
});
......@@ -104,65 +104,52 @@ class _MyAppState extends State<MyApp> {
builder: (context, constraints) {
return SingleChildScrollView(
child: ConstrainedBox(
constraints: BoxConstraints(
minHeight: constraints.maxHeight,
),
constraints: BoxConstraints(minHeight: constraints.maxHeight),
child: IntrinsicHeight(
child: switch (_state) {
DataState.loading =>
const Center(child: CircularProgressIndicator()),
DataState.error =>
const Center(child: Text("Error initializing database.")),
DataState.loading => const Center(child: CircularProgressIndicator()),
DataState.error => const Center(child: Text("Error initializing database")),
DataState.success => Form(
key: _formKey,
child: Padding(
padding: const EdgeInsets.all(16),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
const Text(
'A Flutter plugin for Aurora OS to manage databases with super-fast NoSQL ACID compliant object persistence.',
textAlign: TextAlign.center,
),
const SizedBox(height: 16),
const Divider(height: 1),
const SizedBox(height: 16),
Text('Values: $_values'),
const SizedBox(height: 16),
const Divider(height: 1),
const SizedBox(height: 16),
/// Fields
TextFormField(
controller: _controller,
decoration: const InputDecoration(
labelText: 'Value',
border: OutlineInputBorder(),
),
validator: _validateInput,
),
const SizedBox(height: 16),
/// Submit button
SizedBox(
width: double.infinity,
child: ElevatedButton(
onPressed: _handleSave,
child: const Text('Save data'),
),
),
const SizedBox(height: 8),
SizedBox(
width: double.infinity,
child: ElevatedButton(
onPressed: _handleClear,
child: const Text('Clear data'),
),
),
],
),
key: _formKey,
child: Padding(
padding: const EdgeInsets.all(16),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
const Text(
'A Flutter plugin for Aurora OS to manage databases with super-fast NoSQL ACID compliant object persistence.',
textAlign: TextAlign.center,
),
const SizedBox(height: 16),
const Divider(height: 1),
const SizedBox(height: 16),
Text('Values: $_values'),
const SizedBox(height: 16),
const Divider(height: 1),
const SizedBox(height: 16),
/// Fields
TextFormField(
controller: _controller,
decoration: const InputDecoration(labelText: 'Value', border: OutlineInputBorder()),
validator: _validateInput,
),
const SizedBox(height: 16),
/// Submit button
SizedBox(
width: double.infinity,
child: ElevatedButton(onPressed: _handleSave, child: const Text('Save data')),
),
const SizedBox(height: 8),
SizedBox(
width: double.infinity,
child: ElevatedButton(onPressed: _handleClear, child: const Text('Clear data')),
),
],
),
),
),
},
),
),
......
......@@ -20,29 +20,33 @@ export 'package:objectbox/objectbox.dart'; // so that callers only have to impor
final _entities = <obx_int.ModelEntity>[
obx_int.ModelEntity(
id: const obx_int.IdUid(1, 8442902567896633550),
name: 'NoteModel',
lastPropertyId: const obx_int.IdUid(3, 7856965599386498070),
flags: 0,
properties: <obx_int.ModelProperty>[
obx_int.ModelProperty(
id: const obx_int.IdUid(1, 412732101197720105),
name: 'id',
type: 6,
flags: 1),
obx_int.ModelProperty(
id: const obx_int.IdUid(2, 308637641594269072),
name: 'message',
type: 9,
flags: 0),
obx_int.ModelProperty(
id: const obx_int.IdUid(3, 7856965599386498070),
name: 'datetime',
type: 10,
flags: 0)
],
relations: <obx_int.ModelRelation>[],
backlinks: <obx_int.ModelBacklink>[])
id: const obx_int.IdUid(1, 8442902567896633550),
name: 'NoteModel',
lastPropertyId: const obx_int.IdUid(3, 7856965599386498070),
flags: 0,
properties: <obx_int.ModelProperty>[
obx_int.ModelProperty(
id: const obx_int.IdUid(1, 412732101197720105),
name: 'id',
type: 6,
flags: 1,
),
obx_int.ModelProperty(
id: const obx_int.IdUid(2, 308637641594269072),
name: 'message',
type: 9,
flags: 0,
),
obx_int.ModelProperty(
id: const obx_int.IdUid(3, 7856965599386498070),
name: 'datetime',
type: 10,
flags: 0,
),
],
relations: <obx_int.ModelRelation>[],
backlinks: <obx_int.ModelBacklink>[],
),
];
/// Shortcut for [obx.Store.new] that passes [getObjectBoxModel] and for Flutter
......@@ -56,73 +60,84 @@ final _entities = <obx_int.ModelEntity>[
/// For Flutter apps, also calls `loadObjectBoxLibraryAndroidCompat()` from
/// the ObjectBox Flutter library to fix loading the native ObjectBox library
/// on Android 6 and older.
Future<obx.Store> openStore(
{String? directory,
int? maxDBSizeInKB,
int? maxDataSizeInKB,
int? fileMode,
int? maxReaders,
bool queriesCaseSensitiveDefault = true,
String? macosApplicationGroup}) async {
Future<obx.Store> openStore({
String? directory,
int? maxDBSizeInKB,
int? maxDataSizeInKB,
int? fileMode,
int? maxReaders,
bool queriesCaseSensitiveDefault = true,
String? macosApplicationGroup,
}) async {
await loadObjectBoxLibraryAndroidCompat();
return obx.Store(getObjectBoxModel(),
directory: directory ?? (await defaultStoreDirectory()).path,
maxDBSizeInKB: maxDBSizeInKB,
maxDataSizeInKB: maxDataSizeInKB,
fileMode: fileMode,
maxReaders: maxReaders,
queriesCaseSensitiveDefault: queriesCaseSensitiveDefault,
macosApplicationGroup: macosApplicationGroup);
return obx.Store(
getObjectBoxModel(),
directory: directory ?? (await defaultStoreDirectory()).path,
maxDBSizeInKB: maxDBSizeInKB,
maxDataSizeInKB: maxDataSizeInKB,
fileMode: fileMode,
maxReaders: maxReaders,
queriesCaseSensitiveDefault: queriesCaseSensitiveDefault,
macosApplicationGroup: macosApplicationGroup,
);
}
/// Returns the ObjectBox model definition for this project for use with
/// [obx.Store.new].
obx_int.ModelDefinition getObjectBoxModel() {
final model = obx_int.ModelInfo(
entities: _entities,
lastEntityId: const obx_int.IdUid(1, 8442902567896633550),
lastIndexId: const obx_int.IdUid(0, 0),
lastRelationId: const obx_int.IdUid(0, 0),
lastSequenceId: const obx_int.IdUid(0, 0),
retiredEntityUids: const [],
retiredIndexUids: const [],
retiredPropertyUids: const [],
retiredRelationUids: const [],
modelVersion: 5,
modelVersionParserMinimum: 5,
version: 1);
entities: _entities,
lastEntityId: const obx_int.IdUid(1, 8442902567896633550),
lastIndexId: const obx_int.IdUid(0, 0),
lastRelationId: const obx_int.IdUid(0, 0),
lastSequenceId: const obx_int.IdUid(0, 0),
retiredEntityUids: const [],
retiredIndexUids: const [],
retiredPropertyUids: const [],
retiredRelationUids: const [],
modelVersion: 5,
modelVersionParserMinimum: 5,
version: 1,
);
final bindings = <Type, obx_int.EntityDefinition>{
NoteModel: obx_int.EntityDefinition<NoteModel>(
model: _entities[0],
toOneRelations: (NoteModel object) => [],
toManyRelations: (NoteModel object) => {},
getId: (NoteModel object) => object.id,
setId: (NoteModel object, int id) {
object.id = id;
},
objectToFB: (NoteModel object, fb.Builder fbb) {
final messageOffset = fbb.writeString(object.message);
fbb.startTable(4);
fbb.addInt64(0, object.id);
fbb.addOffset(1, messageOffset);
fbb.addInt64(2, object.datetime.millisecondsSinceEpoch);
fbb.finish(fbb.endTable());
return object.id;
},
objectFromFB: (obx.Store store, ByteData fbData) {
final buffer = fb.BufferContext(fbData);
final rootOffset = buffer.derefObject(0);
final messageParam = const fb.StringReader(asciiOptimization: true)
.vTableGet(buffer, rootOffset, 6, '');
final idParam =
const fb.Int64Reader().vTableGet(buffer, rootOffset, 4, 0);
final object = NoteModel(messageParam, id: idParam)
..datetime = DateTime.fromMillisecondsSinceEpoch(
const fb.Int64Reader().vTableGet(buffer, rootOffset, 8, 0));
model: _entities[0],
toOneRelations: (NoteModel object) => [],
toManyRelations: (NoteModel object) => {},
getId: (NoteModel object) => object.id,
setId: (NoteModel object, int id) {
object.id = id;
},
objectToFB: (NoteModel object, fb.Builder fbb) {
final messageOffset = fbb.writeString(object.message);
fbb.startTable(4);
fbb.addInt64(0, object.id);
fbb.addOffset(1, messageOffset);
fbb.addInt64(2, object.datetime.millisecondsSinceEpoch);
fbb.finish(fbb.endTable());
return object.id;
},
objectFromFB: (obx.Store store, ByteData fbData) {
final buffer = fb.BufferContext(fbData);
final rootOffset = buffer.derefObject(0);
final messageParam = const fb.StringReader(
asciiOptimization: true,
).vTableGet(buffer, rootOffset, 6, '');
final idParam = const fb.Int64Reader().vTableGet(
buffer,
rootOffset,
4,
0,
);
final object = NoteModel(messageParam, id: idParam)
..datetime = DateTime.fromMillisecondsSinceEpoch(
const fb.Int64Reader().vTableGet(buffer, rootOffset, 8, 0),
);
return object;
})
return object;
},
),
};
return obx_int.ModelDefinition(model, bindings);
......@@ -131,14 +146,17 @@ obx_int.ModelDefinition getObjectBoxModel() {
/// [NoteModel] entity fields to define ObjectBox queries.
class NoteModel_ {
/// See [NoteModel.id].
static final id =
obx.QueryIntegerProperty<NoteModel>(_entities[0].properties[0]);
static final id = obx.QueryIntegerProperty<NoteModel>(
_entities[0].properties[0],
);
/// See [NoteModel.message].
static final message =
obx.QueryStringProperty<NoteModel>(_entities[0].properties[1]);
static final message = obx.QueryStringProperty<NoteModel>(
_entities[0].properties[1],
);
/// See [NoteModel.datetime].
static final datetime =
obx.QueryDateProperty<NoteModel>(_entities[0].properties[2]);
static final datetime = obx.QueryDateProperty<NoteModel>(
_entities[0].properties[2],
);
}
# SPDX-FileCopyrightText: Copyright 2025 Open Mobile Platform LLC <community@omp.ru>
# SPDX-FileCopyrightText: 2024-2025 Open Mobile Platform LLC <community@omp.ru>
# SPDX-License-Identifier: BSD-3-Clause
name: objectbox_flutter_libs_aurora_example
description: "Demonstrates how to use the objectbox_flutter_libs_aurora plugin."
organization: "ru.aurora"
version: 0.2.0
publish_to: 'none'
environment:
sdk: ">=3.6.0 <4.0.0"
flutter: ">=3.27.3"
sdk: ^3.8.1
flutter: ^3.32.7
dependencies:
flutter:
sdk: flutter
......@@ -24,16 +25,5 @@ dev_dependencies:
build_runner: ^2.4.15
objectbox_generator: ^4.3.0
dependency_overrides:
path_provider_aurora:
analyzer:
cryptography:
crypto:
yaml:
path:
glob:
build_runner:
pubspec_parse:
flutter:
uses-material-design: true
......@@ -2,17 +2,15 @@
# SPDX-License-Identifier: BSD-3-Clause
name: objectbox_flutter_libs_aurora
description: Aurora version of objectbox_flutter_libs_aurora
repository: https://developer.auroraos.ru/git/flutter/flutter-community-plugins/objectbox_flutter_libs_aurora
version: 0.1.0
version: 0.2.0
environment:
sdk: ^3.5.0
flutter: ^3.27.3
sdk: ^3.8.1
flutter: ^3.32.7
dependencies:
flutter:
sdk: flutter
objectbox: ^4.3.0
objectbox: 4.3.0
path_provider: ^2.1.5
dev_dependencies:
......@@ -23,3 +21,5 @@ flutter:
platforms:
aurora:
pluginClass: ObjectboxFlutterLibsAuroraPlugin
permissions:
- UserDirs
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать