Оригинальная статья: https://medium.com/iecse-hashtag/flutter-for-web-in-2022-a-deep-dive-96cf1b5695a9
Оригинальный текст говорит о глубоком исследовании, но лично мне кажется, что это скорее поверхностное исследование.
Кроссплатформенная разработка стала одной из основных тенденций последних нескольких лет. Без сомнения, большинство разработчиков полны энтузиазма относительно кроссплатформенной экосистемы, а Google в этом направлении представила свой UI-фреймворк — Flutter.
Однако расширение поддержки кроссплатформенных приложений до веба представляет собой значительную сложность, и решение Flutter для этого — Flutter for Web.
Flutter — это кроссплатформенный UI-фреймворк от Google, предназначенный для помощи разработчикам в создании мобильных приложений, максимально близких к нативным, высокопроизводительных и привлекательных. Однако цель Flutter — создание пользовательских интерфейсов для каждого устройства, а не только для мобильных устройств.
Поддержка веба в Flutter обеспечивает аналогичный опыт разработки, как и для мобильной платформы, благодаря удобству использования языка программирования Dart, мощному веб-экосистеме и гибкости фреймворка Flutter. Теперь разработчики могут создавать веб-приложения помимо iOS и Android.Поскольку Flutter использует один и тот же фреймворк для iOS, Android и веба, вы можете скомпилировать существующий проект Flutter на Dart прямо в веб-приложение.В этой статье мы рассмотрим текущее состояние Flutter для веба (в сравнении с React, Angular и Vue и другими одностраничными приложениями — SPA-фреймворками), для рабочих станций (в сравнении с Electron и Qt) и будущие возможности совместимости с встраиваемыми устройствами и т.д.
Flutter (для мобильных устройств) имеет собственный движок рендеринга Skia, который предоставляет полный контроль над каждым пикселем экрана для Flutter SDK, обеспечивая высокую точность и скорость.
Для работы в вебе Flutter создаёт HTML-компоненты и использует весь экран как холст для полного контроля над каждым пикселем. Это реализовано с помощью HTML/CSS и JavaScript, что являются современными веб-технологияи. Таким образом, Flutter может использовать все свои функции, такие как анимация и маршрутизация, без необходимости адаптации кода.
Сейчас Flutter полностью совместим с вебом, включая базовый графический слой, построенный поверх традиционных веб-API, и компиляцию Dart в JavaScript вместо машинного кода ARM, используемого в мобильных приложениях. Объединяя DOM, Canvas и WebAssembly, Flutter способна обеспечивать высокое качество и производительность пользовательского опыта на различных веб-браузерах.
**Хорошо, а значит ли это, что Flutter – ещё один фреймворк, пытающийся снизить влияние React и Angular на веб-рынок?**Да, но и нет.
Рассмотрим, что предлагает нам Flutter Web, и попробуем понять этот вопрос через его недостатки.
Преимущества:
60,04% пакетов pub.dev совместимы с вебом.
Итак, это означает ли, что Flutter Web со всеми своими преимуществами станет идеальным инструментом для создания многоплатформенных приложений (включая веб)?
Не совсем, Flutter Web имеет и серьёзные недостатки:
Flutter Web неготов к SEO, что является одной из причин, почему он становится менее подходящим для крупных коммерческих продуктов.
Flutter предоставляет два варианта рендера:
HTML рендер оптимизирует размер загрузки, а не первоначальную производительность.CanvasKit предпочитает высокую производительность и пиксельную точность, но увеличивает размер загрузки более чем на 400%, хотя и значительно повышает производительность.
Примечание: По умолчанию используется автоматический режим, который выбирает HTML для мобильных браузеров и CanvasKit для десктопных.
Если вы хотите протестировать каждый рендер отдельно:
HTML
flutter run -d chrome --web-renderer html
CanvasKit:
flutter run -d chrome --web-renderer canvaskit
Шаги инициализации веба:
Все проекты, созданные начиная с Flutter 2.0, уже имеют встроенную поддержку Flutter Web, поэтому можно использовать следующие команды для инициализации и запуска Flutter Web проекта
flutter create app_name
flutter devices
Команда devices должна выводить по крайней мере:
1 connected device:
Chrome (web) • chrome • web-javascript • Google Chrome 88.0.4324.150
Затем запустите в Chrome:
flutter run -d chrome
Чтобы добавить поддержку веба для более ранних версий Flutter, выполните следующую команду из проектной директории:
flutter create .
Выполнение команды flutter create .
создаст папку с названием "web" и заполнит её необходимыми файлами для работы в вебе.
Кстати, вы не можете редактировать файлы
index.html
иjavascript
.
Код: https://github.com/geekyprawins/Todo-List-App
На текущей стадии использование Flutter Web для удовлетворения всех потребностей в веб-разработке маловероятно, но если вы хотите использовать его для создания веб-приложений, он всё ещё полезен и эффективен:
Flutter Web позволяет разработчикам создавать высокопроизводительные и интерактивные веб-приложения, однако он не подходит для статических веб-страниц.
Flutter Web идеально подходит для одностраничных приложений с анимациями и сложными графическими элементами, если ваш сайт нуждается в продвижении через поисковые системы (SEO), обязательно не используйте Flutter Web (по крайней мере, на текущий момент).Для статических веб-страниц с большим количеством плотного текстового содержимого традиционные методы веб-разработки обеспечивают более высокую скорость загрузки и легче поддерживаются.> В общем, Flutter Web является мощным конкурентом среди всех доступных на рынке фреймворков; как было указано выше, у него есть свои преимущества и недостатки, но он пока не达到了标准水平。→ В общем, Flutter Web является мощным конкурентом среди всех доступных на рынке фреймворков; как было указано выше, у него есть свои преимущества и недостатки, но он пока не достиг уровня стандарта.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )