Найти тему
AutoMaintEase

Архитектурный компас для приложения AutoMaintEase: Как выбрать верный курс?

AutoMaintEase: Направление верного курса
AutoMaintEase: Направление верного курса

В архитектуре Flutter-приложений существует несколько популярных подходов их можно посерфить в интернете или пообщаться с единомышленниками, а так же посмотреть блогеров(к примеру Стас Ильин - много рассказывает про флаттер разработку и свою концепцию архитектуры, как он привык это видеть в продакшене), каждый из которых имеет свою структуру папок и файлов. Вот несколько распространенных архитектур:
1. Vanilla Architecture. Классическая структура Эта архитектура подходит для небольших проектов и простых приложений.

Vanilla Architecture - Класическая архитектура Flutter App
Vanilla Architecture - Класическая архитектура Flutter App
- main.dart: Входная точка приложения.
- screens: Содержит файлы экранов.
- widgets: Компоненты и виджеты, которые могут использоваться повторно.
- models: Классы моделей данных.
- services: Файлы, отвечающие за связь с внешними сервисами (например, API).


2. Feature-first Architecture Эта архитектура группирует файлы по функциональным блокам. Подходит для средних и крупных приложений.

Feature-first Architecture - Функциональная архитектура
Feature-first Architecture - Функциональная архитектура
- features: Каждый подкаталог отвечает за отдельную функциональность приложения (например, аутентификация, управление продуктами).
- data, presentation, services: Содержат соответствующие файлы данных, экраны и сервисы для отдельных фич.

3. BLoC Architecture (Business Logic Component) Эта архитектура разделяет бизнес-логику и представление. Подходит для крупных и сложных приложений.

Business Logic Component - компонентная архитектура бизнес логики
Business Logic Component - компонентная архитектура бизнес логики
- blocs: Файлы, содержащие логику бизнеса (BLoC-контроллеры).
- repositories: Репозитории для работы с данными.
- models, screens, widgets, services: Имеют аналогичную роль, как в предыдущих архитектурах.

4. Clean Architecture Эта архитектура делает упор на разделение ответственности на уровне данных, домена и представления.

Clean Architecture - чистая архитектура
Clean Architecture - чистая архитектура
- data: Содержит модели, репозитории и сервисы для работы с данными.
- domain: Содержит сущности, репозитории и usecases (пользовательские кейсы) для бизнес-логики.
- presentation: Содержит BLoC-ы, экраны и виджеты для представления данных.

Из выше описанных архитектур, к нашему приложению подходит Feature-first, BLoC или Clean Architecture, а может быть у вас имеется своё видение, то пишите в комментариях.

А на текущем этапе у меня пока такая(ниже архитектура) , чем-то похожая на BLoC архитектуру.

текущая архетектура
текущая архетектура
- assets: Содержит изображения
- constants: Содержит константы
- routes: Содержит адреса и переходы между экранами
- screens: Содержит экраны и фичи
- services: Содержит данные и подключение к Api

Выбор архитектуры для Flutter-приложения является критическим шагом, который влияет на весь последующий процесс разработки и поддержки. Необходимо учитывать размер и сложность приложения, потребность в тестировании, а также личные предпочтения и опыт который у меня имеется только с веб. Тщательно рассмотрев все эти аспекты, мне предстоит выбрать архитектуру, которая наилучшим образом подходит для нашего приложения AutoMaintEase.

Спасибо за внимание, а так же добро пожаловать, буду рад видеть тебя у себя в комментариях.

А так же если кому интересно, как я начал свой путь разработчика, то расскажу в следующих статьях, но если в кратце, то изначально обучался в GeekBrains, переходи там от меня до 45% скидка на обучение.

Сайт: AutoMaintEase
Телеграм канал: AutoMaintEase