Скачать книгу

В случае сборки release iOS используется AOT. Для release Android может использоваться как AOT, так и CoreJIT (вариация AOT).

      При разработке мы хотим видеть изменения быстро, и у нас есть такая возможность – Hot Reload. Он как раз-таки и работает по паттерну JIT. Платформа формирует некие снимки состояния – snapshots, которые затем переиспользуются.

      Типы snapshot- ов

      Использование snapshot-ов в debug режиме

      Использование snapshot-ов в release режиме

      Итоги обзора

      Dart – мощный инструмент разработки, впитавший в себя многое от Java, Javascript и других языков, успешно применямых в промышленной разарботке. Перейти на Dart программистам, писавшим ранее на ООП-языках не составит труда, а новичкам изучить его несложно. На текущий момент Dart уже можно применять в релизных продуктах:

      – Flutter – для мобильных приложений

      – AngularDart и Hummingbird для web-разработки

      – Aqueduct для бэкенда

      Урок 3. StatelessWidget и StatefulWidget

      В этой главе:

      – Все – виджет

      – Состояние виджета

      – StatelessWidget

      – StatefulWidget

      – Типы состояний: Ephemeral и App

      Все – виджет

      Начнем с ответа на вопрос «Что такое Widget во Flutter?». Виджет – это основной строительный блок пользовательского интерфейса приложений. Причем, эти блоки, как матрешки, можно вкладывать один в другой, образуя вложенную иерархичную структуру. Таким образом все во Flutter – это виджет; начиная от текста на кнопке, заканчивая самим приложением, которое тоже является виджетом. Главное, что нужно сразу понять про виджеты, это то, что по типу они разделяются на две основные категории: Stateless и Stateful. Если вы знаете английский, то из названия Вы можете сразу понять в чем их отличие. Одни имеют состояние, другие – нет. Давайте копнем поглубже.

      Состояние виджета

      Состояние – это «любая информация, необходимая для отрисовки UI в любой момент времени». Будучи Java и Kotlin разработчиком, я привык писать в императивном стиле. Например, textView.setText («Lorem») или textView. text=«Lorem». То есть мы меняли внешний вид виджета напрямую, прямо указывая системе что надо поменять.

      Поскольку Flutter декларативный, пользовательский интерфейс строится как некоторая функция от состояния:

                                           UI = f (state)

      Другими словами, UI наблюдает за Состоянием, и если вы хотите изменить UI, Вам нужно обновить состояние. И здесь на сцену выходят два типа виджетов – те, которым можно менять состояние в рантайме, и те, которым нельзя. Здесь уместо провести аналогию с val и var переменными в Kotlin. Рассматривайте StatelessWidget как val, а StatefulWidget как var перменную.

      StatelessWidget

      Stateless виджет не может менять свое состояние, то есть он иммутабелен. Такой тип виджетов удобно использовать для статичных элементов экрана, которые надо отрисовать один раз и не трогать больше. Например, это могут быть заголовки, label-ы, иконки, изображения из локальных ресурсов и т. п. Самый яркий пример – это само приложение. Оно наследуется от класса StatelessWidget. Однако, давайте создадим для тренировки свой StatelessWidget. Пусть это будет простой label с каким-то задаваемым текстом.

      class

Скачать книгу