Ewolucja Fluttera i zmiany w wersji 3.29
Flutter, jako framework do tworzenia aplikacji mobilnych, desktopowych i webowych, nieustannie się rozwija. W wersji 3.29 wprowadzono szereg istotnych zmian, które mają wpływ na sposób budowania aplikacji webowych. Jedną z najbardziej zauważalnych modyfikacji jest usunięcie wsparcia dla flagi --web-renderer, która wcześniej pozwalała programistom wybierać sposób renderowania aplikacji w przeglądarce – między html, canvaskit i auto. Od teraz Flutter domyślnie korzysta z canvaskit, a opcja html została ukryta i docelowo ma zostać całkowicie usunięta.

Konsekwencje dla deweloperów webowych
Zmiana ta wywołała spore poruszenie wśród twórców aplikacji webowych, którzy dotychczas korzystali z renderera HTML ze względu na jego lekkość i kompatybilność z prostszymi projektami. Brak możliwości jawnego wyboru renderera może prowadzić do problemów z wydajnością, szczególnie w aplikacjach, które nie wymagają zaawansowanej grafiki. Dodatkowo, wiele projektów opierało się na konfiguracjach z --web-renderer, co po aktualizacji skutkuje błędami podczas kompilacji i uruchamiania aplikacji.
Nowe podejście do renderowania – WebAssembly i skwasm
Flutter wprowadza alternatywę w postaci WebAssembly build mode, który umożliwia korzystanie z nowego renderera skwasm. Jest to lżejsza wersja canvaskit, zoptymalizowana pod kątem wydajności i renderowania wielowątkowego. W trybie WebAssembly aplikacja może dynamicznie wybierać renderer w zależności od możliwości przeglądarki – jeśli obsługuje WasmGC, używany jest skwasm, w przeciwnym razie następuje fallback do canvaskit. To podejście pozwala na lepsze wykorzystanie zasobów systemowych i szybsze ładowanie aplikacji.

Co oznacza brak wsparcia dla HTML renderer
Decyzja o wycofaniu renderera HTML wynika z jego ograniczeń – brak wsparcia dla wielu funkcji graficznych, problemy z kompatybilnością oraz niższa wydajność w porównaniu z canvaskit. Flutter planuje całkowite usunięcie kodu HTML renderer z silnika, przenosząc go do archiwalnego repozytorium, co pozwoli zainteresowanym deweloperom na samodzielne budowanie silników z jego obsługą. Dla większości użytkowników oznacza to konieczność dostosowania projektów do nowych standardów renderowania.
Jak przygotować się na zmiany
Aby uniknąć błędów i problemów z kompatybilnością, warto zaktualizować konfiguracje projektów, usuwając odniesienia do --web-renderer w plikach launch.json, build.yaml czy skryptach CI/CD. W przypadku aplikacji webowych zaleca się testowanie działania w trybie WebAssembly oraz monitorowanie wydajności renderera skwasm. Dla projektów wymagających lekkiego renderowania warto rozważyć alternatywne technologie lub dostosowanie aplikacji do nowego środowiska Fluttera.

Podsumowanie i rekomendacje
Zmiany w Flutterze 3.29 to krok w stronę nowoczesnego renderowania i lepszej wydajności aplikacji webowych. Choć brak wsparcia dla HTML renderer może być wyzwaniem, nowe możliwości związane z WebAssembly i skwasm otwierają drogę do bardziej zaawansowanych i responsywnych aplikacji. Jeśli potrzebujesz pomocy w dostosowaniu projektu Flutter Web do nowych standardów, oferuję wsparcie techniczne, aktualizację konfiguracji oraz optymalizację renderowania. Skontaktuj się, a wspólnie zadbamy o przyszłość Twojej aplikacji.





