# Описание проекта Friflex Starter ## Общая информация Friflex Starter - это стартовый шаблон для разработки Flutter-приложений, который предоставляет готовую структуру проекта, настроенные инструменты и лучшие практики разработки. ## Архитектура Проект следует принципам чистой архитектуры с разделением на три основных слоя: - **data** - слой данных, отвечающий за работу с API и локальным хранилищем - **domain** - слой бизнес-логики, содержащий основные бизнес-правила и модели - **presentation** - слой представления, отвечающий за UI и взаимодействие с пользователем Каждая функциональность (feature) реализуется в отдельной папке с внутренним разделением на слои, что обеспечивает модульность и масштабируемость кода. ## Технологический стек ### Основные библиотеки - **Роутинг**: [go_router](https://pub.dev/packages/go_router) - **Управление состоянием**: [flutter_bloc](https://pub.dev/packages/flutter_bloc) - **Внедрение зависимостей**: собственная реализация через InheritedWidget - **Работа с ресурсами**: [flutter_gen](https://pub.dev/packages/flutter_gen) - **Линтинг**: [friflex_lint_rules](https://pub.friflex.com/packages/friflex_lint_rules) - **Хранение данных**: - Защищенные данные: [flutter_secure_storage](https://pub.dev/packages/flutter_secure_storage) - Обычные данные: [shared_preferences](https://pub.dev/packages/shared_preferences) - **Работа с API**: [dio](https://pub.dev/packages/dio) ## Структура проекта ### Основные директории - `/lib` - основной код приложения - `/app` - основные компоненты приложения - `/features` - функциональные модули - `/router` - настройка маршрутизации - `/di` - настройка внедрения зависимостей - `/l10n` - локализация - `/gen` - сгенерированные файлы - `/targets` - специфичные настройки для разных платформ - `/assets` - ресурсы приложения - `/test` - тесты - `/tools` - инструменты и документация - `/app_services` - сервисы приложения ### Конфигурационные файлы - `pubspec.yaml` - зависимости и метаданные проекта - `analysis_options.yaml` - настройки анализа кода - `l10n.yaml` - настройки локализации ## Документация для проектов Проект содержит подробную документацию в директории `/tools/rfc/`: - Рекомендованный README для проекта - Инструкции по запуску проект - Стиль написания кода - Git-flow процесс - Структуру проекта - Правила ведения документации ## Дополнительные особенности - Поддержка мультиязычности (l10n) - Шаблон для PR - Настроенный анализ кода (analysis_options.yaml) ## Начало работы Для начала работы с проектом рекомендуется ознакомиться с документацией в директории `/tools/rfc/`, особенно с инструкциями по запуску проекта и стилем написания кода.