Архитектура Flutter: хардкор, ваниль и «ящички»
В те времена, когда только появился Android, с архитектурой сильно не заморачивались. В большинстве случаев приложения писали без глубокой архитектурной мысли: вот activity, а там пишем код бизнес-логики. Потом начали внедрять MVP-архитектуру, ещё позже — MVVM-модель и т. п.
К моменту выхода Flutter сообщество имело уже серьёзный багаж знаний. Стало вполне нормальным писать приложения на 100 и более экранов с командой из десяти и более человек. А здесь, разумеется, без архитектуры никак.
Сегодня во Flutter-сообществе популярны следующие архитектурные паттерны: 1. Vanilla — подойдёт для тех, кто не особо заморачивается с архитектурой и применяет стандартные подходы, предлагаемые фреймворком. Можно сказать, что это примитивная архитектура, предназначенная для создания простейших приложений. Она пригодится, если надо сделать что-то не очень сложное, к примеру, какие-нибудь обучающие сэмплы. 2. Архитектура-блок — в основе этой концепции находится идея разбиения создаваемого приложения на «ящички» с бизнес-логикой и построением связей между ними. 3. Redux — это уже более хардкорный вариант, пришедший во Flutter из веба. У данного архитектурнеого подхода есть много разнообразных вариаций, тот же Fish Redux. Как правило, его применяют ребята из Поднебесной со всеми вытекающими отсюда последствиями в виде репозиториев с иероглифами и отсутствием внятной информации.
Однако никто не мешает разработать и собственный архитектурный модуль, например, как здесь.
В принципе, во Flutter вы сможете реализовать любую, близкую вам концепцию. Главное — опираться на нужды вашего проекта и меньше думать о том, что «на Андроид следовало бы сделать вот так».
По материалам статьи «Из Android во Flutter: безумие или дальновидный шаг».