Comments 6
Делал недавно на flutter приложение, которое работает с СМС на андроид.
Из того что запомнилось:

— Пакет для получения разрешений (permission 0.1.1) выдает разрешения которые на самом деле не работают, я до сих пор не понимаю как это возможно, разрешение на СМС стоит, но не работает, даже после перезагрузки, выключишь-включишь в системе — начинает работать. Переделал на java, стало все хорошо.

— При сборке с target на последний api, при нажатии на поле ввода не появляется клавиатура, пока туда не вставишь текст, оказалось известный баг, надо ставить target предпоследний api.

— firebase + cloud firestore работает хорошо, вообще все плагины которые поддерживаются гуглом работают нормально, а вот сторонние еще слишком недоделанные, интересно ReactNative вылечился от этого уже или нет.

— Код на Dart для интерфейса слишком похож на React, я так понимаю flutter и был ответом на ReactNative. В итоге большое количество вложенностей, плохо читается, ну может кто к React привык, ему нормально, по мне лучше бы сделали в стиле Vue.js.

— Не смог найти как из фоновой задачи вызвать код на dart, самого приложения то нет, пришлось написать все на java. Но вызывать методы java из dart оказалось несложно, наверное это более востребовано.

— размер приложения получается довольно маленький, у меня с play services, firebase, firestore получилось 9.1 Мб, без них кажется было около 5Мб. Все таки компиляция в native код это хорошо.

Но flutter судя по всему выстрелил, на stackoverflow trends, рост чуть-ли не вертикальный, на upwork работы стало полно для него.
Спасибо за статью. Интересен паттерн BLOC.
Могли бы вы привести пример если нам нужно создать анимацию между переходами из одного состояния в другое?
Если во время загрузки данных и крутящегося спинера повернуть экран, только vanila верно отработала. Block — бесконечно продолжает крутить спинер, Scope — показывает кнопку
Спасибо, что написали об ошибке. Model и Scope создавались в build методе класса HomePage. И при вращении экрана каждый раз пересоздавались. Подобную ошибку я уже допускаю не впервые.
Я переписал код, и сделал его еще проще для понимания. Избавился от BlocProvider так как он на самом деле не нужен для демонстрации самой архитектуры.
забавно, что Flutter позиционируют как «убийцу» нативной разработки, рассказывая про то, как можно «быстро и классно» накидать виджетов и не надо никаких «сложностей» в виде даггеров, MV*, LiveData, Rx и прочей «ненужной ерунды для ботанов», а в итоге всё упирается ровно в те же проблемы, которые уже давно решаются в нативной андроид разработке: а как организовать код, а как построить надёжную/расширяемую/понятную архитектуру приложения, а какую-библиотеку мне взять — ванилу, блок или еще что-то, а как измерить производительность приложения и тд
Only those users with full accounts are able to leave comments. Log in, please.