Comments 4
Из уровня чувств в уровень понимания future и stream поможет банальное переписывание реализации. Она довольно простая.
Hot reload — обновляет изменившийся код, и вызывает перерисовку текущего экрана (упрощаю, на самом деле все немного сложнее). При этом все что инициализируется при запуске — не обновится, так как экземпляры этих классов уже созданы. Анонимные функции вызванные до текущего экрана не будут заново вызваны. Все адекватно описанные методы с названием — будут обновлены.
HotRestart возвращает приложение в состояние до runApp функции и запускается заново. Все что создало приложение в оперативной памяти — уничтожится.
Если вы добавили библиотеку в pubspec, обновили зависимости и сделали HOT RESTART — то библиотека будет работать при запущенном в дебаге приложении, в случае если у нее нет нативного кода. В остальных нужно останавливать и запускать заново.
BLOC для новичка — ужасный выбор. Он многословный. Очень много лишнего шаблонного кода, который можно и не писать. Mvvm,Scoped Model, Provider (в порядке увеличения свободы) хороший выбор.
Выражаю своё мнение, прошу прощения за орфографию.
Когда я говорила об уровне чувств, я имела в виду, что когда человек осваивает то или иное действие, оно доходит до автоматизма. Если его надо выполнить ещё раз, им занимается подсознание. Чтобы усовершенствовать свои навыки, подняться на новый уровень понимания концепта, надо заново делать это действие сознательно. Просто переписать (отрефакторить) свой код полугодовой, например, давности не поможет. Ради интереса посмотрела код из своего репозитория, который не обновлялся год. Нормальный код, ничего такого особенного. Нечего мне там рефакторить. Можно сделать красивее с применением других паттернов, можно новый функционал добавить, но вот в рамках того же mvvm делать нечего. Поэтому, чтобы что — то поменять в восприятии, нужен другой человек. С кем можно поговорить о самой сути концепта, например интервьюер.
Спасибо за дополнительные разъяснения по hot reload. Пожалуй ни разу не видела достаточно полного описания этого вопроса. Мне кажется, здесь ещё стоит упомянуть, а чего собственно ради аж целых два метода ускоренного обновления приложения на устройстве появились. На 8ядерном Mac pro разница при построении приложения для Андроид и Hot reload вместе с hot restart 5-15 секунд (конечно есть первый запуск, который дольше), iOS строится в целом дольше. На Mac book air разница будет уже намного более ощутимой. Я бы предположила: 30-60 секунд, и для первого построения iOS билда можно пойти пить чай. Если у вас мощное железо и вам не хочется вникать, есть в новой библиотеке платформенный код или нет, останутся ли после перезапуска какие — нибудь артефакты от предыдущего состояния приложения или нет, то почему бы не перезапустить приложение полностью? А вот когда разница во времени перезапуска действительно будет существенной, имеет смысл уделять внимание способу обновления. То есть вопрос на самом деле сводится к экономии времени разработчика, которое при обычном перезапуске достаточно ощутимо тратится в никуда
Польза собеседований. Вариант Flutter-разработчика