Flutter - skuteczne wsparcie dla Twórców aplikacji biznesowych

Flutter jest wśród developerów coraz bardziej popularną technologią. Marcin Ochyra, lider działu mobile w Ideo, opowiada z czego wynika ta popularność.

Flutter development

Flutter to framework, który w oparciu o jedną bazę kodu źródłowego umożliwia tworzenie aplikacji natywnych zarówno dla Androida, jak i dla iOS. Skraca i upraszcza proces projektowania aplikacji, obniża koszty, ułatwia testowanie, utrzymanie i aktualizację. Przy tym wszystkim zapewnia także wysoką wydajność tworzonych aplikacji.

Jeśli nadal zastanawiasz się, czy użyć Fluttera w swoim następnym projekcie, przeczytaj co na ten temat sądzi nasz ekspert Marcin Ochyra.

Pracujesz w środowisku mobile już jakiś czas. W trakcie Twojej pracy przewinęło się pewnie kilka różnych technologii tworzenia aplikacji mobilnych. Opowiedz proszę jak wyglądała ta droga?

Na początku były technologie natywne, czyli oddzielnie pisało się aplikacje dla Andoida i iOSa. Potem pojawiły się frameworki, które pozwalały na napisanie jednego kodu, w oparciu o który generowana była aplikacja hybrydowa, która działała na wielu platformach. Z czasem na rynku pojawił się także React Native, który do tego czasu jest ciągle popularny, chociaż ostatnio to właśnie Flutter zyskuje coraz większe grono swoich zwolenników.


Patrząc z perspektywy developera, czym Flutter się wyróżnia? Dlaczego właśnie on, a nie jakaś inna technologia?

W tym przypadku najlepiej będzie porównać Fluttera z React Native. Różnią się one między sobą tym, że przede wszystkim React Native korzysta z natywnych elementów każdej z platform, czyli odwołuje się do kodu natywnego platformy i dany element jest wyświetlany. Przykładowo, jeżeli chcemy wyświetlić tekst, to tak naprawdę wyświetlany jest natywny element interfejsu użytkownika z danej platformy.

Natomiast we Flutterze jest zaimplementowany silnik graficzny Skia, który odpowiada za renderowanie całej aplikacji mobilnej, więc tutaj nie łączymy się z kodem natywnym, tylko Flutter sam zajmuje się rysowaniem całego interfejsu. Dlatego Flutter jest ogólnie szybszy od React Native, jeżeli chodzi o elementy związane z interfejsem użytkownika.
 

Flutter jest technologią stosunkowo młodą, jednak istniejącą już od jakiegoś czasu na rynku. W którym momencie, i co sprawiło, że stwierdziłeś – to jest ta technologia, którą chcę się zająć?

Kiedy pojawił się Flutter, to zainteresował mnie tym, że jest wykorzystywany w nim język Dart, który jest bardzo podobny do wszystkich innych języków programowania i jest bardzo zbliżony do Java Scriptu. Również jest jednowątkowy i asynchroniczny, dlatego bardzo łatwo było się na niego przesiąść i po prostu spróbować jak działa w praktyce. Dalej było już z górki.


Co takiego skradło Twoje serce i sprawiło, że zajmujesz się w tym momencie tylko Flutterem?

Przede wszystkim społeczność, która wokół niego cały czas rośnie. Sam Flutter dynamicznie się rozwija, na co wpływ ma niewątpliwie społeczność zgromadzona wokół niego.

Pojawia się bardzo wiele konferencji z nim związanych, organizowanych jest bardzo dużo meetup’ów. Dzięki temu możemy stosunkowo łatwo poszerzać swoją wiedzę. Możemy nawet spotkać się z osobami, które biorą udział w rozwoju popularnych rozszerzeń do Fluttera, czy nawet samego Fluttera.


Dla kogoś kto jeszcze tego nie wie lub dopiero zaczyna - czym Flutter różni się od innych platform?

Tak naprawdę Flutter jest podobny do React Native w swoich założeniach, jeżeli chodzi o tworzenie interfejsu. We Flutterze interfejsy tworzymy przy pomocy widżetów, natomiast w React Native tworzymy je z komponentów. Tak naprawdę są to klocki, które układamy, zagnieżdżamy w sobie i dzięki temu budujemy interfejs użytkownika.


Czy tutaj to zagnieżdżanie klocków w klockach, widżetów w jakiś sposób coś narzuca lub wręcz ogranicza twórcę?

Nie, nie jest to ograniczenie. Tak naprawdę możemy tworzyć swoje własne widżety bazując na innych widżetach, jak również pisząc je od zera.

Mamy możliwość pełnej kontroli nad różnymi animacjami, możemy w tym zakresie tworzyć bardzo bogaty YouWave. Flutter wykorzystuje własny silnik graficzny, dzięki czemu animacje są bardzo płynne. Mamy tutaj gwarancję 60 klatek na sekundę więc naprawdę nie tracimy na wydajności, nawet tworząc bardzo rozbudowane animowane YouWave.


Z jednej strony mamy gotowy zestaw elementów. Z drugiej strony bardzo dużą dowolność, jeśli chodzi o dopisywanie nowych albo modyfikowanie już istniejących elementów...

Pomimo tego, że mamy przygotowany zestaw klocków/widżetów , mamy również pełną dowolność tworzenia własnych rozszerzeń. Możemy je następnie opublikować na oficjalnym repozytorium paczek- pub.dev, z których każdy potem może skorzystać. Możemy również zaprosić inne osoby do rozwijania naszego projektu.

Dodatkowo nie tylko mamy możliwość tworzenia widżetów, ale również rozszerzeń, które korzystają z natywnego kodu danej platformie. Na przykład korzystają z różnego rodzaju czujników w urządzeniu, wyświetlają WebView, czyli zawartość strony internetowej, czy komunikują się przez bluetooth. Możliwości są praktycznie nieograniczone.


Mówisz o tych rozwiązaniach tak, że wydaje się iż Flutter jest jedną z lepszych platform do tworzenia rozwiązań hybrydowych. Gdybyśmy jednak mieli porównać, to w czym jest gorszy od rozwiązań natywnych?
 

Wydaje mi się, że nie można powiedzieć, że jest gorszy, ponieważ możemy stworzyć kod, który jest potem skompilowany do kodu natywnego danej platformy więc działa porównywalnie szybko. Może jest troszkę wolniejszy od rozwiązań natywnych, bo jednak na jakimś etapie musi się skomunikować z tą natywną platformą. Jednak jeżeli chodzi o sam interfejs użytkownika, jest on bardzo szybki i bardzo płynny, dlatego tutaj nie zauważymy żadnych różnic.

Jeśli chcemy zaimplementować natywną funkcjonalność, a nie znajdziemy odpowiedniego rozwiązania w repozytorium, to możemy napisać kod natywny dla każdej z platform z osobna.


Czyli to nie jest tak, że jeśli trafię na sytuacją “podbramkową” to jednak muszę stworzyć aplikację natywną?

Tak, dokładnie. Możemy napisać sobie dane rozszerzenie, które będzie obsługiwało konkretną funkcjonalność. Bardzo ciekawe jest również to, że w swojej obecnej aplikacji natywnej, na Androida lub iOSa, możemy umieszczać aplikację stworzoną we Flutterze. Czyli z naszego kodu natywnego możemy otwierać widoki z Fluttera i w drugą stronę, we Flutterze możemy otwierać i zagnieżdżać widoki z platform natywnych.


Czy w takim razie jest jeszcze w ogóle sens tworzenia aplikacji natywnych?

To zależy jakie zadanie ma spełniać dana aplikacja. Przykładowo, jeżeli nie zależy nam na tworzeniu aplikacji obsługującej kilka systemów, to wówczas warto skupić się na jednej platformie i korzystać z funkcji natywnych. Natomiast jeżeli piszemy aplikację, która ma wspierać wiele platform, wówczas najlepiej jest się skupić na czymś co wspiera kilka platform. Dzięki takim działaniom zaoszczędzimy czas na etapie projektowania i tworzenia aplikacji, ponieważ piszemy tylko jeden kod, który jest uruchamiany na wielu systemach.


Tak jak powiedzieliśmy, Flutter cały czas dynamicznie się rozwija. FIstotne jest to, że nie ogranicza się tylko i wyłącznie do urządzeń mobilnych - smartfonów, ale również możemy go wykorzystywać do innych ekranów. Jak w tym zakresie widzisz dalszy rozwój technologii i dalszy rozwój Fluttera? W którym kierunku może to pójść i na co za chwilę będzie nam pozwalał?

Na początku Flutter był przeznaczony tylko do pisania aplikacji mobilnych, działał tylko i wyłącznie na platformach Android oraz iOS. Od jakiegoś czasu jest już dostępny jako wersja stabilna i możemy pisać nasz kod na platformie web. Możemy tutaj tworzyć np. różnego rodzaju dashboardy na potrzeby aplikacji webowych. W tym momencie, dosłownie parę tygodni temu, Flutter pokazał się w wersji stabilnej, również na system Windows. Dlatego możemy tworzyć również aplikacje na tą platformę,, a także na Mac OS oraz Linux. Flutter docelowo stanie się narzędziem, które będzie umożliwiało tworzenie aplikacji naprawdę na wszystko.


To sprawia, że Flutter staje się bardzo uniwersalnym językiem i za chwile może się okazać, że tak jak pewne powody ściągnęły Cię do tego, żeby skupić się na aplikacjach mobilnych, tak w tym momencie dzięki tej technologii będziesz mógł, jeśli zechcesz, wrócić do tworzenia aplikacji uniwersalnych, niezależnych od urządzenia. Włącznie z lodówkami i telewizorami.

Dokładnie tak, ponieważ współczesne telewizory i lodówki w znacznej mierze posiadają Androida.
Piszemy jeden kod i ta aplikacja działa praktycznie wszędzie.


Czyli “wróżąc z fusów” może okazać się za chwilę, że tworzenie we Flutterze zastąpi nam tworzenie aplikacji we wszystkich innych językach czy platformach?

Niekoniecznie. Zawsze istnieje jakaś potrzeba napisania kodu natywnego, więc natywna platforma ciągle będzie istniała. Flutter będzie taką warstwą interfejsu użytkownika, czyli będzie służył za komunikację z użytkownikiem.

Będzie wyświetlał poszczególne elementy, będzie reagował na interakcje użytkownika i przekazywał dane do platformy natywnej. Chociaż, jeżeli chodzi o komunikację np. z back-endem przez protokół http, to również Dart bez problemu z tym się komunikuje. Obsługuje również system plików.

Napisz do nas. Przeanalizujemy potrzeby Twojego biznesu i podpowiemy skuteczne narzędzia, które pomogą w jego rozwoju.


Z tego punktu widzenia biznesowego, z perspektywy Klienta, na co powinniśmy zwrócić uwagę wybierając technologię, w której zlecamy tworzenie aplikacji mobilnej. Jak podejść do tworzenia tych aplikacji, żeby rzeczywiście dostać taki produkt na jakim nam zależy?

Z punktu widzenia klienta wydaje mi się, że najistotniejszą rolę grają przede wszystkim koszty. Flutter umożliwia nam tworzenie jednego kodu, który działa na wielu platformach. Nie mówię, że ten jeden kod w 100% pokrywa całą aplikację, ponieważ zawsze istnieje jakieś prawdopodobieństwo, że musimy coś zmodyfikować dla danej, konkretnej platformy.

Przede wszystkim musimy weryfikować poprawność działania takiej aplikacji. Flutter wspiera taką funkcję jak Hot Reload, czyli w trakcie pisania i bezpośrednio po zapisaniu pliku błyskawicznie widzimy nasze zmiany na interfejsie. Używając Fluttera zaoszczędzamy więc sporo czasu.


Ułatwia to Klientowi weryfikowanie projektu na bieżąco. Ma dzięki temu możliwość śledzenia czy to co powstaje jest zgodne z oczekiwaniami. Umożliwia to zgłaszanie uwag i ewentualne wprowadzanie poprawek już na etapie tworzenia.

Przede wszystkim jest to spore ułatwienie dla programisty, ponieważ kiedy otrzyma interfejs graficzny aplikacji, który musi zaimplementować, widzi wszystkie swoje zmiany w czasie rzeczywistym. Nie traci każdorazowo czasu na przekompilowanie całego kodu i uruchomieniu aplikacji jeszcze raz. Jest ona wyświetlana w tym samym miejscu, w którym dokładnie została uruchomiona, czyli zachowuje swój stan.


Powiedzmy, że jestem developerem i chciałbym poznać Fluttera, niezależnie od tego czy w ogóle go znam, czy już znam podstawy i chciałbym się dalej rozwijać. Gdzie najlepiej szukać informacji?

Bardzo pomocne są fora, grupy na Facebooku, dlatego warto się do nich zapisać. Możemy również korzystać z różnych kursów, na takich platformach jak np. Udemy. Możemy korzystać także bezpośrednio z dokumentacji Fluttera, która jest przejrzysta i bardzo łatwo pomaga przyswoić sobie działanie samego Fluttera.


Wcześniej powiedziałeś, że mamy dosyć mocno rozwiniętą społeczność Fluttera. Myślę, że jeśli ktoś będzie szukał pomocy, to stosunkowo łatwo jest w stanie ją znaleźć?

Dokładnie tak. Bardzo często są organizowane różnego rodzaju meetup’y, w ramach przede wszystkim GDG, czyli Google Developers Group. Wystarczy śledzić bieżące doniesienia i jesteś w stanie znaleźć naprawdę interesujące spotkania.

W ostatnim czasie np. udało się nawet małej, lokalnej społeczności warszawskiej zorganizować europejską konferencję na temat Fluttera. Przyciągnęła bardzo wiele osób z różnych zakątków świata, nie tylko z Polski czy Europy, ale były również osoby z Argentyny. Były tam również osoby z Google’a, które prowadziły swoje prezentacje, ale również można było się z nimi spotkać i porozmawiać.

Można powiedzieć, że społeczność skupiona wokół Flutter jest bardzo otwarta i chętnie dzieli się wiedzą. Chcąc rozwijać się w tym zakresie - szkoda nie skożystać z tej możliwości.

 

raport_ecommerce_



Może zainteresują Cię także

eFaktury + KSeF. Wymierne oszczędności na wyciągnięcie ręki.

25 maja 2022
Początkiem stycznia 2022 roku ustawodawca umożliwił przedsiębiorcom korzystanie z Krajowego Systemu E-faktur. Właściciele firm mogli dobrowolnie zdecydować, czy chcą wystawiać i przesyłać faktury za pomocą systemu KSeF.

Nowoczesny intranet w 2022 roku

25 lutego 2022
Pandemia i jej skutki wymusiły zmiany także w komunikacji wewnętrznej. Managerowie zaczęli komunikować dwutorowo: do osób, które pracują zdalnie oraz do tych, którzy pozostali w biurze.

Co możemy dla Ciebie zrobić?

×

Klienci o nas