Курс Flutter Developer - Блок 2. История и Архитектура Flutter

Урок 2. История и Архитектура Flutter

Flutter исходит из традиции попыток улучшить производительность Интернета. Он построен на основе нескольких технологий с открытым исходным кодом, разработанных в Google для обеспечения собственной производительности и современного программирования в Интернете через Chrome.

Команда Flutter выбрала язык Dart, который также разработал Google, для повышения производительности. Его объектно-ориентированная система типов и поддержка реактивного и асинхронного программирования дают ему явные преимущества перед Javascript. Самое главное, что Google встроила виртуальную машину Dart в браузер Chrome, позволив веб-приложениям, написанным на Dart, работать на собственных скоростях.

Еще одной частью головоломки является включение Skia в качестве слоя рендеринга графики. Skia — это еще один проект с открытым исходным кодом на базе Google, который поддерживает графику в браузерах Android, Chrome, Chrome OS и Firefox. Он работает непосредственно на графическом процессоре, используя Vulkan на Android и Metal на iOS, что делает графический слой быстрым на мобильных устройствах. Его API позволяет виджетам Flutter визуализироваться быстро и последовательно, независимо от хост — платформы.

Архитектура Флаттера

Flutter имеет модульную многоуровневую архитектуру. Это позволяет вам написать логику приложения один раз и иметь согласованное поведение на разных платформах, даже если базовый код движка отличается в зависимости от платформы. Многоуровневая архитектура также предоставляет различные точки для настройки и переопределения по мере необходимости.

Структурная схема Архитектуры фреймворка Flutter
Структурная схема Архитектуры фреймворка Flutter

Архитектура Флаттера состоит из трех основных слоев:

  1. Уровень Framework написан на языке Dart и содержит высокоуровневые библиотеки, которые вы будете использовать непосредственно для создания приложений. Это включает в себя тему пользовательского интерфейса, виджеты, макет и анимацию, жесты и основополагающие строительные блоки. Наряду с основным фреймворком Flutter есть plugins (плагины): высокоуровневые функции, такие как сериализация JSON, геолокация, доступ к камере, платежи в приложении и так далее. Эта архитектура на основе плагинов позволяет включать только те функции, которые необходимы вашему приложению.
  2. Уровень Engine (движок) содержит основные библиотеки C++, которые составляют примитивы, поддерживающие приложения Flutter. Engine реализует низкоуровневые примитивы API Flutter, такие как ввод-вывод, графика, макет текста, специальные возможности, архитектура плагинов и среда выполнения Dart. Engine также отвечает за растрирование флаттер-сцен для быстрого рендеринга на экране.
  3. Embedder отличается для каждой целевой платформы и обрабатывает упаковку кода в виде автономного приложения или встроенного модуля.

Каждый из архитектурных слоев состоит из других подслоев и модулей, что делает их почти фрактальными. Особое значение для общей разработки приложений имеет состав слоя фреймворка:

Структурная схема архитектурных слоев и модулей фреймворка Flutter
Структурная схема архитектурных слоев и модулей фреймворка Flutter

Каркас Flutter состоит из нескольких подслоев:

  • Вверху находится UI theme (тема пользовательского интерфейса), которая использует либо язык дизайна Material (Android), либо Cupertino (iOS). Это влияет на внешний вид элементов управления, позволяя сделать ваше приложение похожим на родное.
  • Widget layer (слой виджетов) — это то место, где вы будете тратить большую часть времени на программирование пользовательского интерфейса. Именно здесь вы создаете дизайн и интерактивные элементы для создания приложения.
  • Под слоем виджетов находится rendering layer (слой рендеринга), который является абстракцией для построения макета.
  •  Foundation layer (базовый слой) содержит основные строительные блоки, такие как анимация и жесты, которые создают более высокие слои.

Что предстоит узнать

Этот курс разделен на шесть разделов:

  • Раздел 1 — это Введение. В этом разделе вы получите обзор Flutter, узнаете, как начать работу, и убедитесь, что у вас есть все необходимое для разработки отличных приложений. Вы создадите простое приложение, чтобы получить представление о языке Dart и SDK Flutter.
  • Раздел 2 посвящен Виджетам — строительным блокам, которые вы используете для создания своего приложения.
  • Раздел 3 посвящен Навигации (navigation) и Глубоким ссылкам (deep links). Если вы думаете о виджетах как о составляющих экранах, навигация связывает их вместе, чтобы пользователь мог выполнять различные задачи внутри приложения.
  • Раздел 4 посвящен State (состоянию) и Data (данным). Вы узнаете, как сохранять данные и работать с локальной персистентностью и сетью.
  • В разделе 5 показано, как заставить приложение работать с собственными платформами, а также как развернуть его.
  • В разделе 6 (deploy) показано, как создать приложение для обмена мгновенными сообщениями с помощью Firebase Cloud Firestore.

К концу курса вы сможете взять идею, превратить ее в великолепно выглядящее мультиплатформенное приложение и представить его для публикации.

Продолжить изучение ➤ Урок 3. Приступаем к работе с SDK Flutter

Похожие записи