mirror of
https://github.com/smmarty/friflex_flutter_starter.git
synced 2025-12-22 17:40:45 +00:00
feat(app): add script and tasks
This commit is contained in:
33
.vscode/launch.json
vendored
33
.vscode/launch.json
vendored
@@ -2,22 +2,47 @@
|
|||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"configurations": [
|
"configurations": [
|
||||||
{
|
{
|
||||||
"name": "dev",
|
"name": "GMS_dev",
|
||||||
"type": "dart",
|
"type": "dart",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"program": "${workspaceFolder}/lib/targets/dev.dart",
|
"program": "${workspaceFolder}/lib/targets/dev.dart",
|
||||||
|
"preLaunchTask": "switch_to_gms"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "stage",
|
"name": "GMS_stage",
|
||||||
"type": "dart",
|
"type": "dart",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"program": "${workspaceFolder}/lib/targets/stage.dart",
|
"program": "${workspaceFolder}/lib/targets/stage.dart",
|
||||||
|
"preLaunchTask": "switch_to_gms"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "prod",
|
"name": "GMS_prod",
|
||||||
"type": "dart",
|
"type": "dart",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"program": "${workspaceFolder}/lib/targets/prod.dart",
|
"program": "${workspaceFolder}/lib/targets/prod.dart",
|
||||||
}
|
"preLaunchTask": "switch_to_gms"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Aurora_dev",
|
||||||
|
"type": "dart",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "${workspaceFolder}/lib/targets/dev.dart",
|
||||||
|
"preLaunchTask": "switch_to_aurora"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Aurora_stage",
|
||||||
|
"type": "dart",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "${workspaceFolder}/lib/targets/stage.dart",
|
||||||
|
"preLaunchTask": "switch_to_aurora"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Aurora_prod",
|
||||||
|
"type": "dart",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "${workspaceFolder}/lib/targets/prod.dart",
|
||||||
|
"preLaunchTask": "switch_to_aurora"
|
||||||
|
},
|
||||||
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
12
.vscode/tasks.json
vendored
12
.vscode/tasks.json
vendored
@@ -37,6 +37,18 @@
|
|||||||
"reveal": "always"
|
"reveal": "always"
|
||||||
},
|
},
|
||||||
"problemMatcher": []
|
"problemMatcher": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "switch_to_gms",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "./switch_service.sh gms",
|
||||||
|
"problemMatcher": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "switch_to_aurora",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "./switch_service.sh aurora",
|
||||||
|
"problemMatcher": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -15,8 +15,8 @@ final class AppSecureStorage implements ISecureStorage {
|
|||||||
@override
|
@override
|
||||||
final String secretKey;
|
final String secretKey;
|
||||||
|
|
||||||
@override
|
|
||||||
String get name => 'AuroraAppSecureStorage';
|
static const name = 'AuroraAppSecureStorage';
|
||||||
|
|
||||||
/// Экземпляр хранилища данных
|
/// Экземпляр хранилища данных
|
||||||
final _box = const FlutterSecureStorage();
|
final _box = const FlutterSecureStorage();
|
||||||
@@ -45,4 +45,7 @@ final class AppSecureStorage implements ISecureStorage {
|
|||||||
Future<void> write(String key, String value) async {
|
Future<void> write(String key, String value) async {
|
||||||
await _box.write(key: key, value: value);
|
await _box.write(key: key, value: value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get nameImpl => AppSecureStorage.name;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,4 +41,7 @@ final class AppSecureStorage implements ISecureStorage {
|
|||||||
Future<void> write(String key, String value) async {
|
Future<void> write(String key, String value) async {
|
||||||
await _box.write(key: key, value: value);
|
await _box.write(key: key, value: value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String get nameImpl => AppSecureStorage.name;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,4 +41,6 @@ abstract interface class ISecureStorage {
|
|||||||
/// Принимает:
|
/// Принимает:
|
||||||
/// - [key] - ключ
|
/// - [key] - ключ
|
||||||
Future<bool> exists(String key);
|
Future<bool> exists(String key);
|
||||||
|
|
||||||
|
String get nameImpl;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,9 @@ class MainScreen extends StatelessWidget {
|
|||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
|
Text(
|
||||||
|
'Реализация SecureStorage: ${context.di.secureStorage.nameImpl}',
|
||||||
|
),
|
||||||
const SizedBox(height: 16),
|
const SizedBox(height: 16),
|
||||||
Text(
|
Text(
|
||||||
'Окружение: ${context.di.appConfig.env.name}',
|
'Окружение: ${context.di.appConfig.env.name}',
|
||||||
|
|||||||
@@ -32,13 +32,9 @@ dependencies:
|
|||||||
|
|
||||||
app_services:
|
app_services:
|
||||||
### Базовая реализация ###
|
### Базовая реализация ###
|
||||||
path: app_services/gms/app_services
|
path: app_services/gms/app_services
|
||||||
|
|
||||||
|
|
||||||
### Аврора реализация ###
|
### Аврора реализация ###
|
||||||
#path: app_services/aurora/app_services
|
# path: app_services/aurora/app_services
|
||||||
### Telegram реализация ###
|
|
||||||
#path: app_services/telegram/app_services
|
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
|
|||||||
28
switch_service.sh
Normal file
28
switch_service.sh
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
SERVICE=$1
|
||||||
|
PUBSPEC_FILE="pubspec.yaml"
|
||||||
|
|
||||||
|
if [ -z "$SERVICE" ]; then
|
||||||
|
echo "Usage: $0 [gms|aurora]"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$SERVICE" in
|
||||||
|
gms)
|
||||||
|
sed -i 's|^\(\s*\)#\s*path: app_services/gms/app_services|\1path: app_services/gms/app_services|' "$PUBSPEC_FILE"
|
||||||
|
sed -i 's|^\(\s*\)path: app_services/aurora/app_services|\1# path: app_services/aurora/app_services|' "$PUBSPEC_FILE"
|
||||||
|
;;
|
||||||
|
aurora)
|
||||||
|
sed -i 's|^\(\s*\)#\s*path: app_services/aurora/app_services|\1path: app_services/aurora/app_services|' "$PUBSPEC_FILE"
|
||||||
|
sed -i 's|^\(\s*\)path: app_services/gms/app_services|\1# path: app_services/gms/app_services|' "$PUBSPEC_FILE"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown option: $SERVICE"
|
||||||
|
echo "Usage: $0 [gms|aurora]"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo "Переключились на $SERVICE. Запуск flutter pub get..."
|
||||||
|
flutter pub get
|
||||||
Reference in New Issue
Block a user