Android czy iOS? Flutter od Google'a pokazuje, że system nie ma większego znaczenia
Google myśli o przyszłości. Firma zaprezentowała właśnie pierwszą stabilną wersję środowiska Flutter, które ma odpowiadać na wyzwania związane z tworzeniem oprogramowania na wiele platform.
Flutter 1.0 został zaprezentowany w tym tygodniu, ale jego historia sięga 2015 r. Wersja alfa została udostępniona zaś w 2017 r.
Czym jest Flutter?
Oddajmy głos Google’owi:
Google zwraca uwagę na wymagający zasobów i kosztowny aspekt wytwarzania oprogramowania, mianowicie na konieczność wielokrotnego budowania tej samej aplikacji na różne platformy.
Flutter - zdaniem giganta - ma zapewniać „natywną szybkość i dokładność przenoszenia” aplikacji pomiędzy systemami. Z drugiej strony celem nie jest zastąpienie aplikacji na Androida i iOS, ale dostarczenie silnika, który można wykorzystać w oprogramowaniu. Google chwali się, że Flutter zapewnia „pixel perfect results”, czyli daje programistom kontrolę nad każdym pikselem wyświetlanym w aplikacji.
Flutter działa w oparciu o architekturę ARM, wykorzystuje układ graficzny urządzeń oraz API i usługi systemów mobilnych, w tym natywne elementy interfejsu Androida czy iOS, takie jak choćby UIView w tym ostatnim. Środowisko współpracuje z najważniejszymi narzędziami do tworzenia oprogramowania na systemy mobilne - z Android Studio i Xcode na czele oraz Visual Studio Code i IntelliJ. Programiści mają wgląd do kodu napisanego w Kotlinie lub Javie oraz Swiftcie lub Objective-C.
Flutter oferuje tzw. stateful hot reload, czyli pozwala na wprowadzanie zmian w czasie rzeczywistym bez konieczności każdorazowego odbudowywania kodu.
Aplikacją stworzoną we Flutterze jest Google Ads. Są też inne.
Zarówno wersja na Androida jak i iOS powstała na Flutterze. Google chwali się, że to środowisko wykorzystane zostało również do stworzenia m.in. aplikacji Philips Hue, Groupona, Alibaby czy kultowego Abbey Road Studios.
Flutter to środowisko open source. Google udostępnił jego dokumentację. Powstaje ono ze wsparciem społeczności.
Po co Google’owi Flutter?
Patrząc na ostatnie lata można byłoby stwierdzić, że układ sił na rynku systemów mobilnych został ustalony na długie lata. Android dominuje, iOS jest drugi. Oprócz tych dwóch platform nie ma innych znaczących graczy.
Pamiętajmy jednak, że proporcje udziału Androida do iOS to od kilku lat około 85 do 15 proc. IDC szacuje, że w najbliższych latach ten stosunek się nie zmieni.
Pracując nad Flutterem Google uznał system Apple’a za równorzędny, bo filozofia stojąca za tym środowiskiem to uproszczenie projektowania aplikacji dla wielu platform.
W tym kontekście należy wspomnieć jeszcze o PWA. Progressive Web Apps są pisane w językach webowych i mają działać na dowolnym systemie operacyjnym, nie tylko mobilnym, ale również desktopowym. W przypadku PWA za wspólny mianownik można uznać przeglądarkę. Flutter oferuje jednak inne podejście, zapewnijąc użytkownikowi doświadczenie identyczne jak w aplikacjach natywnych. Co prawda trwają prace nad projektem Hummingbird, który pozwoli na uruchamianie kodu z Fluttera w przeglądarce, ale jednocześnie możemy przeczytać, że jego twórcy są skupieni na zastosowaniach dla urządzeń mobilnych, w myśl zasady mobile-first.