Dobrą praktyką jest analiza rozwiązań pozwalających zaoszczędzić czas i pieniądze. Wiele osób kurczowo trzyma się swoich technologi i nie chce poznawać nowości. Niestety przy takim podejściu wystarczy kilka lat i możemy być daleko w tyle w stosunku do konkurencji.
Dla hybrydowych aplikacji mamy dostępnych kilka możliwości, lecz chciałbym przybliżyć dwie z nich. Mianowicie są to React Native oraz tytułowy Flutter.
Pierwszy z nich stworzony przez firmę Facebook Inc. oparty jest o język JavaScript. Pozwala na dostarczenie oprogramowania jedocześnie na platformy takie jak:
Prężnie rozwijany przez ponad 2 tysiące developerów, wykorzystywany przez ponad 600 tysięcy osób. Sposób stylowania aplikacji jest bardzo zbliżony do tego z CSS. Mamy dostęp do mnóstwa bibliotek co jeszcze bardziej ułatwia tworzenie prostych aplikacji.
Flutter jest dostępny od niedawna. Oparty o język dart, który nie każdemu może pasować. Stworzone aplikacje można uruchomić na platformach:
Posiada ogromną ilość dodatków i bibliotek. Wsparcie dla elementów stylowanych w Material Design a także Cupertino (stylowanie iOS). Tak jak React Native, oparty jest na programowaniu reaktywnym, co pozwala to na renderowanie zawsze aktualnych widoków.
Jeden kod źródłowy dostępny na wiele platform jest kuszącą propozycją pod względem finansowym jak i czasowym. Jeżeli chcemy stworzyć szybko prostą aplikację składającą się z kilku widoków możliwą do uruchomienia na wielu platformach warto przeanalizować Fluttera. Jeżeli mamy do dyspozycji zespół dobrze znający tę technologię to nie ma się nad czym zastanawiać. Jednak jak chcemy sami stworzyć aplikację lub zbudować zespół trzeba rozważyć kilka znaczących kwestii.
Pamiętaj, że czasami problem który chcesz rozwiązać może spowodować wydłużenie czasu realizacji projektu w technologii hybrydowej, czemu? Nie ma złotego środka, nie ma jednej technologii do wszystkiego. Mimo mocno rozbudowanych zasobów Fluttera w postaci bibliotek i dodatków istnieją spore ograniczenia. W niektórych sytuacjach bardziej opłaca się pochylić nad natywnymi rozwiązaniami, szczególnie jak mamy duże doświadczenie w tych technologiach lub sprawny i doświadczony zespół.
Jak już pewnie się domyślasz:
Chodzi tutaj o złożoność czasową, dwie aplikacje natywne nie zajmą tyle samo czasu co 2 aplikacje hybrydowe. Mogłoby się wydawać że tak, wszystko zależy od sytuacji i naszych potrzeb.
Aktualnie nie ma wielu doświadczonych programistów Flutter, więc nie łatwo jest zbudować dobry zespół pozwalający na sprawną "produkcję" rozwiązań.
Przede wszystkim należy wspomnieć o oficjalnych bibliotekach od fluttera. Ich lista dostępna jest na github:
https://github.com/flutter/plugins
Poniżej przedstawię kilka ciekawszych.