Выбираем архитектуру для Flutter-приложения | OTUS

Выбираем архитектуру для Flutter-приложения

Flutter_Headline_970x70-1801-567630.png

Что лучше всего выбрать при разработке первого проекта на Flutter? Можно ли просто писать код либо использовать MVC/MVVM/MVP как в том же Swift? Давайте попробуем разобраться.

Раз уж вспомнили Swift, то там с выбором было проще:

scale_1200-1801-0c0561.jpg

Что касается Flutter, то здесь мы подбираем не архитектурный паттерн, как таковой, с последующим построением приложения по правилам выбранного решения, а подбираем State Management System — так называемую архитектуру управления состоянием. Пришло это из области web-разработки. И вот здесь перед нами возникает следующий выбор: • Vanilla/Native state; • Provider/Scoped Model; • BLoC; • Redux.

Vanilla/Native state

Иногда говорят, что лучшая архитектура — это отсутствие архитектуры.

Screenshot_1-1801-7cf310.png

Тут все просто, то есть пишем, как есть, но в соответствии с мануалом Google. Особенности такого подхода — высокая скорость разработки, а также отсутствие разделения между бизнес-логикой и UI. Но на практике вы вряд ли сможете применить такой подход при разработке большого приложения, иначе получите проблемы с отладкой и последующим переиспользованием кода.

Provider/Scoped Model

Здесь уже бизнес-логика вынесена из представления. В целом все предельно просто, плюс есть возможность переиспользования кода. Однако проблемы все же возможны, и начинаются они при работе с крупными и даже со средними проектами.

Screenshot_2-1801-18020c.png

BLoC

Архитектура управления состоянием BLoC (Business Logic Component) создана для управления сложными состояниями Flutter-приложений и основывается она на реактивной парадигме. Здесь тоже бизнес-логика выносится отдельно, однако тут она разбивается на разные модули. Архитектура довольно сложна для входа, зато позволяет ускорить время разработки на поздних стадиях проекта, а также уменьшить время отладки.

Screenshot_3-1801-31fb31.png

Redux

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

Screenshot_4-1801-b022d5.png Что же выбрать? Обычно для первого проекта рекомендуют BLoC, однако на деле далеко не всегда стоит сразу так сильно углубляться в технологии, поэтому, возможно, вполне сгодится тот же Provider. Выбор, как обычно, следует делать с учетом специфики предстоящего проекта.

По материалам "Дневника Flutter-разработчика".

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто