TGViewer
Flutter Pulse Flutter Pulse @flutterpulse · 1.01K subscribers
Post #3117 227
Попробуйте Flutter Web с WebAssembly Week

Flutter Web официально переходит на WebAssembly. Команда Dart провела «Неделю тестирования» (17–21 августа), чтобы помочь разработчикам мигрировать проекты и собрать обратную связь. Это не просто эксперимент: Wasm уже стабилизирован с версии Flutter 3.22 и становится новым стандартом для высоконагруженных веб-приложений.

Почему это важно? Потому что JavaScript часто упирается в потолок производительности при сложной анимации. WebAssembly решает эту проблему, обеспечивая нативную скорость выполнения кода прямо в браузере.

📊 Реальные цифры впечатляют. На MacBook Pro M4 Pro тесты показали:
✅ Время отрисовки кадров сократилось с 34.5 мс до 17.4 мс.
✅ Частота кадров стабильно держится на 60 FPS (в JS было проседание до 30 FPS).
✅ Сборка виджетов стала быстрее в 2.5 раза (с 29.3 мс до 11.4 мс).
✅ Дрожание кадров (jitter) уменьшилось более чем в 3 раза.

💡 Архитектурный прорыв. Ключевую роль играет skwasm — технология, которая переносит растеризацию графики на отдельный Web Worker. Основной поток браузера освобождается для обработки пользовательских событий, что делает интерфейс отзывчивым даже под высокой нагрузкой.

🔧 Инженерные детали. Компилятор dart2wasm работает в связке с WasmGC (системой сборки мусора WebAssembly). Это позволяет эффективно управлять памятью и ускорять сложную логику UI. Для проверки этих метрик на своем железе доступна интерактивная демонстрация, где можно сравнить Wasm и JS в реальном времени.

⚠️ Но есть подвох. Пока dart2js (JavaScript) остается компилятором по умолчанию. Причина проста: экосистема пакетов на pub.dev еще не готова. Многие библиотеки используют устаревшие dart:html и dart:js, которые несовместимы с Wasm.

🚀 Что делать разработчику?
1. Обновить Flutter до версии 3.47 (содержит оптимизации WasmGC).
2. Заменить старые зависимости на package:web и использовать dart:js_interop.
3. Настроить заголовки сервера: COEP: credentialless и COOP: same-origin.
4. Собрать проект командой flutter build web --wasm.

Анализ показывает, что 58% существующих Flutter-приложений могут быть скомпилированы в Wasm без единой строчки изменений в коде. Если ваш проект попадает в эту категорию — миграция займет минимум времени.

Цель кампании — сделать Wasm компилятором по умолчанию. Для этого сообществу нужно тестировать свои приложения, фиксировать проблемы с зависимостями и делиться метриками. Чем больше проектов перейдет на Wasm, тем быстрее экосистема догонит.

🔗 Полезные ссылки
Документация по WebAssembly на Flutter Web
Руководство по развертыванию веб-сайтов
FAQ по веб-технологиям Flutter

🔗 Полезные ссылки
💻 flutter-wasm-compare
📚 pub.dev
📚 WebAssembly на Flutter Web
📚 Переход к package:web современному взаимодействию с JavaScript

📰 Читать оригинал на Habr

FlutterPulse — канал о мире Flutter!

#flutter #dart #flutterpulse #flutterpulsehabr
  • 👍 1
More from @flutterpulse
  1. Sep 29, 2026Добавляем 3D в игру на Flame, не переписывая её 3D-графика в 2D-играх без переписывания ко…
  2. Sep 29, 2026Обновлённые пакеты за последние 24 часа liquid_glass_widgets 1.8.0 Пакет для эффекта «жидк…
  3. Sep 29, 2026photo post
  4. Sep 28, 2026Обновлённые пакеты за последние 24 часа lightweight_barcode_scanner 1.0.0 Лёгкий офлайн-ск…
  5. Sep 28, 2026photo post
  6. Sep 28, 2026Обновлённые пакеты за последние 24 часа adaptive_video_player 1.3.3 Пакет для воспроизведе…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →