Google выпустила обновления для SDK Flutter и Dart, внесшие в себя целый ряд улучшений для унифицированной кроссплатформенной разработки. Читайте дальше, чтобы узнать больше!
Флаттер – это среда кроссплатформенного программирования, стремясь решить проблемы разработки кроссплатформенных приложений без путаницы неродного кода. Зная язык программирования Dart, разработчик может создавать приложения для Android, iOS, Интернета и настольных компьютеров с единым интерфейсом для всех. Флаттер 1.9 перевел поддержку macOS и Catalina в альфа-состояние, в то время как В выпуске v1.12 их поддержка вышла за пределы пре-альфа-состояния.. Теперь Google выпустил новую версию Flutter v1.17 и версию Dart v2.8, отметив их как первые стабильные выпуски Flutter и Dart в 2020 году.
Флаттер 1.17
В прошлом месяце у Google было объявила об изменениях в процессе выпуска. В более раннем процессе компании не было ясности относительно того, когда будут выпускаться релизы, какой код будет в них и так далее. Теперь Google планирует выпускать стабильные выпуски примерно раз в квартал. Это само по себе создало несколько проблем, поскольку инфраструктуру выпуска пришлось переоборудовать для нового процесса выпуска. Теперь Flutter 1.17 выпускается в стабильном канале для разработчиков. Google закрыл 6339 проблем с момента своего предыдущего выпуска Flutter 1.12, и они закрыли больше ошибок, чем было открыто в этом году, что привело к чистому снижению примерно на 800 проблем.
Помимо исправлений ошибок, Flutter 1.17 содержит существенные улучшения производительности, улучшенную поддержку Metal на iOS и включает новые виджеты Material.
Улучшения производительности
Приложения, созданные с помощью Flutter 1.17, по сравнению с более ранними версиями, увидят ускорение на 20-37% для случая навигации по умолчанию, в котором есть непрозрачные маршруты без прозрачности. Также значительно улучшены размеры приложений, созданных с помощью Flutter 1.17. Например, размер образца Flutter Gallery сейчас составляет 8,1 МБ в 2020 году по сравнению с 9,6 МБ в конце 2019 года. Что касается использования памяти, версия 1.17 обеспечивает сокращение памяти на 70% при быстрой прокрутке больших изображений.
Металл — это низкоуровневый графический API Apple, который обеспечивает практически прямой доступ к базовому графическому процессору устройств iOS. Flutter теперь по умолчанию использует Metal при сборке для поддерживаемых устройств iOS, благодаря чему приложения Flutter работают быстрее. Улучшенная поддержка Metal повышает скорость рендеринга приложений iOS в среднем примерно на 50%. На устройствах iOS, которые не полностью поддерживают Metal, а именно устройствах с версией iOS ниже 10 и выпущенных до процессора A7, Flutter возвращается к OpenGL.
Во Flutter 1.17 добавлена поддержка новых виджетов материалов. Также есть обновления существующих виджетов. Например, NavigationRail помогает разработчикам добавлять в приложения адаптивные модели навигации и отлично подходит для приложений, которые могут переключаться между форм-факторами мобильных устройств и настольных компьютеров. Виджеты переполнения DatePicker и TextSelection также были обновлены: новые визуальные элементы DatePicker соответствуют обновленным рекомендациям по материалам и добавляют новый режим ввода текста, а TextSelection теперь имеет улучшенную точность для iOS и Android, когда кнопки длиннее, чем можно отобразить без переполнен. Наконец, Google также представляет новый пакет Animations Package, который предоставляет готовые анимации, реализующие новый Материальное движение Спецификация.
Другие изменения во Flutter 1.17
- Google завершил реализацию Часть Type Scale спецификации Material Design 2018 г. не нарушая существующие приложения Flutter.
- Google Шрифты для Flutter v1.0 теперь также доступен. Это позволяет разработчикам экспериментировать и использовать любой шрифт из Fonts.google.com в их приложении. Разработчик может решить, включать ли шрифт в APK-файл или пользователь получит шрифт, загрузив его из API.
- Google улучшил доступность приложений Flutter, исправив прокрутку, текстовые поля и другие виджеты ввода.
- Google также готовится заменить текущую версию Dart DevTools новой версией Flutter. Разработчики могут протестировать эту новую версию, запустив DevTools и щелкнув значок «прерыватель» в правом верхнем углу DevTools. Самым большим улучшением в новой версии Dart DevTools для Flutter является новая вкладка «Сеть», на которой отображается сетевой трафик вашего приложения Flutter, когда вы нажимаете кнопку «Запись».
- Еще одним улучшением является экспериментальная опция «быстрого запуска», позволяющая запускать отладку приложения Flutter до 70% быстрее при создании приложения для Android.
Google также благодарит команду Superformula за полную переработку Приложение MGM Resorts для Android во Флаттере.
Дарт 2.8
Dart — это язык программирования, используемый для создания приложений во Flutter. С выпуском Dart 2.8 SDK Google вносит несколько изменений:
- Улучшения в паб клиентский инструмент, который используется для управления пакетами, загруженными с репозиторий пакетов pub.dev.
- Google улучшил производительность паб получить добавив поддержку параллельного получения пакетов и отсрочки паб предкомпиляция.
- Google также добавил новый инструмент (паб устаревший) для обеспечения актуальности зависимостей пакетов.
- Подготовка к обеспечению нулевой безопасности, поскольку нулевые ссылки являются частым источником сбоев приложения, которые происходят, когда код пытается прочитать переменную, имеющую нулевое значение.
- Google готовится добавить поддержку надежной нулевой безопасности в Dart, которая будет гарантировать, что все выраженные переменные будут содержать ненулевые значения.
- Реализация надежной нулевой безопасности — это огромная задача, которая первоначально приведет к сбоям в языке Dart и библиотеках. Google хочет, чтобы разработчики знали об этом эти критические изменения и сообщить о любых проблемах на их трекер проблем.
Подробнее об этих и других изменениях вы можете прочитать в анонсах Flutter 1.17 и Dart 2.8.