From 933c1a0f0f09d81072c6bdd9b796f68090c807a4 Mon Sep 17 00:00:00 2001 From: Yuri Petrov <48598325+petrovyuri@users.noreply.github.com> Date: Tue, 4 Feb 2025 10:18:41 +0300 Subject: [PATCH] =?UTF-8?q?feat(debug):=20=D0=A3=D0=B4=D0=B0=D0=BB=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20Talker=20(#2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: petrovyuri --- .vscode/launch.json | 76 +++++----- app_services/gms/app_services/pubspec.yaml | 5 - .../lib/src/i_debug_service.dart | 60 -------- lib/app/http/app_http_client.dart | 10 +- lib/di/di_container.dart | 11 +- lib/di/di_repositories.dart | 13 +- lib/di/di_typedefs.dart | 6 +- lib/features/debug/app_debug_service.dart | 60 -------- lib/features/debug/debug_screen.dart | 2 +- lib/features/debug/debug_service.dart | 66 +++++++++ lib/features/debug/i_debug_service.dart | 64 ++++----- lib/router/app_router.dart | 5 +- lib/runner/app_runner.dart | 8 +- lib/runner/errors_handlers.dart | 14 +- lib/runner/timer_runner.dart | 8 +- pubspec.lock | 130 +----------------- pubspec.yaml | 5 - 17 files changed, 165 insertions(+), 378 deletions(-) delete mode 100644 app_services/i_app_services/lib/src/i_debug_service.dart delete mode 100644 lib/features/debug/app_debug_service.dart create mode 100644 lib/features/debug/debug_service.dart diff --git a/.vscode/launch.json b/.vscode/launch.json index e1f9b7e..daf3e19 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -2,47 +2,45 @@ "version": "0.2.0", "configurations": [ { - "name": "GMS_dev", + "name": "dev", "type": "dart", "request": "launch", - "program": "${workspaceFolder}/lib/targets/dev.dart", - "preLaunchTask": "switch_to_gms" + "program": "${workspaceFolder}/lib/targets/dev.dart" }, - { - "name": "GMS_stage", - "type": "dart", - "request": "launch", - "program": "${workspaceFolder}/lib/targets/stage.dart", - "preLaunchTask": "switch_to_gms" - }, - { - "name": "GMS_prod", - "type": "dart", - "request": "launch", - "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" - }, - + // { + // "name": "GMS_stage", + // "type": "dart", + // "request": "launch", + // "program": "${workspaceFolder}/lib/targets/stage.dart", + // "preLaunchTask": "switch_to_gms" + // }, + // { + // "name": "GMS_prod", + // "type": "dart", + // "request": "launch", + // "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" + // }, ] } \ No newline at end of file diff --git a/app_services/gms/app_services/pubspec.yaml b/app_services/gms/app_services/pubspec.yaml index 35fdc93..49f478d 100644 --- a/app_services/gms/app_services/pubspec.yaml +++ b/app_services/gms/app_services/pubspec.yaml @@ -11,11 +11,6 @@ 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 diff --git a/app_services/i_app_services/lib/src/i_debug_service.dart b/app_services/i_app_services/lib/src/i_debug_service.dart deleted file mode 100644 index 2fb5137..0000000 --- a/app_services/i_app_services/lib/src/i_debug_service.dart +++ /dev/null @@ -1,60 +0,0 @@ -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 openDebugScreen( - BuildContext context, { - bool useRootNavigator = false, - }); -} diff --git a/lib/app/http/app_http_client.dart b/lib/app/http/app_http_client.dart index 542e003..c50cc22 100644 --- a/lib/app/http/app_http_client.dart +++ b/lib/app/http/app_http_client.dart @@ -1,6 +1,5 @@ import 'package:dio/dio.dart'; import 'package:friflex_starter/app/app_config/i_app_config.dart'; -import 'package:friflex_starter/app/app_env.dart'; import 'package:friflex_starter/app/http/i_http_client.dart'; import 'package:friflex_starter/features/debug/i_debug_service.dart'; @@ -26,14 +25,7 @@ final class AppHttpClient implements IHttpClient { ..headers = { 'Content-Type': 'application/json', }; - - // Добавление интерцептора для логирования запросов - if (appConfig.env != AppEnv.prod) { - final interceptor = debugService.createHttpInterceptor(); - if (interceptor is Interceptor) { - _httpClient.interceptors.add(interceptor); - } - } + debugService.log('HTTP client created'); } /// Конфигурация приложения diff --git a/lib/di/di_container.dart b/lib/di/di_container.dart index f4c54ad..6c82d63 100644 --- a/lib/di/di_container.dart +++ b/lib/di/di_container.dart @@ -15,8 +15,7 @@ import 'package:i_app_services/i_app_services.dart'; /// {@endtemplate} final class DiContainer { /// {@macro dependencies_container} - DiContainer({required this.env, required IDebugService dService}) - : debugService = dService; + DiContainer({required this.env, required IDebugService dService}) : debugService = dService; final AppEnv env; /// Сервис для отладки, получаем из конструктора @@ -84,8 +83,8 @@ final class DiContainer { } on Object catch (error, stackTrace) { onError( 'Ошибка инициализации ${IPathProvider.name}', - error: error, - stackTrace: stackTrace, + error, + stackTrace, ); } @@ -95,8 +94,8 @@ final class DiContainer { } on Object catch (error, stackTrace) { onError( 'Ошибка инициализации ${ISecureStorage.name}', - error: error, - stackTrace: stackTrace, + error, + stackTrace, ); } } diff --git a/lib/di/di_repositories.dart b/lib/di/di_repositories.dart index 289c7b7..151c066 100644 --- a/lib/di/di_repositories.dart +++ b/lib/di/di_repositories.dart @@ -60,8 +60,8 @@ final class DiRepositories { } on Object catch (error, stackTrace) { onError( 'Ошибка инициализации репозитория $IAuthRepository', - error: error, - stackTrace: stackTrace, + error, + stackTrace, ); } @@ -79,8 +79,8 @@ final class DiRepositories { } on Object catch (error, stackTrace) { onError( 'Ошибка инициализации репозитория $IMainRepository', - error: error, - stackTrace: stackTrace, + error, + stackTrace, ); } @@ -105,9 +105,8 @@ final class DiRepositories { final repo = switch (environment) { AppEnv.dev => mockFactory(), AppEnv.prod => mainFactory(), - AppEnv.stage => _mockReposToSwitch.contains(mockFactory().name) - ? mockFactory() - : mainFactory(), + AppEnv.stage => + _mockReposToSwitch.contains(mockFactory().name) ? mockFactory() : mainFactory(), }; onProgress(repo.name); return repo; diff --git a/lib/di/di_typedefs.dart b/lib/di/di_typedefs.dart index 52c9e08..8cf3a9b 100644 --- a/lib/di/di_typedefs.dart +++ b/lib/di/di_typedefs.dart @@ -1,9 +1,9 @@ /// Обратный вызов при ошибки инициализации typedef OnError = void Function( - String message, { - Object? error, + String message, + Object error, [ StackTrace? stackTrace, -}); +]); /// Обратный вызов при прогрессе typedef OnProgress = void Function(String name); diff --git a/lib/features/debug/app_debug_service.dart b/lib/features/debug/app_debug_service.dart deleted file mode 100644 index a7d6a40..0000000 --- a/lib/features/debug/app_debug_service.dart +++ /dev/null @@ -1,60 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:friflex_starter/features/debug/i_debug_service.dart'; -import 'package:talker_bloc_logger/talker_bloc_logger.dart'; -import 'package:talker_dio_logger/talker_dio_logger_interceptor.dart'; -import 'package:talker_flutter/talker_flutter.dart'; - -/// Класс реализации интерфейса дебаг сервиса -class AppDebugService implements IDebugService { - /// Наименование сервиса - static const name = 'GmsDebugService'; - - final Talker _talker = TalkerFlutter.init(); - - @override - TalkerBlocObserver createBlocObserver() => - TalkerBlocObserver(talker: _talker); - - @override - TalkerDioLogger createHttpInterceptor() => TalkerDioLogger(talker: _talker); - - @override - TalkerRouteObserver createRouterObserver() => TalkerRouteObserver(_talker); - - @override - void error(String msg, [Object? exception, StackTrace? stackTrace]) { - _talker.error(msg, exception, stackTrace); - } - - @override - void handleError(Object error, [StackTrace? stackTrace, String? message]) { - _talker.handle(error, stackTrace, message); - } - - @override - void info(String message) { - _talker.info(message); - } - - @override - void log(String message) { - _talker.log(message); - } - - @override - void warning(String message) { - _talker.warning(message); - } - - @override - Future openDebugScreen( - BuildContext context, { - bool useRootNavigator = false, - }) { - return Navigator.of(context).push( - MaterialPageRoute( - builder: (context) => TalkerScreen(talker: _talker), - ), - ); - } -} diff --git a/lib/features/debug/debug_screen.dart b/lib/features/debug/debug_screen.dart index 304392e..facf110 100644 --- a/lib/features/debug/debug_screen.dart +++ b/lib/features/debug/debug_screen.dart @@ -31,7 +31,7 @@ class DebugScreen extends StatelessWidget { onPressed: () async { await context.di.debugService.openDebugScreen(context); }, - child: const Text('Вызывать Talker'), + child: const Text('Вызывать Экран отладки'), ), ], ), diff --git a/lib/features/debug/debug_service.dart b/lib/features/debug/debug_service.dart new file mode 100644 index 0000000..3d0012f --- /dev/null +++ b/lib/features/debug/debug_service.dart @@ -0,0 +1,66 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:friflex_starter/features/debug/i_debug_service.dart'; + +/// Класс реализации интерфейса Debug сервиса +class DebugService implements IDebugService { + /// Наименование сервиса + static const name = 'DebugService'; + + @override + void logDebug(Object message, {Object? logLevel, Map? args}) { + if (kDebugMode) { + print('Message: $message'); + } + + /// Реализация логики + } + + @override + void logError( + Object message, { + Object? error, + Object? logLevel, + Map? args, + StackTrace? stackTrace, + }) { + final logMessage = message is Function ? Function.apply(message, []) as Object : message; + if (kDebugMode) { + print('Message: $logMessage'); + print('Error: $error'); + print('StackTrace: $stackTrace'); + } + + /// Реализация логики + } + + @override + void log(Object message, {Object? logLevel, Map? args}) { + final logMessage = message is Function ? Function.apply(message, []) as Object : message; + if (kDebugMode) { + print('Message: $logMessage'); + } + + /// Реализация логики + } + + @override + void logWarning(Object message, {Object? logLevel, Map? args}) { + final logMessage = message is Function ? Function.apply(message, []) as Object : message; + if (kDebugMode) { + print('Message: $logMessage'); + } + + /// Реализация логики + } + + @override + Future openDebugScreen(BuildContext context, {bool useRootNavigator = false}) { + if (kDebugMode) { + print('Переход на страницу отладки'); + } + + /// Реализация логики + return Future.value(); + } +} diff --git a/lib/features/debug/i_debug_service.dart b/lib/features/debug/i_debug_service.dart index 2fb5137..839b850 100644 --- a/lib/features/debug/i_debug_service.dart +++ b/lib/features/debug/i_debug_service.dart @@ -2,51 +2,37 @@ import 'package:flutter/material.dart'; /// Интерфейс для сервиса отладки abstract interface class IDebugService { - /// Наименование сервиса static const name = 'IDebugService'; - /// Метод для создания обработчика для BLoC - Object createBlocObserver(); + /// Метод для логирования сообщений + void log( + Object message, { + Object logLevel, + Map? args, + }); - /// Метод для создания обработчика для роутера - NavigatorObserver createRouterObserver(); + /// Метод для логирования предупреждений + void logWarning( + Object message, { + Object logLevel, + Map? args, + }); - /// Метод для создания обработчика для http-клиентов - Object createHttpInterceptor(); - - /// Метод для логгирования предупреждений - /// - /// Принимает: - /// - [message] - сообщение для логгирования в формате [String] - void warning(String message); - - /// Метод для логгирования ошибок - /// - /// Принимает: - /// - [message] - сообщение для логгирования в формате [String] - /// - [exception] - исключение - /// - [stackTrace] - стек вызова - void error(String message, [Object? exception, StackTrace? stackTrace]); + /// Метод для логирования ошибок + void logError( + Object message, { + Object error, + StackTrace? stackTrace, + Object logLevel, + Map? args, + }); /// Метод для обработки ошибок - /// - /// Принимает: - /// - [error] - исключение - /// - [stackTrace] - стек вызова - /// - [message] - сообщение для логгирования в формате [String] - void handleError(Object error, [StackTrace? stackTrace, String? message]); - - /// Метод для логгирования информативных сообщений - /// - /// Принимает: - /// - [message] - сообщение для логгирования в формате [String] - void info(String message); - - /// Метод для логгирования сообщений - /// - /// Принимает: - /// - [message] - сообщение для логгирования в формате [String] - void log(String message); + void logDebug( + Object message, { + Object logLevel, + Map? args, + }); /// Метод для открытия окна отладки /// diff --git a/lib/router/app_router.dart b/lib/router/app_router.dart index 4420ec5..584f69f 100644 --- a/lib/router/app_router.dart +++ b/lib/router/app_router.dart @@ -9,7 +9,7 @@ import 'package:go_router/go_router.dart'; class AppRouter { /// Конструктор для инициализации роутера const AppRouter(); - + /// Ключ для доступа к корневому навигатору приложения static final rootNavigatorKey = GlobalKey(); @@ -22,9 +22,6 @@ class AppRouter { navigatorKey: rootNavigatorKey, debugLogDiagnostics: true, initialLocation: initialLocation, - observers: [ - debugService.createRouterObserver(), - ], routes: [ StatefulShellRoute.indexedStack( parentNavigatorKey: rootNavigatorKey, diff --git a/lib/runner/app_runner.dart b/lib/runner/app_runner.dart index 259bf8e..7e44d32 100644 --- a/lib/runner/app_runner.dart +++ b/lib/runner/app_runner.dart @@ -6,7 +6,7 @@ import 'package:flutter/services.dart'; import 'package:friflex_starter/app/app.dart'; import 'package:friflex_starter/app/app_env.dart'; import 'package:friflex_starter/di/di_container.dart'; -import 'package:friflex_starter/features/debug/app_debug_service.dart'; +import 'package:friflex_starter/features/debug/debug_service.dart'; import 'package:friflex_starter/features/debug/i_debug_service.dart'; import 'package:friflex_starter/features/error/error_screen.dart'; import 'package:friflex_starter/router/app_router.dart'; @@ -45,8 +45,8 @@ class AppRunner { Future run() async { WidgetsFlutterBinding.ensureInitialized(); // Инициализация сервиса отладки - _debugService = AppDebugService(); - + _debugService = DebugService(); + _timerRunner = TimerRunner(_debugService); // Инициализация приложения @@ -91,7 +91,7 @@ class AppRunner { /// Метод для инициализации зависимостей приложения Future _initDependencies(IDebugService debugService) async { - debugService.log('Тип сборки: ${env.name}'); + debugService.log(() => 'Тип сборки: ${env.name}'); final diContainer = DiContainer( env: env, dService: debugService, diff --git a/lib/runner/errors_handlers.dart b/lib/runner/errors_handlers.dart index 2d00ced..8ccaab5 100644 --- a/lib/runner/errors_handlers.dart +++ b/lib/runner/errors_handlers.dart @@ -5,16 +5,24 @@ void _initErrorHandlers(IDebugService debugService) { // Обработка ошибок в приложении FlutterError.onError = (details) { _showErrorScreen(); - debugService.handleError(details.exception, details.stack, - 'FlutterError.onError: ${details.exceptionAsString()}',); + debugService.logError( + () => 'FlutterError.onError: ${details.exceptionAsString()}', + error: details.exception, + stackTrace: details.stack, + ); }; // Обработка асинхронных ошибок в приложении PlatformDispatcher.instance.onError = (error, stack) { _showErrorScreen(); - debugService.handleError(error, stack, 'PlatformDispatcher: $error'); + debugService.logError( + () => 'PlatformDispatcher.instance.onError', + error: error, + stackTrace: stack, + ); return true; }; } + /// Метод для показа экрана ошибки void _showErrorScreen() { WidgetsBinding.instance.addPostFrameCallback((_) { diff --git a/lib/runner/timer_runner.dart b/lib/runner/timer_runner.dart index 24794e5..c5e6b6a 100644 --- a/lib/runner/timer_runner.dart +++ b/lib/runner/timer_runner.dart @@ -40,10 +40,10 @@ class TimerRunner { /// Метод для обработки прогресса инициализации зависимостей void logOnError( - String message, { - Object? error, + String message, + Object error, [ StackTrace? stackTrace, - }) { - _debugService.error(message, error, stackTrace); + ]) { + _debugService.logError(() => message, error: error, stackTrace: stackTrace); } } diff --git a/pubspec.lock b/pubspec.lock index c9a69fe..a847f25 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -22,14 +22,6 @@ packages: url: "https://pub.dev" source: hosted version: "6.11.0" - ansicolor: - dependency: transitive - description: - name: ansicolor - sha256: "50e982d500bc863e1d703448afdbf9e5a72eb48840a4f766fa361ffd6877055f" - url: "https://pub.dev" - source: hosted - version: "2.0.3" app_services: dependency: "direct main" description: @@ -181,14 +173,6 @@ packages: url: "https://pub.dev" source: hosted version: "3.1.2" - cross_file: - dependency: transitive - description: - name: cross_file - sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670" - url: "https://pub.dev" - source: hosted - version: "0.3.4+2" crypto: dependency: transitive description: @@ -409,14 +393,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.3.2" - group_button: - dependency: transitive - description: - name: group_button - sha256: "0610fcf28ed122bfb4b410fce161a390f7f2531d55d1d65c5375982001415940" - url: "https://pub.dev" - source: hosted - version: "5.3.4" http_multi_server: dependency: transitive description: @@ -680,22 +656,6 @@ packages: url: "https://pub.dev" source: hosted version: "4.1.0" - share_plus: - dependency: transitive - description: - name: share_plus - sha256: fce43200aa03ea87b91ce4c3ac79f0cecd52e2a7a56c7a4185023c271fbfa6da - url: "https://pub.dev" - source: hosted - version: "10.1.4" - share_plus_platform_interface: - dependency: transitive - description: - name: share_plus_platform_interface - sha256: cc012a23fc2d479854e6c80150696c4a5f5bb62cb89af4de1c505cf78d0a5d0b - url: "https://pub.dev" - source: hosted - version: "5.0.2" shared_preferences: dependency: transitive description: @@ -789,14 +749,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.10.0" - sprintf: - dependency: transitive - description: - name: sprintf - sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23" - url: "https://pub.dev" - source: hosted - version: "7.0.0" stack_trace: dependency: transitive description: @@ -829,46 +781,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.0" - talker: - dependency: transitive - description: - name: talker - sha256: "4c3b9b7b8c8882fc30253bbbe7c75d2f68d63ea35b7c1b6be2debe4a323c2ec9" - url: "https://pub.dev" - source: hosted - version: "4.6.4" - talker_bloc_logger: - dependency: "direct main" - description: - name: talker_bloc_logger - sha256: c14510bfb36af5d1648683a2707bb5bbb2858e3cabd549e363262db100bae374 - url: "https://pub.dev" - source: hosted - version: "4.6.4" - talker_dio_logger: - dependency: "direct main" - description: - name: talker_dio_logger - sha256: b0d2c3486d1f17cb9eb187ee91bc23e5d7c438b80464432c3deb809d29228f8d - url: "https://pub.dev" - source: hosted - version: "4.6.4" - talker_flutter: - dependency: "direct main" - description: - name: talker_flutter - sha256: f23d184bc1ea675ed0fe1bfda636707f155f0596e898a7709bc488ead2c546b3 - url: "https://pub.dev" - source: hosted - version: "4.6.4" - talker_logger: - dependency: transitive - description: - name: talker_logger - sha256: "27e4d0ba5c6950643a2500ad6c2e189099d0b9912f67389a49155e48fc2d9a55" - url: "https://pub.dev" - source: hosted - version: "4.6.4" term_glyph: dependency: transitive description: @@ -901,46 +813,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.4.0" - url_launcher_linux: - dependency: transitive - description: - name: url_launcher_linux - sha256: "4e9ba368772369e3e08f231d2301b4ef72b9ff87c31192ef471b380ef29a4935" - url: "https://pub.dev" - source: hosted - version: "3.2.1" - url_launcher_platform_interface: - dependency: transitive - description: - name: url_launcher_platform_interface - sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" - url: "https://pub.dev" - source: hosted - version: "2.3.2" - url_launcher_web: - dependency: transitive - description: - name: url_launcher_web - sha256: "3ba963161bd0fe395917ba881d320b9c4f6dd3c4a233da62ab18a5025c85f1e9" - url: "https://pub.dev" - source: hosted - version: "2.4.0" - url_launcher_windows: - dependency: transitive - description: - name: url_launcher_windows - sha256: "3284b6d2ac454cf34f114e1d3319866fdd1e19cdc329999057e44ffe936cfa77" - url: "https://pub.dev" - source: hosted - version: "3.1.4" - uuid: - dependency: transitive - description: - name: uuid - sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff - url: "https://pub.dev" - source: hosted - version: "4.5.1" vector_math: dependency: transitive description: @@ -1015,4 +887,4 @@ packages: version: "3.1.3" sdks: dart: ">=3.6.0 <4.0.0" - flutter: ">=3.27.0" + flutter: ">=3.24.0" diff --git a/pubspec.yaml b/pubspec.yaml index 4b32d13..406b849 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -20,11 +20,6 @@ dependencies: intl: 0.19.0 flutter_localizations: sdk: flutter - - # Зависимости для сервиса логирования - talker_flutter: 4.6.4 - talker_dio_logger: 4.6.4 - talker_bloc_logger: 4.6.4 ### основной сервис с интерфейсами i_app_services: