mirror of
https://github.com/smmarty/friflex_flutter_starter.git
synced 2026-02-05 11:42:17 +00:00
init
This commit is contained in:
29
app_services/aurora/app_services/.gitignore
vendored
Normal file
29
app_services/aurora/app_services/.gitignore
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
# 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
|
||||
# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock.
|
||||
/pubspec.lock
|
||||
**/doc/api/
|
||||
.dart_tool/
|
||||
build/
|
||||
10
app_services/aurora/app_services/.metadata
Normal file
10
app_services/aurora/app_services/.metadata
Normal file
@@ -0,0 +1,10 @@
|
||||
# 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: "7482962148e8d758338d8a28f589f317e1e42ba4"
|
||||
channel: "stable"
|
||||
|
||||
project_type: package
|
||||
1
app_services/aurora/app_services/README.md
Normal file
1
app_services/aurora/app_services/README.md
Normal file
@@ -0,0 +1 @@
|
||||
# Базовые сервисы для приложения
|
||||
1
app_services/aurora/app_services/analysis_options.yaml
Normal file
1
app_services/aurora/app_services/analysis_options.yaml
Normal file
@@ -0,0 +1 @@
|
||||
include: package:friflex_lint_rules/analysis_options.yaml
|
||||
4
app_services/aurora/app_services/lib/app_services.dart
Normal file
4
app_services/aurora/app_services/lib/app_services.dart
Normal file
@@ -0,0 +1,4 @@
|
||||
library app_services;
|
||||
|
||||
export 'src/app_path_provider.dart';
|
||||
export 'src/app_secure_storage.dart';
|
||||
@@ -0,0 +1,13 @@
|
||||
import 'package:i_app_services/i_app_services.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
|
||||
/// Класс для Aurora реализации сервиса работы с путями
|
||||
class AppPathProvider implements IPathProvider {
|
||||
/// Наименование сервиса
|
||||
static const name = 'AuroraAppPathProvider';
|
||||
|
||||
@override
|
||||
Future<String> getAppDocumentsDirectoryPath() async {
|
||||
return (await getApplicationDocumentsDirectory()).path;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
||||
import 'package:flutter_secure_storage_aurora/flutter_secure_storage_aurora.dart';
|
||||
import 'package:i_app_services/i_app_services.dart';
|
||||
|
||||
/// Класс для Aurora реализации сервис по работе с защищенным хранилищем
|
||||
final class AppSecureStorage implements ISecureStorage {
|
||||
/// Создает сервис для работы с защищенным хранилищем
|
||||
///
|
||||
/// Принимает:
|
||||
/// - [secretKey] - ключ шифрования данных
|
||||
AppSecureStorage({required this.secretKey}){
|
||||
FlutterSecureStorageAurora.setSecret(secretKey);
|
||||
}
|
||||
|
||||
@override
|
||||
final String secretKey;
|
||||
|
||||
@override
|
||||
String get name => 'AuroraAppSecureStorage';
|
||||
|
||||
/// Экземпляр хранилища данных
|
||||
final _box = const FlutterSecureStorage();
|
||||
|
||||
@override
|
||||
Future<void> clear() async {
|
||||
await _box.deleteAll();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> delete(String key) async {
|
||||
await _box.delete(key: key);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<bool> exists(String key) {
|
||||
return _box.containsKey(key: key);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<String?> read(String key) async {
|
||||
return _box.read(key: key);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> write(String key, String value) async {
|
||||
await _box.write(key: key, value: value);
|
||||
}
|
||||
}
|
||||
37
app_services/aurora/app_services/pubspec.yaml
Normal file
37
app_services/aurora/app_services/pubspec.yaml
Normal file
@@ -0,0 +1,37 @@
|
||||
name: app_services
|
||||
description: "Google сервисы для приложения"
|
||||
version: 0.0.1
|
||||
publish_to: none
|
||||
|
||||
environment:
|
||||
sdk: ^3.5.0
|
||||
flutter: ^3.24.0
|
||||
|
||||
|
||||
dependencies:
|
||||
flutter:
|
||||
sdk: flutter
|
||||
|
||||
# Зависимости для сервиса защищенного хранилища
|
||||
flutter_secure_storage: 8.0.0
|
||||
flutter_secure_storage_aurora:
|
||||
git:
|
||||
url: https://gitlab.com/omprussia/flutter/flutter-community-plugins/flutter_secure_storage_aurora.git
|
||||
ref: aurora-0.5.3
|
||||
|
||||
# для работы с путями в хранилища
|
||||
path_provider: 2.1.4
|
||||
path_provider_aurora:
|
||||
git:
|
||||
url: https://gitlab.com/omprussia/flutter/packages.git
|
||||
ref: aurora-path_provider_aurora-0.6.0
|
||||
path: packages/path_provider_aurora
|
||||
|
||||
# Обязательные интерфейсы
|
||||
i_app_services:
|
||||
path: ../../i_app_services
|
||||
|
||||
dev_dependencies:
|
||||
friflex_lint_rules:
|
||||
hosted: https://pub.friflex.com
|
||||
version: 4.0.1
|
||||
29
app_services/gms/app_services/.gitignore
vendored
Normal file
29
app_services/gms/app_services/.gitignore
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
# 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
|
||||
# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock.
|
||||
/pubspec.lock
|
||||
**/doc/api/
|
||||
.dart_tool/
|
||||
build/
|
||||
10
app_services/gms/app_services/.metadata
Normal file
10
app_services/gms/app_services/.metadata
Normal file
@@ -0,0 +1,10 @@
|
||||
# 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: "7482962148e8d758338d8a28f589f317e1e42ba4"
|
||||
channel: "stable"
|
||||
|
||||
project_type: package
|
||||
1
app_services/gms/app_services/README.md
Normal file
1
app_services/gms/app_services/README.md
Normal file
@@ -0,0 +1 @@
|
||||
# Базовые сервисы для приложения
|
||||
1
app_services/gms/app_services/analysis_options.yaml
Normal file
1
app_services/gms/app_services/analysis_options.yaml
Normal file
@@ -0,0 +1 @@
|
||||
include: package:friflex_lint_rules/analysis_options.yaml
|
||||
4
app_services/gms/app_services/lib/app_services.dart
Normal file
4
app_services/gms/app_services/lib/app_services.dart
Normal file
@@ -0,0 +1,4 @@
|
||||
library app_services;
|
||||
|
||||
export 'src/app_path_provider.dart';
|
||||
export 'src/app_secure_storage.dart';
|
||||
13
app_services/gms/app_services/lib/src/app_path_provider.dart
Normal file
13
app_services/gms/app_services/lib/src/app_path_provider.dart
Normal file
@@ -0,0 +1,13 @@
|
||||
import 'package:i_app_services/i_app_services.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
|
||||
/// Класс для базовой реализации сервиса работы с путями
|
||||
class AppPathProvider implements IPathProvider {
|
||||
/// Наименование сервиса
|
||||
static const name = 'GmsAppPathProvider';
|
||||
|
||||
@override
|
||||
Future<String> getAppDocumentsDirectoryPath() async {
|
||||
return (await getApplicationDocumentsDirectory()).path;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
||||
import 'package:i_app_services/i_app_services.dart';
|
||||
|
||||
/// Класс для базовой реализации сервис по работе с защищенным хранилищем
|
||||
final class AppSecureStorage implements ISecureStorage {
|
||||
/// Создает сервис для работы с защищенным хранилищем
|
||||
///
|
||||
/// Принимает:
|
||||
/// - [secretKey] - ключ шифрования данных
|
||||
AppSecureStorage({required this.secretKey});
|
||||
|
||||
@override
|
||||
final String secretKey;
|
||||
|
||||
static const name = 'GmsAppSecureStorage';
|
||||
|
||||
/// Экземпляр хранилища данных
|
||||
final _box = const FlutterSecureStorage();
|
||||
|
||||
@override
|
||||
Future<void> clear() async {
|
||||
await _box.deleteAll();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> delete(String key) async {
|
||||
await _box.delete(key: key);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<bool> exists(String key) {
|
||||
return _box.containsKey(key: key);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<String?> read(String key) async {
|
||||
return _box.read(key: key);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> write(String key, String value) async {
|
||||
await _box.write(key: key, value: value);
|
||||
}
|
||||
}
|
||||
35
app_services/gms/app_services/pubspec.yaml
Normal file
35
app_services/gms/app_services/pubspec.yaml
Normal file
@@ -0,0 +1,35 @@
|
||||
name: app_services
|
||||
description: "Google сервисы для приложения"
|
||||
version: 0.0.1
|
||||
publish_to: none
|
||||
|
||||
environment:
|
||||
sdk: ^3.5.0
|
||||
flutter: ^3.24.0
|
||||
|
||||
dependencies:
|
||||
flutter:
|
||||
sdk: flutter
|
||||
|
||||
# Зависимости для сервиса логирования
|
||||
talker_flutter: 4.6.4
|
||||
talker_dio_logger: 4.6.4
|
||||
talker_bloc_logger: 4.6.4
|
||||
|
||||
# Зависимости для сервиса защищенного хранилища
|
||||
flutter_secure_storage: 9.2.4
|
||||
|
||||
# Зависимости для сервиса незащищенного хранилища
|
||||
shared_preferences: 2.3.5
|
||||
|
||||
# для работы с путями в хранилища
|
||||
path_provider: 2.1.5
|
||||
|
||||
# Обязательные интерфейсы
|
||||
i_app_services:
|
||||
path: ../../i_app_services
|
||||
|
||||
dev_dependencies:
|
||||
friflex_lint_rules:
|
||||
hosted: https://pub.friflex.com
|
||||
version: 4.0.1
|
||||
29
app_services/i_app_services/.gitignore
vendored
Normal file
29
app_services/i_app_services/.gitignore
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
# 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
|
||||
# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock.
|
||||
/pubspec.lock
|
||||
**/doc/api/
|
||||
.dart_tool/
|
||||
build/
|
||||
1
app_services/i_app_services/README.md
Normal file
1
app_services/i_app_services/README.md
Normal file
@@ -0,0 +1 @@
|
||||
# Хранит в себе все интерфейсы для реализации общих сервисов
|
||||
10
app_services/i_app_services/analysis_options.yaml
Normal file
10
app_services/i_app_services/analysis_options.yaml
Normal file
@@ -0,0 +1,10 @@
|
||||
include: package:friflex_lint_rules/analysis_options.yaml
|
||||
|
||||
analyzer:
|
||||
exclude:
|
||||
- "**/*.g.dart"
|
||||
- "**/*.freezed.dart"
|
||||
- "**/*.yaml"
|
||||
- "app_services/aurora/**"
|
||||
- "/app_services/aurora/**"
|
||||
- "**/app_services/aurora/**"
|
||||
4
app_services/i_app_services/lib/i_app_services.dart
Normal file
4
app_services/i_app_services/lib/i_app_services.dart
Normal file
@@ -0,0 +1,4 @@
|
||||
library i_app_services;
|
||||
|
||||
export 'src/i_path_provider.dart';
|
||||
export 'src/i_secure_storage.dart';
|
||||
60
app_services/i_app_services/lib/src/i_debug_service.dart
Normal file
60
app_services/i_app_services/lib/src/i_debug_service.dart
Normal file
@@ -0,0 +1,60 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
/// Интерфейс для сервиса отладки
|
||||
abstract interface class IDebugService {
|
||||
/// Наименование сервиса
|
||||
static const name = 'IDebugService';
|
||||
|
||||
/// Метод для создания обработчика для BLoC
|
||||
Object createBlocObserver();
|
||||
|
||||
/// Метод для создания обработчика для роутера
|
||||
NavigatorObserver createRouterObserver();
|
||||
|
||||
/// Метод для создания обработчика для http-клиентов
|
||||
Object createHttpInterceptor();
|
||||
|
||||
/// Метод для логгирования предупреждений
|
||||
///
|
||||
/// Принимает:
|
||||
/// - [message] - сообщение для логгирования в формате [String]
|
||||
void warning(String message);
|
||||
|
||||
/// Метод для логгирования ошибок
|
||||
///
|
||||
/// Принимает:
|
||||
/// - [message] - сообщение для логгирования в формате [String]
|
||||
/// - [exception] - исключение
|
||||
/// - [stackTrace] - стек вызова
|
||||
void error(String message, [Object? exception, StackTrace? stackTrace]);
|
||||
|
||||
/// Метод для обработки ошибок
|
||||
///
|
||||
/// Принимает:
|
||||
/// - [error] - исключение
|
||||
/// - [stackTrace] - стек вызова
|
||||
/// - [message] - сообщение для логгирования в формате [String]
|
||||
void handleError(Object error, [StackTrace? stackTrace, String? message]);
|
||||
|
||||
/// Метод для логгирования информативных сообщений
|
||||
///
|
||||
/// Принимает:
|
||||
/// - [message] - сообщение для логгирования в формате [String]
|
||||
void info(String message);
|
||||
|
||||
/// Метод для логгирования сообщений
|
||||
///
|
||||
/// Принимает:
|
||||
/// - [message] - сообщение для логгирования в формате [String]
|
||||
void log(String message);
|
||||
|
||||
/// Метод для открытия окна отладки
|
||||
///
|
||||
/// Принимает:
|
||||
/// - [context] - для определения навигатора по нему
|
||||
/// - [useRootNavigator] - при true, открывает окно в корневом навигаторе
|
||||
Future<T?> openDebugScreen<T>(
|
||||
BuildContext context, {
|
||||
bool useRootNavigator = false,
|
||||
});
|
||||
}
|
||||
9
app_services/i_app_services/lib/src/i_path_provider.dart
Normal file
9
app_services/i_app_services/lib/src/i_path_provider.dart
Normal file
@@ -0,0 +1,9 @@
|
||||
/// Класс для описания интерфейса сервиса
|
||||
/// для получения пути хранения файлов
|
||||
abstract interface class IPathProvider {
|
||||
/// Наименования интерфейса
|
||||
static const name = 'IPathProvider';
|
||||
|
||||
/// Получение path на внутренне хранилище приложения
|
||||
Future<String> getAppDocumentsDirectoryPath();
|
||||
}
|
||||
44
app_services/i_app_services/lib/src/i_secure_storage.dart
Normal file
44
app_services/i_app_services/lib/src/i_secure_storage.dart
Normal file
@@ -0,0 +1,44 @@
|
||||
/// Класс интерфейса для работы с защищенным хранилищем
|
||||
abstract interface class ISecureStorage {
|
||||
/// Описывает обязательные параметры имплементаций
|
||||
///
|
||||
/// Требует:
|
||||
/// - [secretKey] - секретный ключ для шифрования данных
|
||||
const ISecureStorage._({
|
||||
required this.secretKey,
|
||||
});
|
||||
|
||||
/// Секретный ключ для шифрования данных
|
||||
final String secretKey;
|
||||
|
||||
/// Наименования интерфейса
|
||||
static const name = 'ISecureStorage';
|
||||
|
||||
/// Метод для получения значения из защищенного хранилища
|
||||
///
|
||||
/// Принимает:
|
||||
/// - [key] - ключ
|
||||
Future<String?> read(String key);
|
||||
|
||||
/// Метод для записи значения в защищенное хранилище
|
||||
///
|
||||
/// Принимает:
|
||||
/// - [key] - ключ
|
||||
/// - [value] - значение
|
||||
Future<void> write(String key, String value);
|
||||
|
||||
/// Метод для удаления значения из защищенного хранилища
|
||||
///
|
||||
/// Принимает:
|
||||
/// - [key] - ключ
|
||||
Future<void> delete(String key);
|
||||
|
||||
/// Метод для очистки защищенного хранилища
|
||||
Future<void> clear();
|
||||
|
||||
/// Метод для проверки наличия значения в защищенном хранилище
|
||||
///
|
||||
/// Принимает:
|
||||
/// - [key] - ключ
|
||||
Future<bool> exists(String key);
|
||||
}
|
||||
17
app_services/i_app_services/pubspec.yaml
Normal file
17
app_services/i_app_services/pubspec.yaml
Normal file
@@ -0,0 +1,17 @@
|
||||
name: i_app_services
|
||||
description: "Хранит в себе все интерфейсы для реализации общих сервисов"
|
||||
version: 0.0.1
|
||||
publish_to: "none"
|
||||
|
||||
environment:
|
||||
sdk: ^3.5.0
|
||||
flutter: ^3.24.0
|
||||
|
||||
dependencies:
|
||||
flutter:
|
||||
sdk: flutter
|
||||
|
||||
dev_dependencies:
|
||||
friflex_lint_rules:
|
||||
hosted: https://pub.friflex.com
|
||||
version: 4.0.1
|
||||
Reference in New Issue
Block a user