Дело в том, что я не занимаюсь мобильной разработкой, и в ближайшее время не планирую ею заниматься. Но меня очень заинтересовал Flutter и мне захотелось разобраться с ним.
Записывать — это один из способов лучше запомнить, а объяснять — лучший способ разобраться, ведь так? )
Бенчмарки интересная штука, но данная серия посвящена основам фреймворка, а не его пиару или даже сравнению с альтернативными решениями.
В основе Flutter графический движок используемый в браузере Chrome, который себя уже давно хорошо зарекомендовал. Он легко выполняют свою работу не проваливаясь ниже 60fps.
В добавок к этому виджеты Flutter интересным образом оптимизированы. Вот, к примеру, трюк со списком из списков (1000х1000 элементов). Отрисовывается и отлично работает даже в development режиме с включенным Hot-reload. И продолжает так же хорошо работать при увеличении каждого списка в 10 раз. (MacBook Pro 2015, 16гб, версия без видюхи)
Код действительно выглядит как каша.
Но дело не в фреймворке, а в моем решении не разбивать приложение на модули в первой части.
Это конечно же не все. Смешивание данных и отображения тоже является плохим подходом. Дальше я постараюсь показать как разделить эти две сущности. И даже то, как вынести стилизацию — в Flutter это очень простая задача (не в сравнении с веб, но в сравнении с другими нативными или околонативными решениями).
Дело в том, что я не занимаюсь мобильной разработкой, и в ближайшее время не планирую ею заниматься. Но меня очень заинтересовал Flutter и мне захотелось разобраться с ним.
Записывать — это один из способов лучше запомнить, а объяснять — лучший способ разобраться, ведь так? )
В основе Flutter графический движок используемый в браузере Chrome, который себя уже давно хорошо зарекомендовал. Он легко выполняют свою работу не проваливаясь ниже 60fps.
В добавок к этому виджеты Flutter интересным образом оптимизированы. Вот, к примеру, трюк со списком из списков (1000х1000 элементов). Отрисовывается и отлично работает даже в development режиме с включенным Hot-reload. И продолжает так же хорошо работать при увеличении каждого списка в 10 раз. (MacBook Pro 2015, 16гб, версия без видюхи)
Этот пример будет работать даже с картинками загруженными из интернета.
Интересно, что именно не понравилось в управлении состоянием? Хранение состояние внутри виджета? Использование setState для обновления?
У Flutter только недавно появился InheritedModel в добавок к InheritedWidget.
А коммьюнити только начинает решать существующие проблемы и перетаскивать хорошие решения на платформу, в том числе и redux-подобные.
Но дело не в фреймворке, а в моем решении не разбивать приложение на модули в первой части.
Это конечно же не все. Смешивание данных и отображения тоже является плохим подходом. Дальше я постараюсь показать как разделить эти две сущности. И даже то, как вынести стилизацию — в Flutter это очень простая задача (не в сравнении с веб, но в сравнении с другими нативными или околонативными решениями).