Егор Долгов
Егор Долгов
За все время: 1500 просмотров, 743 посетителя.
За последние 30 дней: 1 просмотр, 1 посетитель.

Представляем Flutter 2.0

Flutter нового поколения, созданный для WEB, мобильных устройств и настольных компьютеров
Сегодня мы с гордостью представляем Flutter 2: большое обновление для Flutter, дающее разработчикам возможность создавать интересные, быстрые и портируемые приложения для любой платформы. Теперь вы можете использовать прежнюю кодовую базу для переноса нативных приложений на пять операционных систем: iOS, Android, Windows, macOS и Linux; а также веб-приложений, ориентированных на такие браузеры, как Chrome, Firefox, Safari и Edge. Flutter может быть встроен даже в машины, ТВ и устройства «умного дома», обеспечивая наиболее распространенный и переносимый пользовательский интерфейс для компьютерного мира.

Перевод статьи Google Developers Blog - Announcing Flutter 2 https://developers.googleblog.com/2021/03/announcing-flutter-2.html?m=1

Нашей целью является полная перемена мышления разработчика о создании приложения: чтобы первостепенной задачей было не определение платформы, на котором приложение будет реализовано, а разработка самого приложения, его идеи. Flutter позволяет выпустить на первый план бренд и дизайн разработчика и его приложения. Flutter быстрый, вы конечно компилируете ваш исходный код в машинный, но при помощи нашей поддержки горячей перезагрузки с отслеживанием состояния, вы по-прежнему получаете продуктивность интерпретируемых сред разработки, позволя вносить изменения во время работы приложения, что позволяет сразу же видеть результаты внесенных правок. Также Flutter с открытым исходным кодом, и тысячи участников вносят доработки в основной код фреймворка и расширяют ее экосистемой пакетов.

В новом релизе, выпущенном 3 марта, Flutter перестал быть просто мобильной платформой, а стал портируемым фреймворком, позволяя вашим приложениям работать на самых разных платформах с минимальными изменениями или вообще без них. Только в Play Store уже доступно более 150 000 приложений Flutter, каждое из которых получит дополнительные возможности с Flutter 2, и теперь они могут быть готовы для запуска на компьютере и web без изменений.

Пользователи со всего мира работают с Flutter, например, устанавливая приложения WeChat, Grab, Yandex Go, Nubank, Sonos, Fastic, Betterment и realtor.com. В Google также рассчитывают на Flutter, и более тысячи инженеров создают приложения с его помощью и с помощью Dart. На самом деле, многие из этих продуктов уже перенесены, например, Stadia, Google One, и Google Nest Hub.

Несколько месяцев назад Google Pay перенесли на Flutter ради своего флагманского мобильного приложения, и они уже достигли больших успехов в его продуктивности и качестве. Унифицируя кодовую базу, команда устранила несоответствие функций между платформами и удалила более полумиллиона строк кода. Также Google Pay сообщает, что эффективность их инженеров повысилась: технический долг сократился, такие процессы, как проверка безопасности, унифицировались, стали возможны эксперименты как на iOS, так и на Android.

Flutter для web

Возможно, самое крупное обновление — это качественная поддержка web.
Ранняя версия web была ориентирована на структуру web страниц. Но веб-платформа эволюционировала, чтобы охватить более богатые API-интерфейсы платформы, которые позволяют создавать сложные приложения с 2D- и 3D-графикой с аппаратным ускорением и гибкими API-интерфейсами макета и рисования. Веб-поддержка Flutter основана на этих нововведениях, предлагая ориентированную на приложения структуру, которая в полной мере использует все возможности современного интернета.

Этот релиз сосредоточен на трех сценариях приложений:

В последние месяцы, когда мы готовились к стабильному выпуску веб-поддержки, мы добились значительного прогресса в оптимизации производительности, добавив новый движок рендеринга на базе CanvasKit, построенный с помощью WebAssembly. Flutter Plasma, демоверсия, созданная членом сообщества Феликсом Блашке (Felix Blaschke), демонстрирует простоту создания сложных интерфейсов веб-графики с помощью Dart и Flutter, которые также могут работать на настольных или мобильных устройствах.

Мы расширили Flutter, чтобы предложить лучшее, что есть на веб-платформе. Недавно были добавлены автозаполнение текста, контроль над URL-адресами и маршрутизацией адресной строки, а также манифесты PWA. Так как настольные браузеры так же важны, как и мобильные, мы добавили интерактивные полосы прокрутки, клавишные сочетания, увеличили плотность контента по умолчанию и добавили поддержку чтения с экрана для специальных возможностей в Windows, macOS и Chrome OS.

Некоторые веб-приложения, созданные с Flutter, уже доступны. К примеру, многие педагоги хорошо знакомы с iRobot и их обучающимися роботами. Поддержка web позволяет iRobot перенести уже существующую среду образовательного программирования в интернет, увеличивая ее доступность для Хромбуков и других устройств, в которых наилучшим выбором будет браузер. В этом посте описаны все детали развития и то, почему они выбрали именно Flutter.

Еще одним примером может послужить Rive. Платформа предлагает дизайнерам инструмент для создания уникальных анимаций, подходящих для всех платформ. Их обновленное веб-приложение, теперь доступное в бета-версии, полностью создано на Flutter.

Вы можете узнать о других приложениях на Flutter в этом посте.

Flutter 2 на компьютере, а также на складных и встраиваемых устройствах

Помимо привычных мобильных устройств и web, Flutter получил расширение для других типов устройств, и сегодня мы выделим три из них, демонстрирующих переносимость Flutter.

Начнем с того, что с нами сотрудничает Canonical, помогая перенести Flutter на настольные компьютеры, их инженеры вносят код для поддержки разработки в Linux. Команда Ubuntu показала раннюю демонстрацию своего нового установочного приложения, которое было переписано с помощью Flutter. Для Canonical критически важно обеспечить надежную, но красивую работу с огромным разнообразием аппаратных конфигураций. В будущем Flutter станет выбором по умолчанию для будущих настольных и мобильных приложений, созданных Canonical.

Также, Microsoft продолжает расширять поддержку Flutter. В дополнение к длительному сотрудничеству, Microsoft вносит вклад в развитие движка Flutter, который поддерживает новый класс складных устройств Android, чтобы предложить высококачественную поддержку Windows во Flutter. Эти устройства представляют новые шаблоны проектирования с приложениями, которые могут либо расширять контент, либо использовать преимущества двухэкранного режима для обеспечения параллельного взаимодействия. В посте блога группы инженеров Surface они демонстрируют свою работу и приглашают других присоединиться к ним для завершения высококачественной реализации, которая работает на Surface Duo и других устройствах.

И, наконец, Toyota, автопроизводитель мирового уровня, объявили о своих планах по внедрению лучших на рынке цифровых технологий в автомобили при помощи создания информационно-развлекательных систем на базе Flutter. Использование Flutter означает большой отход от метода разработки программного обеспечения для автомобилей в прошлом. Toyota выбрала Flutter из-за его высокой производительности и постоянства опыта, быстрых итераций и эргономики разработчика, а также сенсорной механики уровня смартфонов. Используя API для встраивания Flutter, Toyota может адаптировать его к уникальным потребностям автомобильной системы.

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

Растущая экосистема Flutter

В настоящее время существует около 15 000 пакетов для Flutter и Dart: от таких компаний, как Amazon, Microsoft, Adobe, Alibaba, eBay и Square; такие важные пакеты, как Lottie, Sentry и SVG, а также избранное Fluttersign_in_with_apple, google_fonts, geolocator и sqflite.

Мы представляем выпуск бета-версии Google Mobile Ads for Flutter, нового SDK, который работает с AdMob и AdManager и предлагает различные форматы рекламы, включая баннерную, межстраничную, нативную и видеорекламу с последующим вознаграждением за просмотр. Мы опробовали этот SDK с несколькими ключевыми клиентами, такими как Sua Música, крупнейшей музыкальной платформой для независимых исполнителей в Латинской Америке, и теперь готовы открыть Google Mobile Ads for Flutter SDK для более широкого внедрения.

Также мы представляем обновления для плагинов Flutter для нескольких основных сервисов FireBase: Authentication, Cloud Firestore, Cloud Functions, Cloud Messaging, Cloud Storage и Crashlytics, в том числе и поддержку нулевой безопасности и пересмотр пакета Cloud Messaging.

Dart: секретный ингредиент Flutter

Как мы уже заметили, Flutter 2 подходит к разным платформам и видам устройств. Простой переход к поддержке web, настольных компьютеров и встроенных приложений во многом возможен благодаря Dart, языку программирования Google, оптимизированному для кросплатформенной разработки.

Dart сочетает в себе уникальный набор возможностей для создания приложений:

Ни один другой язык не совмещает все эти возможности — скорее всего, именно поэтому Dart является самым быстрорастущим языком нa GitHub.

Уже доступный Dart 2.12 — это самый большой наш релиз со времен версии 2.0. Поддерживает согласованные нулевые типы (sound null safety), которая может убрать исключения нулевых ссылок, предлагая гарантию того, что типы могут содержать только не нулевые значения, если разработчик выберет. Лучше всего то, что эта функция не является критическим изменением: вы можете постепенно добавлять ее в свой код в своем собственном темпе, с инструментами миграции, доступными, чтобы помочь вам, когда вы будете готовы.

Это обновление так же включает в себя стабильную реализацию FFI, позволяющую писать высокопроизводительный код, который взаимодействует с API на основе C; новый интегрированный инструмент разработчика и профилировщика, написанный на Flutter; и ряд улучшений производительности и размера, которые дополнительно обновят ваш код без каких-либо затрат, не считая перекомпиляцию. Для получения дополнительной информации ознакомьтесь с со статьей, посвященной Dart 2.12 .

Flutter 2: доступен уже сейчас

О новой версии Flutter можно сказать еще очень многое, гораздо больше, чем уместит эта статья. На самом деле, список замерженных пул-реквестов составляет 200-страничный документ! Вы можете перейти в технический блог о Flutter 2 с более подробной информации обо всех новых функциях и улучшениях. Надеемся, что они придутся вам по душе!

Также у нас есть образец, демонстрирующий все вышеупомянутое, который мы создали совместно с gskinner — получившей многочисленные награды командой дизайнеров из Канады. Flutter Folio — приложение для скрапбукинга, подходящее для всех ваших устройств. Просмотр через маленький экран подходит для захвата контента; большие экраны поддерживают редактирования с использованием идиом для ПК и планшетов; а веб-интерфейс подходит для публикации. Все эти адаптированные приложения используют одну и ту же кодовую базу с открытым исходным кодом, доступную для ознакомления.

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

С нетерпением ждем ваших новых приложений!

Подборка заметок