Добавить в корзинуПозвонить
Найти в Дзене
FPV Shorts / Video / Fun

Какую архитектуру выбрать для Flutter приложения?

Что выбрать при разработке своего первого проекта на Flutter? Почему нельзя просто писать код или же использовать MVC/MVVM/MVP как в том же Свифте?
Такими вопросами я задавался когда слушал подкасты и читал статьи. Давайте попробуем разобраться.
Дело в том что во Flutter разработке мы выбираем не архитектурный паттерн и строим приложение уже по правилам выбранного решения, а выбираем state
Оглавление

Что выбрать при разработке своего первого проекта на Flutter? Почему нельзя просто писать код или же использовать MVC/MVVM/MVP как в том же Свифте?

Такими вопросами я задавался когда слушал подкасты и читал статьи. Давайте попробуем разобраться.

Я уже скучаю по тому как все было просто в Swift
Я уже скучаю по тому как все было просто в Swift

Что такое BLoC/Redux/Provider/Native state/Vanilla и т.п.?

Дело в том что во Flutter разработке мы выбираем не архитектурный паттерн и строим приложение уже по правилам выбранного решения, а выбираем state management system или архитектуру управления состоянием. Это пришло во Flutter из мира веб разработки, и действительно в подпадающем большинстве вакансий, даже на позицию junior будут писать что знание Redux обязательно, а что же во Flutter?

Vanilla / Native state

Лучшая архитектура - отсутствие архитектуры.

Native state / Vanilla
Native state / Vanilla

Здесь все просто, пишем как есть, следуем мануала гугла. Максимальная скорость разработки приложения, бизнес логика и UI не разделены, но тащить это в большое приложение - значит получить проблемы с отладкой и тем что переиспользовать код вряд ли получится.

Provider / Scoped Model

Бизнес логика вынесена из представления. Все максимально просто, можно переиспользовать код. Проблемы начинаются на средних и крупных проектах.

Provider / Scoped Model
Provider / Scoped Model

BLoC

BLoC (Business Logic Component) — создан для управления сложным состоянием приложения, основываясь на реактивной парадигме. Бизнес логика так же вынесена отдельна, но уже разбита на разные модули. Сложная для входа архитектура, а так позволяющее на поздних стадиях проекта существенно ускорить время разработки и уменьшить время отладки.

Bloc
Bloc

Redux

Один из самых популярных архитектурных решений, пришедших из веба. В нем меньше свободы выбора и более жесткие ограничения, за счет этого как раз достигается гибкость и простота отладки.

Redux
Redux

Что я буду использовать для себя?

Мне очень сильно рекомендовали блог, но после углубление в тему не думаю что для первого проекта стоит так сильно углубляться. Текущий проект ставит целью продукт, а не изучение технологий. Так что мой выбор это Provider.

И заранее прошу прощения если я где-то что-то не так написал, пожалуйста комментируйте буду оперативно исправлять и дополнять информацию.

Я больше погружение в тему рекомендую посмотреть презентацию посвещенную выбору стейт менеджмент систем - тут.