Так «clean architecture» заставляет вас делать все на infrastructure layer, Flutter здесь никаким боком, это совсем другой слой.
В этой статье как раз рассматривается связка graphql + Flutter, без разделения на слои.
Да, для очень простых приложений подойдет. Но лучше все же чистый RN, а еще лучше Flutter сразу начинать, как написали ниже.
Пришлось выпиливать Expo из проекта, чтобы нормально подключать все доступные библиотеки. Удовольствие еще то.
Знать флаттер не требуется. Достаточно подготовить среду, сделать задание, которое под силу людям без опыта работы, но с умением гуглить и решать мелкие проблемы.
В качестве награды вы получаете хорошие курсы, их стоимость не важна, так-то можно и с торента любой курс скачать. Ваша цель, как начинающего разработчика, сделать как можно больше и получить как можно больше знаний.
Flutter был выбран просто как пример, выбрать можно что душе угодно.
Кросс-платформа дает возможность разобраться как разрабатывать для ios/android/web/desktop, написав один и тот же код и параллельно изучать нюансы платформы.
Плюс дает возможность через некоторое время работать на фрилансе (после получения опыта на галере), делая приложения для нескольких платформ за хорошие деньги.
В любом случае, если автор настроен на ios и swift — это его выбор.
На доу как минимум 10 вакансий, и это только начинает флаттер входить в украинский аутсорс.
А на счет гугла — никто не закрывает перспективные проекты.
Как по мне оптимальный вариант это изучать кросс-платформенную разработку мобильных приложений. Самым перспективным направлением на данный момент является Flutter, но можно выбрать что-то другое, если не нравится язык Dart.
Будем надеяться, что не последний раз. Приятно видеть, что инструменты разработки не стоят на месте.
Много проектов, о которых я слышал, либо переписывают с реакта/кордовы, либо интегрируют Flutter в нативный проект для отрисовки интерфейса. Рейты соотвественно сохраняются. Если единственная мотивация перехода на флаттер — экономия денег тут и сейчас, то скорее всего рейты будут на соответствующем уровне без привязки к технологии.
А какие предпосылки к переписыванию приложения на флаттере?
Для кордовы это webview, для реакт нейтива — js-бридж. Единственный вариант для переписывания — если Google забросит, но пока даже мыслей таких нет.
Я сам не пробовал, но есть вот такое видео с примером:
skillsmatter.com/...reen-widgets-with-flutter
Вы можете реализовать любой тип архитектуры по вашему желанию. Отличие лишь в экосистемах каждой из них. На данный момент BLoC является реализацией MVVM на Flutter.
Список всех подходов с примерами можно глянуть здесь: github.com/...tter_architecture_samples
1) Вы можете использовать эту библиотеку где угодно в сторе, можете даже какие-то куски написать вручную и скомбинировать их со сгенерированными.
2) Я обычно стараюсь сделать стор максимально плоским: модуль — операция. Большая вложенность обычно приводит к тяжеловестным операциям изменения стора. Но опять же, каждый может компоновать как хочет.
3) Эта библиотека решает только одну проблему: избавление от шаблонного кода для асинхронных экшенов. У вас же я так понимаю более комплексное решение, некоторая своя парадигма для редакса.
4) Количество кода уменьшается очень сильно за счет того, что избавляемся от написания редьюсеров вручную, избавляемся от возможности выстрелить в ногу с мутабельностью (особенно актуально когда на проекте достаточное количество джуниоров), нет необходимости тестировать то, что сгенерировано.
на счет вашей библиотеки:
1) я так понимаю это что-то типа mobx-state-tree только в экосистеме редакса ?
2) хотелось бы посмотреть на комплексный пример для асинхронных экшенов (запрос на сервер, например). так как обычно на проекте есть какой-то стандартный путь обработки ошибок и запросов, который потом все копируют в свои модули.
3) в целом выглядит интересно, но похоже что достаточно большой порог вхождения в бибилотеку
с redux-form счастливым не будешь
Мы тоже боремся с бойлерплейтом, только для асинхронных запросов и с нормализацией.
Используем эту либу: www.npmjs.com/...ckage/redux-actions-async
Вторая волна! Пора создавать новый топик ;)