Flutter w aplikacjach mobilnych. Co musisz wiedzieć, decydując się na tę technologię?

Artur Ozierański

07-05-2021
Flutter w aplikacjach mobilnych. Co musisz wiedzieć, decydując się na tę technologię?

Zdarza się, że firma potrzebuje aplikacji mobilnej, ale ani budżetu, ani czasu nie ma w nadmiarze. Nic straconego – z pomocą przychodzi bowiem Flutter, z którym zbudujemy aplikację cross-platformową. Dlaczego nie React Native? Flutter szybciej ładuje widoki i na dodatek przeżywa teraz okres dynamicznego rozwoju. Choćby dlatego warto zapoznać się z nim bliżej.

Czym jest Flutter?

To zestaw narzędzi z SDK, który pozwala budować aplikacje mobilne, webowe i desktopowe. Stworzył go Google i udostępnił w ramach projektu open source. Flutter często służy do tworzenia aplikacji cross-platformowych, działających i na systemie iOS, i na Androidzie.

Holdapp tworzymy aplikacje mobilne od 2012 roku i z naszego doświadczenia wynika, że rosnąca popularność Fluttera wiąże się też z wysoką wydajnością tej technologii. Dzięki niej byliśmy w stanie zbudować aplikacje na dwie platformy w podobnym czasie, w jakim zbudowalibyśmy aplikację natywną na tylko jedną platformę. Ponadto Flutter nadaje się zarówno do prototypowania, jak i finalnej implementacji projektu.

Z biznesowego punktu widzenia ważne jest to, że stanowi on tańszą alternatywę dla rozwiązań natywnych zamiast dwóch aplikacji wystarczy zbudować jedną. To zajmuje mniej czasu, angażuje tylko jeden zespół specjalistów, a przy tym jest mniej obciążające dla budżetu. Nie oznacza to jednak, że ta technologia nie ma żadnych wad. Co jeszcze warto o niej wiedzieć?

Dostęp do natywnych rozwiązań

Flutter umożliwia łączenie technologii cross-platformowej z natywną. Dzięki temu aplikacje mogą mieć dostęp do systemowych komponentów. W rezultacie użytkownik swobodnie korzysta np. z aparatu, odtwarzacza muzyki, połączeń Bluetooth lub nadajnika GPS.

Należy przy tym pamiętać, że działanie tych funkcji nie będzie tak płynne, jak w przypadku aplikacji natywnych. Poza tym dostosowanie aplikacji do każdej platformy wydłuży czas realizacji projektu i zwiększy jego ostateczny koszt. A im więcej takich funkcji się pojawi, tym bardziej opłacalna będzie budowa aplikacji natywnej. W takich przypadkach zwykle zalecamy klientom wybór tej ostatniej opcji.

Kiedy jeszcze natywne rozwiązania mogą okazać się lepsze?

W porównaniu z natywnymi technologiami, Flutter daje dostęp do mniejszej liczby bibliotek i gotowych rozwiązań, co w przypadku niektórych projektów oznacza dłuższy proces realizacji.

Ponadto architektura kodu we Flutterze jest uproszczona w stosunku do rozwiniętych architektur używanych w programowaniu natywnym. Może to utrudniać utrzymanie bardziej złożonych projektów. Zwłaszcza, że czasami niewielkie problemy w kodzie natywnym okazują się poważnymi przeszkodami w rozwiązaniach cross-platformowych. A to pociąga za sobą koszty.

Popularna technologia, mniej popularny język

Flutter bazuje na języku Dart, o którego istnieniu wielu dowiedziało się właśnie dzięki technologii Google’a. To jedna z większych różnic pomiędzy Flutterem, a jego głównym konkurentem, czyli platformą React Native. Ta ostatnia opiera się na JavaScripcie, czyli języku dobrze znanym wśród programistów, którzy nie muszą dodatkowo się go uczyć, by budować aplikacje cross-platformowe. W rezultacie łatwiej znaleźć eksperta specjalizującego się w tworzeniu aplikacji na bazie technologii React Native.

Z drugiej strony Dart to dość intuicyjny język o przejrzystej składni. Przypomina Javę, dlatego osoby, które potrafią się nią posługiwać szybko nabiorą wprawy w korzystaniu z Darta. A warto, ponieważ Flutter działa szybciej, niż React Native, co pozytywnie wpływa na odczucia użytkowników.

Im szybciej, tym lepiej

Aplikacje zbudowane z pomocą Fluttera potrzebują mniej czasu na ładowanie widoków niż te, które bazują na platformie React Native. Z czego to wynika? W przypadku Fluttera kod w Darcie jest od razu kompilowany do kodu natywnego, dlatego użytkownik szybciej widzi zmiany w aplikacji. Z kolei React Native najpierw musi połączyć się z natywnymi elementami za pośrednictwem mostów, co zabiera więcej czasu.

Szybkość to jeden z ważniejszych powodów, dla których w Holdapp to właśnie Fluttera rekomendujemy naszym klientom, jeśli zależy im na rozwiązaniu cross-platformowym. W biznesie może to dawać istotną przewagę.

Łatwy sposób budowania interfejsu użytkownika

Aby lepiej zrozumieć, jak działa Flutter, trzeba wiedzieć, że pozwala on korzystać z gotowych widgetów do budowy interfejsu użytkownika. Widgety odpowiadają konkretnym elementom UI – są jak puzzle, które trzeba dobrać tak, żeby całość była intuicyjna i funkcjonalna.

Ich wygląd można dostosować do swoich potrzeb i od razu zobaczyć, jak prezentuje się aplikacja. Umożliwia to funkcja Hot Reload, która dodatkowo ułatwia i przyspiesza testowanie. To pozwala skrócić czas realizacji projektu i zaoszczędzić na późniejszych poprawkach. Należy jednak pamiętać, że niestandardowe rozwiązania UI mogą być niemożliwe do realizacji bądź bardzo kosztowne.

UI z elementami natywnymi

Chociaż aplikacja stworzona we Flutterze nie jest natywna, może tak wyglądać. A to za sprawą szerokiego wyboru gotowych komponentów, również tych charakterystycznych dla iOS i Androida. Oczywiście jeśli pojawiają się nowe komponenty UI dla jednej z tych platform, trzeba trochę poczekać, aż powstaną ich odpowiedniki na Fluttera.

Warto też mieć na uwadze, że jeśli decydujemy się na przystosowanie poszczególnych elementów do każdej platformy z osobna, zajmie to więcej czasu, niż gdybyśmy postawili na taki sam wygląd aplikacji na obu platformach.

Biblioteka Material Design

Godną uwagi alternatywą dla natywnych elementów UI jest gotowy zestaw komponentów Material Design. Ten sam, który jest powszechnie stosowany w wielu aplikacjach, a co za tym idzie, jest też dobrze znany użytkownikom. Material Design jest funkcjonalny i utrzymany w minimalistycznej estetyce. Korzystanie z aplikacji, w której zastosowano ten styl, powinno być więc intuicyjne dla wszystkich.

Brak natywnych elementów UI oznacza też, że aplikacja wygląda identycznie na urządzeniach z system iOS i Android. Wtedy 100% kodu można wykorzystać na obu platformach, a czas potrzebny do budowy aplikacji jest krótszy.

Rozmiar aplikacji – poważna przeszkoda czy detal?

Przeciwnicy Fluttera wskazują, że jego wadą jest duży rozmiar aplikacji. Większy niż w przypadku technologii React Native. Chociaż jest to prawda, nie warto od razu rezygnować z Fluttera. Różnice są nieznacznie i często wynoszą kilka megabajtów. A jeśli naprawdę zależy nam na niewielkim rozmiarze aplikacji, najlepsze i tak będą rozwiązania natywne.

Flutter w szerszej perspektywie

Mając na uwadze wady i zalety Fluttera, musimy pamiętać, że nie ma uniwersalnych rozwiązań, dlatego przy podejmowaniu decyzji o wyborze technologii najlepiej wziąć pod uwagę szereg czynników. Co jest najważniejsze? W Holdapp skupiamy się przede wszystkim na:

– problemie, który ma rozwiązywać aplikacja, 

– kluczowych funkcjonalnościach,

– potrzebach użytkowników,

– planowanym budżecie,

– ramach czasowych projektu,

– analizie konkurencji.

Każdy projekt rozpatrujemy indywidualnie, żeby znaleźć najlepsze rozwiązania.

Jedno jest pewne – to, co Flutter oferuje obecnie, to dopiero początek. Ta technologia ciągle się rozwija. Już teraz, w ostatnim kwartale 2020, Flutter na platformie GitHub ma 105 tysięcy gwiazdek. Dla porównania starszy React Native ma ich 91 tysięcy. Biorąc pod uwagę duże zainteresowanie tym rozwiązaniem, możemy się spodziewać, że wkrótce będzie jeszcze lepiej dostosowane do potrzeb deweloperów i użytkowników aplikacji.

Autor

Artur Ozierański – od ponad 10 lat związany z branżą mobile. Założyciel Holdapp, agencji specjalizującej się w tworzeniu aplikacji mobilnych.

 

Komentarze:

Comments

comments