26.01.20234 min
Maciej Olanicki

Maciej OlanickiRedakcja Bulldogjob

Google stawia na Fluttera i zapowiada ogrom nowości, także w Darcie

Sprawdź, jakie zmiany przygotowuje Google dla użytkowników Fluttera. Trzeba przyznać, że jest na co czekać.

Google stawia na Fluttera i zapowiada ogrom nowości, także w Darcie

Przy okazji opublikowania najnowszej wersji Fluttera, Google podzieliło się informacjami na temat przyszłości tak samego frameworka, jak i języka Dart. Trzeba przyznać, że plany są ambitne i w przypadku obu przedsięwzięć można z dużą pewnością już teraz stwierdzić, że nie spotka ich los systemu FuchsiaOS, projektu, który na fali rekordowych zwolnień został pozbawiony 16% programistów pracujących nad systemem. Wręcz przeciwnie, wygląda na to, że Flutter i Dart to konie, na które chce postawić Google w najbliższym czasie.

Spore nowości we Flutterze

Flutter ma być rozwijany w czterech „nowych” kierunkach. Cudzysłów nie bierze się tu ze złośliwości, po prostu w części z nich mowa raczej o ewolucji już wcześniej eksplorowanych ścieżek, lecz ze ściślej wyznaczonym celem, nie zaś o obranie całkiem nowego azymutu. Pierwszy z nich – jak przystało na framework służący do opracowywania interfejsów – zakłada intensywny rozwój technologii związanych z możliwościami renderowania i wydajnością przygotowanych z użyciem Fluttera interfejsów.

Przykładem nowego-starego kierunku jest dalszy, choć można odnieść wrażenie, że zintensyfikowany, rozwój silnika renderowania Impeller. Kolejna generacja ma pozwolić między innymi na prerenderowane cieniowanie (a to przełoży się na zwiększenie liczby klatek na sekundę), oraz szersze wykorzystanie możliwości silników Vulkan i Metal oraz niskopoziomowych API zarówno na Androidzie, jak iOS-ie. Wszystko to ma się przełożyć na dramatyczny wzrost wydajności interfejsów. Już dziś dostępne dema pokazują, że w szczególnych przypadkach, kiedy Flutter radził sobie beznadziejnie (scenariusz dema zakłada przewijanie przygotowanego w SVG kalejdoskopu), tj. wyświetlał interfejs w 7-10 klatkach, w wersjach testowych osiąga stabilne 60 klatek.

Ponadto, choć Google zaznacza, że dopiero rozpoczyna prace w tym obszarze, Flutter zostanie wzbogacony w obsługę grafiki 3D. Podczas prezentacji dokonano importu trójwymiarowego obiektu przygotowanego w Blenderze, który w interfejsie aplikacji mobilnej można było płynnie i bez „przycinek” manipulować: oglądać z różnych, przybliżać i oddalać. Po imporcie model, nie był już pobierany z zewnątrz, z Blendera, lecz renderowany na bieżąco przez Fluttera. Trzeba przyznać, że robi to wrażenie, choć na stabilną wersję Fluttera z obsługą grafiki 3D jeszcze się pewnie naczekamy.

Integracja i nowe platformy

Kolejnym priorytetem w dalszym rozwoju Fluttera ma być eksploracja możliwości, jakie dają relatywnie nowe tzw. technologie. Chodzi tu przede wszystkim o WebAssembly, która rzeczywiście ma szansę zmienić to, jak renderowane są, i w ogóle jak działają, aplikacje webowe. Przejawia się to nie tylko w ścisłej współpracy Google z zespołami odpowiedzialnymi za rozwój m.in. WASM (dziś obsługa WebAssembly jest już dostępna jako eksperymentalna flaga w Chrome), ale także na zapewnieniu możliwości kompilowania z Fluttera bezpośrednio do WebAssembly. To faktycznie może otwierać drogę do ogromnych wzrostów wydajności.

Nie samym oprogramowaniem jednak żyje człowiek i twórcy Fluttera zapowiadają kompatybilność z kolejną platformą sprzętową, a konkretniej procesorami o architekturze RISC-V. Flutter jest kompatybilny z RISC-V od dzisiaj i choć zapewne wiele wody upłynie, zanim zaczniemy korzystać z urządzeń konsumenckich z takimi procesorami (o ile kiedykolwiek dojdzie do tego na większą skalę), to trzeba przyznać, że o RISC-V przebąkuje się coraz częściej. Na rynku pojawiły się już nawet pierwsze, rzecz jasna niszowe, laptopy wykorzystujące takie układy. U zmierzchu x86, a bez większych wątpliwości można dziś powiedzieć, że z tym mamy już od jakiegoś czasu do czynienia, każdy przejaw pluralizmu w postaci konkurencji dla procesorów ARM będzie mile widziany.


Flutter ma także w dalszym ciągu zacierać granice pomiędzy oprogramowaniem mobilnym i aplikacjami webowymi. Tutaj mamy już do czynienia z trzecim filarem, czyli ułatwianiem i umilaniem życia samym developerom. Dobrym przykładem takiego udogodnienia są eksperymenty z możliwością osadzania elementów w środowisku przeglądarkowym. Google pracuje nad tym, aby do zwykłego HTML-owego znacznika <div> można było przypisać, zupełnie jak inne parametry, elementy z Fluttera, które później będą wyrenderowane jak zwykły HTML, CSS i JS. W demie zaprezentowano przykład, w którym stan treści z Fluttera był dynamicznie zmieniany za pomocą HTML-owego przycisku i JS-owego event handlera.

Dalszy rozwój Darta

Ostatnią składową dalszego rozwoju Fluttera, także nakierowaną ściśle na wygodę i możliwości developerskie, jest rozwój języka Dart. Wspomnieliśmy już, że zapewniono jego kompatybilność z RISC-V, ale na tym nie koniec. Google pracuje nad także nad zapewnieniem dalej idącej interoperacyjności pomiędzy poszczególnymi systemami operacyjnymi. Dzięki temu docelowo, bez potrzeby stosowania jakichkolwiek wtyczek czy rozszerzeń języka, możliwe będzie wywoływanie bibliotek charakterystycznych dla danego mobilnego systemu operacyjnego, np. androidowego Jetpacka napisanego w Kotlinie czy wykorzystywanych na iOS-ie bibliotek napisanych w Swificie. 

Na tym nie koniec. Zaprezentowany właśnie Dart 3 wprowadza do języka rozszerzenie mechanizmu null safety, znanego już wcześniej. Sprawia on, że zmienne w Darcie domyślnie nie mają wartości null. W nowej wersji języka wprowadzono zaś zasadę sound null safety oznaczająco to, że poza nielicznymi wyjątkami (np. wykorzystanie operatora !), wyrażenie, które ma statyczny typ, który nie dopuszcza wartości null, zawsze będzie miało gwarancję, że po wykonaniu, nie uzyska wartości null. W takim procesie nigdy nie dojdzie do wystąpienia wyjątku.

Flutter prze do przodu

Rzecz jasna to tylko najważniejsze z zaprezentowanych nowości i ich rozwinięcia możemy się spodziewać w ciągu nadchodzących miesięcy. Pracy jest sporo, co poniekąd gwarantuje bezpieczeństwo, że projekt – w przeciwieństwie do wspomnianej Fuksji – będzie prężnie się rozwijał. Zapewnienie kompatybilności z nowymi platformami, dość prężny rozwój Darta i dalsza rozbudowa możliwości oraz optymalizacja renderowania pokazuje, że przyszłość Fluttera jest w Google traktowana na poważnie. Zwłaszcza że z użyciem frameworka do dziś opracowano ponad 700 tys. aplikacji.

<p>Loading...</p>