Flutter от Google демонстрирует новые графические возможности, поддержку WebAssembly и RISC-V.

Flutter, платформа с открытым исходным кодом для создания кроссплатформенных приложений для мобильных устройств, Интернета и настольных компьютеров, сегодня проводит мероприятие Flutter Forward в Найроби, Кения. Как следует из названия, команда использует мероприятие, чтобы продемонстрировать многообещающие функции платформы, большинство из которых все еще находятся на очень ранней стадии цикла разработки. Основные моменты здесь — значительно улучшенная производительность графики, возможность более легкого встраивания кода Flutter в существующие мобильные и веб-приложения, а также поддержка новых архитектур, таких как Web Assembly и RISC-V. Практически все эти возможности все еще находятся в канареечных ветвях и за экспериментальными флагами, но они показывают, как Google планирует развивать этот проект в ближайшие месяцы, и помогают более широкой экосистеме с открытым исходным кодом понять, где может быть полезна дополнительная работа (около 40 % участников Flutter находятся за пределами Google).

Тим Снит, менеджер Google по продукту и UX для Flutter и языка программирования Dart, сказал мне, что команда решила полностью переписать Impeller, среду выполнения рендеринга Flutter. Эта новая версия направлена ​​​​на исправление некоторых существующих недостатков предыдущего движка, но также значительно повышает производительность, а также предлагает поддержку горячей перезагрузки и других основных функций Flutter. «Это такой разный опыт. Он гладкий, как шелк», — сказал он. «По сути, мы можем создать механизм рендеринга графики, разработанный для Flutter, вместо использования рендерера общего назначения».

Чтобы обеспечить эту производительность, движок теперь имеет предварительно скомпилированные шейдеры, что предотвращает пропадание кадров предыдущего движка во время компиляции шейдеров. Также теперь есть поддержка пользовательских шейдеров и пиксельных шейдеров, что позволяет использовать ряд новых эффектов, что, в свою очередь, позволит разработчикам создавать множество новых возможностей поверх Flutter. Под всем этим скрываются низкоуровневые графические API Vulkan и Metal 3D для Android и iOS. В настоящее время команда сосредоточила свою работу на мобильных устройствах, хотя многие из этих новых графических возможностей также должны работать на macOS и Windows. «Наша общая модель для Flutter — использовать его везде, где можно рисовать пиксели», — сказал Снит.

Говоря о повсеместном внедрении Flutter, еще одна новая функция, которую команда рассматривает, — это добавление элементов. Для веб-разработчиков это означает, что они могут использовать это, чтобы легко встраивать контент Flutter с помощью элемента.

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

Команда также работает над новым пакетом, который обеспечивает лучшую совместимость JavaScript и Dart, а также над новыми инструментами, которые позволят Flutter более легко вызывать системные API на Android и iOS. У меня уже была такая возможность раньше, но чтобы заставить ее работать, нужно было написать много стандартного кода для разработчиков.



Забегая вперед, команда также начинает свои первые попытки создать Flutter на WebAssembly. Учитывая, что ажиотаж вокруг этого двоичного формата быстро растет, а поддержка браузеров и серверных инструментов совершенствуются, неудивительно, что команда Flutter также заинтересована в этой технологии. По большей части, речь идет о получении дополнительной производительности от Flutter, объяснил Снит. «Dart транспилируется в очень тщательно скомпилированный код JavaScript, но это все еще код JavaScript, поэтому он будет загружаться и интерпретироваться, и нам кажется, что WebAssembly ускорит загрузку, уменьшит размер и мегабайты. передается по кабелю. Звучит интересно», — сказал он. «Возможность WebAssembly, как в Интернете, так и за его пределами, состоит в том, чтобы стать этим новым видом переносимого языка общения. Мне нравится идея, что мы можем взять и использовать другой код на других языках и в WebAssembly».

Комплект ClockworkPi DevTerm Kit на основе RISC-V.

Что касается RISC-V, бесплатной архитектуры микросхем с открытым стандартом, которая также начинает набирать обороты в отрасли, Снит отметил, что еще слишком рано (хотя он сказал, что ему очень понравилось играть с ClockworkPi на основе RISC-V). . DevTerm Kit), но считает, что поддержка этой архитектуры может открыть новые платформы для Flutter, особенно в сфере встраиваемых систем. Поскольку команда Google Android также инвестирует в эту архитектуру, определенно стоит следить за тем, что Google делает здесь, даже если количество разработчиков, специально нацеленных на эту архитектуру, безусловно, все еще довольно мало.

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