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.

Ethereal spider web in soft light showcasing the intricacy of its design.
Photo by chivozol on Pexels

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.

Close-up of vibrant HTML code displayed on a computer screen, showcasing web development and programming.
Photo by Pixabay on Pexels

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.

A woman typing on a laptop, sitting on a sofa in casual attire, viewed from above.
Photo by Pixabay on Pexels

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.