Builder aplikacji mobilnych – przyjazny dla developerów

Od dłuższego czasu oczekiwałem jakiegoś naprawdę solidnego narzędzia NoCode/LowCode do tworzenia aplikacji mobilnych. Dawno temu było AppInventor, ostatnio jest Adalo, które dostało zastrzyk gotówki w wysokości 8 milionów dolarów, a teraz wyszedł w pełnej wersji mój ulubieniec. FlutterFlow. Builder aplikacji mobilnych oparty o standardowe komponenty Flutter’a. Posiada integrację z GitHubem. Bezpośrednio w narzędziu podłączysz backend w formie Firebase Firestore. Zobacz jak w trzy roboczodni zbudujesz aplikację mobilną dla androida i ios, razem przechowywaniem danych w chmurze.

Builder aplikacji – Dla małych projektów

Najlepsze przedstawienie możliwości narzędzia, to stworzenie w nim jakiegoś projektu. Tak się składa, że kiedyś Tata poprosił mnie o wykonanie aplikacji do zarządzania stanem hali produkcyjnej. Pokrótce ta aplikacja ma umożliwiać dodawanie produktów, ich wariantów no i możliwość zmiany ich aktualnej ilości na hali. No projekt prosty. Ale zaprogramowanie tego, wraz z backendem zajmuje masę czasu, Wiem bo do pracy licencjackiej robiłem ten projekt programując, jakieś 90% było skończone, praca obroniona więc projekt “odłożyłem na potem”. Czyli go nie kontynuowałem. Decyzja też niegłupia. Generalnie utrzymywanie takiego projektu pochłaniałoby sporo czasu, a to tylko mały projekt dla kilkunastu osób.

Firebase w narzędziu FlutterFlow
Ekran listy z danymi z FireStore

Z tych też powodów, gdy teraz odkryłem FlutterFlow, to zdecydowałem się stworzyć ten projekt ponownie, od zera. Dzięki tej decyzji, nie muszę posiadać serwera, nie potrzebuję programować widoków, generalnie nic nie muszę. Moje programowanie ograniczyło się do zaimplementowania ze trzech pomniejszych “ficzerów” i paru poprawek.

Współpraca z kodem generowanym przez to narzędzie nie jest idealna, brakuje jakiegoś wbudowanego rozdziału widoków od funkcjonalności. Taki rozdział zapobiegłby nakładaniu się zmian stworzonych w builderze z tymi zakodowanymi przez nas. Nie jest jednak tak źle jak mogłoby się wydawać, śmiem rzec, że wciąż jest całkiem dobrze. A to dzięki integracji FlutterFlow z githubem. Ta drobna, aczkolwiek zbawienna funkcjonalność ratuje to narzędzie w oczach developerów. To dzięki temu, wszystkie powstałe konflikty kodu mogą być naprawione w pięciominutowej sesji rozwiązywania konfliktów (przynajmniej w Intellij jest to bezproblematyczne).

I co ważne dla małych projektów operujących głównie na danych (takie typowe CRUDowe apki) – jest wbudowana integracja z FireStore. To praktycznie wyklucza potrzebę własnego back-endu. Definiujesz typy danych, a potem z poziomu buildera ustalasz akcje, które na tych danych operują (np. dodają rekord, usuwają itp.). Oprócz tego można oczywiście tych danych używać w layoutach.

Dodawanie rekordu do Firebase
Dodawanie akcji na kliknięcie

Builder interfejsów – Dla projektów komercyjnych

NoCode zwykle raczej jest domeną developerów niezależnych, którzy za wszelką cenę chcą zaoszczędzić na czasie przy tworzeniu swoich projektów. I bardzo dobrze, dla nich FlutterFlow też się jak najbardziej nada. W tym przypadku jednak, narzędzie to sprawdzi się równie dobrze w większych firmach. A to czemu? FlutterFlow nie przywiązuje do siebie na siłę! W każdym momencie możesz porzucić to narzędzie i kontynuować projekt tylko programując. Jest to ogromny plus i wyróżnienie na tle pozostałych narzędzi. Które starają się za wszelką cenę zatrzymać nas przy subskrypcji ich narzędzia. Wygenerowany kod jest w pełni niezależny i bezpiecznie spoczywa na twoim własnym repozytorium.

Builder aplikacji mobilnych flutterflow
Opcje projektowania interfejsu

A co z funkcjonalnością, dlaczego takie korpo miałoby skorzystać z FlutterFlow? Bo w żaden sposób nie zamyka ścieżek rozwoju aplikacji. Co sobie wymyślisz, to możesz zrobić. Jeśli nie w samym FlutterFlow to z poziomu kodu. Ale jaki z tego pożytek skoro i tak muszę programować? Otóż ogromna oszczędność czasu na tworzeniu UI. Komunikacja między ludźmi to spore ograniczenie i marnowanie czasu. Zamiast pierw tworzyć design w Adobe XD czy Figmie, grafik może go zrobić od razu we FlutterFlow. W ten sposób grafik będzie dobrze znał ograniczenia platformy i od razu będzie projektował layout, który zostanie wyeksportowany prosto do projektu. Bez żadnych spotkań, obgadywania szczegółów interfejsu itp. Programista robi to co najlepsze – programuje logikę biznesową.

Dodatkowo ten Builder aplikacji możemy zintegrować z własnym REST Api. Opcja ta jeszcze nie jest jakoś bardziej rozbudowana, ale powinna wystarczyć do podstawowych zastosowań. W innych przypadkach musimy sięgnąć do IDE.

Jak współpracować z kodem generowanym?

Przy generatorach kodu zawsze powstają pytania, czy będzie on dobrej jakości? Jak się w nim odnaleźć? Jak z nim współpracować? Sam kod nie jest zły, widoki zdarzają się dosyć rozbudowane, bo nie są dzielone na osobne komponenty, ale da się w nim odnaleźć. No ale generalnie nie będziemy dużo współpracować z tym kodem. Głównie podpinać własne funkcjonalności i dane. A jak już przy tym jesteśmy to przejdę od razu do współpracy z kodem.

Przykładowy kod z użyciem własnej funkcjonalności

Najważniejsza zasada to: im mniej Twojego kodu w plikach generowanych przez FlutterFlow tym lepiej. Gdy FlutterFlow pushuje do swojego brancha to poprostu nadpisuje kod jaki tam był uprzednio. Kiedy robisz merge musisz rozwiązywać konflikty właśnie tych zmian zrobionych przez narzędzie z tymi własnymi. Więc umieszczaj tam tylko kod, który jest absolutnie wymagany. Czyli podpięcie z BLoC’iem, Cubitem czy inną warstwą architektury, wywoływanie na niej akcji i przypisanie danych z niej zwróconych do widoków.

Sam korzystam z Cubit’ów, bo są małymi porcjami kodu, których łatwo użyć w tak generowanym kodzie.

Podsumowanie – czy to najlepszy builder aplikacji?

FlutterFlow to chyba najlepszy Builder aplikacji dla developerów. Umożliwia generowanie kodu, integracje z github, ingerowanie w wygenerowany kod i dopisywanie własnych funkcjonalności. Największy potencjał w tym narzędziu widzę w wyeliminowaniu podwójnego tworzenia interfejsów – pierw przez grafika, a potem przez developera. Cena nie jest najniższa, bo 30$ w wersji udostępniającej kod do skopiowania i 70$ miesięcznie w wersji z integracją z github. Jest to jednak cena jak najbardziej do zaakceptowania – zważając na możliwość odejścia od tego narzędzia w każdej chwili no i czas zaoszczędzony dzięki niemu.

Dołącz do wydajnych programistów

Dołącz do newslettera i dowiedz się jak stać się wydajnym programistą. Mięsa nie ma, ale sztuczki i narzędzia NoCode oraz LowCode do zastosowania w twoich projektach na pewno się znajdą.

Zapisz sie do newsletteraZbuduj swój startup

Dołącz do newslettera w którym co tydzień otrzymasz informacje o narzędziach NoCode oraz ich wykorzystaniu w tworzeniu oprogramowania. Mięsa nie ma, ale coś ciekawego znajdziesz.

Zapisz się na listę Generuj opisy szybko jak nigdy z Catalogerem

Otrzymuj informacje o rozwoju Cataloger'a i otrzymaj wczesny dostęp do naszego Generatora opisów!