В современной разработке приложений управление различными версиями приложения необходимо для их целевой направленности на разные среды, группы пользователей или рыночные сегменты. Эти версии, называемые «флейворами» (flavors), позволяют разработчикам легко настраивать поведение и внешний вид приложения, поддерживать его, включать или отключать функции для различных версий и конфигураций без необходимости поддерживать несколько кодовых баз.
Флейворы позволяют эффективно управлять различными конфигурациями для таких сред, как разработка, промежуточное тестирование (staging) и производство, гарантируя, что каждая среда имеет свои уникальные настройки, API-эндпоинты и учетные данные. Это снижает риск ошибок и повышает эффективность разработки и тестирования.
Например, версия вашего приложения для разработки может использовать dev.api.myapp.com
, тогда как производственная версия использует api.myapp.com
. Вместо того чтобы жестко прописывать эти значения и вручную собирать приложение для каждой среды, вы можете использовать флейворы, чтобы задавать эти значения в качестве конфигураций во время сборки, ускоряя процесс разработки.
Использование флейворов во Flutter с помощью flutter_flavorizr
flutter_flavorizr
упрощает создание и управление множественными флейворами в приложениях на Flutter. Он автоматизирует процесс конфигурации как для Android, так и для iOS, помогая разработчикам поддерживать единообразие конфигурации и минимизировать время, затрачиваемое на ручную настройку. Как это сделать? Итак…
Шаг 1 — Установка flutter_flavorizr
Добавьте flutter_flavorizr
в ваш файл pubspec.yaml
в разделе dev_dependencies
.
Шаг 2 — Настройка флейворов
Создайте новый файл с именем flavorizr.yaml
в корне проекта и определите имена флейворов, затем запустите команду
flutter pub run flutter_flavorizr
для генерации необходимых файлов и конфигураций.
flavors:
development:
app:
name: "MyApp DEV"
android:
applicationId: "com.example.myapp.dev"
ios:
bundleId: "com.example.myapp.dev"
macos:
bundleId: "com.example.myapp.dev"
production:
app:
name: "MyApp"
android:
applicationId: "com.example.myapp"
ios:
bundleId: "com.example.myapp"
macos:
bundleId: "com.example.myapp"
Эта команда создаёт соответствующие файлы и каталоги для каждого флейвора, включая отдельные файлы main.dart
и конфигурационные файлы.
Шаг 3 — Доступ к конфигурациям флейворов в коде
Используйте класс FlavorConfig
для доступа к конфигурациям, специфичным для каждого флейвора, в вашем коде на Flutter.
import 'package: flutter/material.dart';
import 'package:flutter_flavorizr/flutter_flavorizr.dart';
void main {
runApp (MyApp) ;
}
class MyApp extends StatelessWidget {
@override
Widget build (BuildContext context) {
final flavor = FlavorConfig.instance.name;
return MaterialApp(
title: 'Flutter Flavors - $flavor',
home: HomeScreen,
);
}
}
Шаг 4 — Сборка и запуск флейворов
Используйте следующие команды для сборки и запуска конкретного флейвора:
flutter run --flavor development -t lib/main_development.dart
flutter run --flavor production -t lib/main_production.dart
И всё готово!
Почему это важно?
При разработке в реальной среде необходимо быть быстрым и эффективным. Использование флейворов во Flutter предоставляет несколько ключевых преимуществ, которые делают его важным как для разработчиков, так и для бизнеса.
- Упрощение процесса разработки: Флейворы позволяют поддерживать одну кодовую базу, адаптируя приложение под разные среды (разработка, промежуточное тестирование, производство) или рыночные сегменты (бесплатная, премиум версия). Это уменьшает сложность и трудозатраты, связанные с управлением отдельными кодовыми базами для каждой версии вашего приложения.
- Повышение качества тестирования и контроля качества (QA): Флейворы позволяют создавать специфические конфигурации для различных сценариев тестирования. Вы можете иметь флейвор, который имитирует производственную среду, но использует промежуточный API. Это гарантирует, что ваша команда QA сможет тестировать приложение в условиях, максимально приближенных к реальной производственной среде.
- Упрощение кастомизации: Флейворы позволяют легко включать или отключать функции в зависимости от целевой аудитории или рынка. Например, можно иметь флейвор с дополнительными функциями для премиум-пользователей, сохраняя упрощённую версию для бесплатных пользователей.
- Упрощенная развертка и конфигурация: Управление различными конфигурациями, такими как API-эндпоинты, настройки темы или учетные данные сторонних сервисов, становится более эффективным с флейворами. Определяя эти настройки в централизованном конфигурационном файле, вы снижаете риск ошибок и обеспечиваете согласованность между средами.
- Ускорение разработки: Инструменты, такие как
flutter_flavorizr
, значительно сокращают ручные усилия, необходимые для настройки и управления несколькими флейворами. Это позволяет разработчикам сосредоточиться больше на кодировании. - Подготовка к будущему: По мере роста приложения появляется необходимость поддержки дополнительных сред или рыночных сегментов. Использование флейворов с самого начала делает архитектуру вашего приложения более масштабируемой и адаптируемой в долгосрочной перспективе.
Спасибо за чтение! Теперь вы успешно настроили флейворы в своём проекте Flutter всего за несколько простых шагов. Для более глубоких вариантов настройки вы также можете адаптировать флейворы под свои сценарии. Удачного кодинга!
Источник: https://bilalrehman08.medium.com/how-to-use-flavor-in-flutter-and-why-its-important-for-you-0f53c71b59ff
Гик, хакинтошник, линуксоид, считаю себя flutter разработчиком. Завёл канал, в котором изначально хотел показывать как я с нуля и до бесконечности погрузился в дорвей тематику, а в итоге просто рассказываю о себе, своих успехах и неудачах в сайтах, приложениях, офлайн проектах. Добро пожаловать в