Ответ
Конфигурация приложения в Flutter — это набор параметров и настроек, которые определяют его поведение в разных средах (разработка, тестирование, продакшн) и на разных платформах.
Основные компоненты конфигурации:
-
Управление переменными окружения:
- Флаги
--dart-define: Самый распространённый нативный способ.flutter run --dart-define=API_BASE=https://api.dev.com --dart-define=ENV=dev - Чтение в коде:
const apiBase = String.fromEnvironment('API_BASE', defaultValue: 'https://default.api.com'); const isProduction = bool.fromEnvironment('dart.vm.product'); // true в AOT-сборке
- Флаги
-
Конфигурационные файлы:
pubspec.yaml— конфигурация зависимостей, метаданные приложения, assets.- Пакеты вроде
flutter_dotenvдля загрузки переменных из.env-файлов.
-
Платформо-специфичные настройки:
- Android:
android/app/src/main/AndroidManifest.xml(разрешения, настройки активности). - iOS:
ios/Runner/Info.plist(разрешения, настройки приложения).
- Android:
-
Архитектурные подходы:
- Создание классов-конфигураций для разных сред.
abstract class AppConfig { String get apiBaseUrl; bool get enableLogging; }
class DevConfig implements AppConfig { @override String get apiBaseUrl => 'https://dev.api.com'; @override bool get enableLogging => true; }
class ProdConfig implements AppConfig { @override String get apiBaseUrl => 'https://api.com'; @override bool get enableLogging => false; } // Инициализация в main() в зависимости от флагов
- Создание классов-конфигураций для разных сред.
Правильная настройка конфигурации позволяет безопасно управлять API-ключами, эндпоинтами и флагами функциональности.