2025-06-07 19:42:50 +03:00
2025-01-21 14:24:31 +03:00
2025-06-07 19:42:50 +03:00
2025-06-07 19:42:21 +03:00

🚀 Friflex Starter - Корпоративный шаблон для Flutter приложений

Flutter Dart Version License

Корпоративный стартовый шаблон для разработки масштабируемых Flutter-приложений

📋 Документация🏗️ Архитектура🚀 Быстрый старт🔧 Конфигурация


📖 Описание проекта

Friflex Starter — это готовое к использованию корпоративное решение для разработки Flutter-приложений, которое включает в себя:

Ключевые особенности:

  • 🏛️ Чистая архитектура с модульным подходом
  • 🔄 Готовая система управления состоянием
  • 🌐 Мультиплатформенность, разделение на сервисы
  • 🛡️ Безопасное хранение данных
  • 🌍 Поддержка интернационализации
  • 🎨 UI Kit и система токенов дизайна
  • 🔍 Инструменты отладки и мониторинга

🎯 Для чего нужен стартер

🚀 Быстрый старт проектов

  • Экономия времени: Избавляет от необходимости настраивать базовую инфраструктуру с нуля
  • Унифицированный подход: Обеспечивает единообразие всех проектов в компании
  • Проверенные решения: Содержит только протестированные архитектурные паттерны

🏢 Корпоративные требования

  • Масштабируемость: Поддерживает рост команды и функциональности
  • Сопровождение: Легко поддерживается и модифицируется
  • Документированность: Полная документация всех компонентов

🛠️ Готовая инфраструктура

  • DI система: Настроенное внедрение зависимостей
  • Роутинг: Готовая навигационная система
  • Сервисы: Базовые сервисы для работы с API, хранилищем, логированием

🏗️ Архитектура

📐 Clean Architecture принципы

Проект построен на основе Clean Architecture с четким разделением ответственности:

┌─────────────────────────────────────────┐
│              PRESENTATION               │
│  🎨 UI, Screens, Widgets           
├─────────────────────────────────────────┤
│               DOMAIN                    │
│  📋 Business Logic,BLoC, Entities, 
├─────────────────────────────────────────┤
│                DATA                     │
│  🗄️ Repositories, Data Sources, DTO   
└─────────────────────────────────────────┘

📦 Слои архитектуры

  • 🎨 Presentation - UI компоненты, экраны
  • 📋 Domain - Бизнес-логика, сущности, интерфейсы репозиториев, BLoC/Cubit для управления состоянием
  • 🗄️ Data - Реализация репозиториев, работа с API и локальным хранилищем

🏗️ Feature-модульная структура

Каждая функциональность изолирована в отдельном модуле:

features/
├── auth/              # 🔐 Авторизация
│   ├── data/          # API, репозитории
│   ├── domain/        # Бизнес-логика
│   └── presentation/  # UI компоненты
├── profile/           # 👤 Профиль пользователя
└── debug/             # 🐛 Инструменты отладки

🛠️ Технологический стек

🚀 Основные технологии

Категория Библиотека Версия Описание
🧭 Навигация go_router 15.1.2 Декларативный роутинг
🔄 State Management flutter_bloc 9.1.1 Управление состоянием
💉 DI Custom InheritedWidget - Внедрение зависимостей
🎨 Resources flutter_gen 5.10.0 Генерация ресурсов
🌐 HTTP dio 5.8.0+1 HTTP клиент
🔒 Secure Storage flutter_secure_storage - Защищенное хранилище
📊 Logging talker 4.8.0 Логирование и отладка

🔧 Инструменты разработки

  • 📝 Линтинг: корпоративные правила кода
  • 🏗️ Code Generation: build_runner для генерации кода
  • 🌍 Локализация: flutter_localizations + intl
  • ⚙️ Окружения: envied для управления переменными

🗂️ Структура проекта

friflex_starter/
├── 🎨 assets/             # Ресурсы приложения
│   ├── fonts/              # Шрифты
│   ├── icons/              # Иконки
│   ├── images/             # Изображения
│   └── lottie/             # Анимации
├── 🌐 app_services/       # Платформо-зависимые сервисы
│   ├── base/               # Базовая реализация
│   ├── aurora/             # Aurora OS реализация
│   └── i_app_services/     # Интерфейсы
├── 📂 lib/
│   ├── 🏠 app/             # Основные компоненты
│   ├── 💉 di/              # Dependency Injection
│   ├── 🧭 router/          # Навигация
│   ├── 🎯 features/        # Функциональные модули
│   ├── 🌍 l10n/            # Локализация
│   ├── ⚙️ gen/             # Сгенерированные файлы
│   └── 🎯 targets/         # Точки входа для разных окружений
├── 🧪 test/                # Тесты
└── 🛠️ tools/               # Инструменты и документация
    └── 📋 rfc/             # RFC документация

🎯 Особенности структуры

🌐 Мультиплатформенные сервисы

Проект поддерживает различные платформы через абстракцию сервисов:

  • Base - стандартная реализация для Google Services
  • Aurora - специальная реализация для Aurora OS
  • Interfaces - общие интерфейсы для всех платформ

⚙️ Система окружений

enum AppEnv {
  dev,    // 🧪 Разработка с мок-данными
  stage,  // 🧪 Тестирование
  prod,   // 🚀 Продакшен
}

🚀 Быстрый старт

📋 Предварительные требования

  • Flutter 3.32.0+
  • Dart 3.8.0+
  • Xcode (для iOS)
  • Android Studio (для Android)

🛠️ Установка

  1. Клонирование проекта
git clone <repository_url>
cd friflex_starter
  1. Установка зависимостей
flutter pub get
  1. Генерация файлов
dart run build_runner build --delete-conflicting-outputs
flutter packages pub run flutter_gen
  1. Запуск приложения
flutter run

🎯 Запуск с разными окружениями

# Разработка
flutter run --target lib/targets/dev.dart

# Тестирование  
flutter run --target lib/targets/stage.dart

# Продакшен
flutter run --target lib/targets/prod.dart

🔧 Конфигурация

⚙️ Переменные окружения

Создайте файлы окружения в папке env/:

  • dev.env - для разработки
  • stage.env - для тестирования
  • prod.env - для продакшена

🎨 Генерация ресурсов

# Генерация ассетов
flutter packages pub run flutter_gen
# Полная перегенерация
dart run build_runner build --delete-conflicting-outputs

🧪 Отладка

🐛 Debug Screen

Встроенный экран отладки предоставляет:

  • 📊 Информацию о текущем окружении
  • 🔧 Настройки темы
  • 🌍 Переключение языков
  • 🎨 Просмотр UI Kit
  • 🔐 Управление токенами
  • 📈 Работа с логами
  • 🔄 Тестирование компонентов

Доступ через DebugScreen или debug-меню в приложении.

📝 Логирование

Интегрированная система логирования Talker:

  • HTTP запросы/ответы
  • BLoC события и состояния
  • Общие логи приложения
  • Ошибки и исключения

📋 Документация

Полная документация проекта находится в директории /tools/rfc/:

Документ Описание
📖 RFC-README.md Рекомендованный Readme
📋 RFC-build.md Инструкции по сборке
🎨 RFC-codestyle.md Стандарты кода
🔄 RFC-gitflow.md Git workflow
🏗️ RFC-projects_structure.md Структура проекта
📝 RFC-documentation.md Правила документирования

🎯 Особенности и нюансы

Преимущества

  1. 🚀 Быстрое развертывание: Готовая к использованию инфраструктура
  2. 🔧 Легкая настройка: Минимальная конфигурация для старта
  3. 📈 Масштабируемость: Модульная архитектура поддерживает рост
  4. 🛡️ Безопасность: Встроенные механизмы защиты данных
  5. 🌐 Мультиплатформенность: Поддержка нестандартных платформ
  6. 📱 Адаптивность: Готовые решения для разных экранов

⚠️ Важные нюансы

  1. 🏗️ Архитектурная дисциплина: Требует соблюдения принципов Clean Architecture
  2. 📚 Обучение команды: Необходимо изучить корпоративные стандарты
  3. 🔄 Обновления: Регулярное обновление стартера для актуальности
  4. 🎯 Кастомизация: Некоторые решения могут потребовать адаптации под проект

🔧 Рекомендации по использованию

  • Изучите RFC документацию перед началом работы
  • Следуйте архитектурным принципам проекта
  • Используйте встроенные инструменты отладки
  • Документируйте изменения согласно стандартам
  • Тестируйте на всех поддерживаемых платформах

📄 Лицензия

Этот проект распространяется под лицензией BSD 3-Clause License. Подробности смотрите в файле LICENSE.

Copyright © 2025 Friflex LLC. Все права защищены.


🎯 Готов к созданию enterprise-уровня Flutter приложений!

Разработано с любовью командой Friflex ❤️

Description
No description provided
Readme 1.2 MiB
Languages
Dart 99.8%
Shell 0.2%