Dziś trochę mała odskocznia od standardowych backendowych tematów. Porozmawiamy sobie o stosunkowo nowym frameworku do tworzenia aplikacji mobilnych ze stajni Google. Framework jak tytuł wskazuje nosi nazwę Flutter.

01. Aplikacje mobilne? Aplikacje natywne? Aplikacje hybrydowe? O co chodzi?
W świecie aplikacji mobilnych istnieje jeden podstawowy problem – dwa systemy operacyjne które dzielą rynek – Android oraz IOS.
W zależności od źródeł, dane różnią się nieco od siebie jednak pokazują dość zbieżny trend:
Widać że Android posiada większość rynku, z wyjątkiem Ameryki północnej, gdzie dzielą rynek mniej więcej po połowie.
Aplikacje na Androida oraz IOS pisane są w różnych językach – oficjalnym językiem w jakim piszemy aplikacje na Androida jest Kotlin (do niedawna była to Java, kotlin jest tak jakby rozwinięciem Javy), natomiast oficjalnym językiem programowania dla IOS jest Swift (podobna historia jak w przypadku Androida, do niedawna oficjalnym językiem był Objective C – na nim wyrósł Swift).
Tu jest sedno problemu – jeśli chcemy wdać aplikację na oba systemy, „musimy” (nie do końca musimy, ale o tym za sekundę 😉 ) napisać oraz utrzymywać dwa kody źródłowe. Jeden dla Android, jeden dla IOS. Jest to dość problematyczna sprawa. Musi być jakieś lepsze rozwiązanie prawda? No i jest 😊
02. Aplikacje Hybrydowe
Próbą rozwiązania tego problemu są „aplikacje hybrydowe” – piszemy z użyciem jakiegoś frameworku jeden kod, który możemy skompilować aby uruchomić na Androidzie oraz na IOS.
Jednym z bardziej popularnych frameworków tego typu jest React Native – tworzony przez Facebook’a od 2015 roku zdobył na GitHubie ponad 70 tysięcy gwiazdek. Innymi frameworkami tego typu są Xamarin czy Ionic.
Flutter jest najnowszym frameworkiem do tworzenia aplikacji zarówna na Androida jak i IOS’a. Flutter jest tworzony przez Google, oraz jest zbudowany o język programowania Dart.
03. Flutter - Zalety oraz wady - okiem backendowca
Zalety:
Natywna kompilacja: Flutter, pozwala nam przy użyciu tego samego kodu tworzyć aplikacje na Androida oraz na IOS – w zasadzie jak każdy frameworkd do aplikacji hybrydowych, Flutter jednak kompiluje kod do kodu natywnego dla danego urządzenia. Podczas gdy inne frameworki wykorzystują „web-view” (opakowaną stronę internetową w aplikację mobilną). Flutter ma tutaj ogromną przewagę wydajnościową. Flutter na tym polu ma znaczącą przewagę wydajnościową.
Szybkość pisania aplikacji: Flutter jest naprawdę bardzo dobrze przemyślany, jest stosunkowo łatwym frameworkiem aby się go nauczyć, próg wejścia jest dość niski. W momencie kiedy poznasz już zasady tu panujące – tworzenie aplikacji będzie naprawdę szybkie!
Tworzenie zaawansowanego interfejsu użytkownika: Flutter pod tym względem naprawdę zaskakuje. Tworzenie przepięknego interfejsu jest zdecydowanie prostsze niż w innych frameworkach. Odwołam się tu do jednej z aplikacji napisanych we Flutterze -> Reflectly. Polecam filmik od samych developerów czemu postawili na Fluttera:
Google jako autor: Google nikomu nie trzeba przedstawiać, jest to gigant technologiczny który ma zaplecze aby zacząć rozwijać zupełnie nową technologię, która może naprawdę zabłyszczeć. Udowodnili to już nie raz.
Wady:
Google jako autor: Ten sam punkt w wadach jak i zaletach to nie jest błąd 😉 Google potrafi robić konkretne rzeczy, jednak wiąże się to z ilością projektów – tworzą ich wiele, niektóre chwytają inne nie. Google jest znane z tego że jeśli dany projekt po X czasie nie zdobędzie odpowiedniej społeczności, Google po prostu projekt zamknie. Jedną z bardziej spektakularnych porażek jest chyba Google+
Młoda technologia: W chwili obecnej Flutter to bardzo młoda technologia, pierwsza wersja została wydana w Grudniu 2018 roku. Wiąrze się to jeszcze z wieloma problemami z jakimi zmaga się każda nowa technologia:

Ponad 5 tysięcy zgłoszonych problemów 😉 Ale Liczba gwiazdek 68 tysięcy robi wrażenie! Mimo wielu zgłoszonych problemów społeczność jest naprawdę ogromna
Podsumowanie
Jako programista backendowy początkowo patrzyłem z przymrużeniem oka na Fluttera – jednak postanowiłem że dam mu szanse. Muszę przyznać szczerze że jest to bardzo przyjemny framework, każdego dnia podoba mi się coraz bardziej! Od jakiegoś czasu myślałem nad własną małą aplikacją mobilną, i stawiam na Fluttera! Co z tego wyjdzie? Zobaczymy 😊