React Native i Flutter przejmują rynek cross-platformowego developmentu aplikacji mobilnych

Jednym z najpopularniejszych trendów na przełomie 2019 i 2020 roku wśród twórców oprogramowania jest niewątpliwie cross-platform development aplikacji mobilnych. Startupy, duże marki i doświadczone korporacje, a także developerzy i firmy software’owe – wszyscy chcą tego samego, gdy tworzą aplikacje. Ich celem są szybkich rezultaty oraz jak najniższy koszt i jak najwyższa jakość.
Spis treści
- Czy aplikacje cross-platformowe to prawdziwe aplikacje mobilne?
- Czym jest cross-platform development
- Aplikacje cross-platformowe – krótka historia
- Cross Platform Development
– React Native – topowy framework do tworzenia cross-platformowych aplikacji mobilnych
– Duże zapotrzebowanie = Świetlana przyszłość
– Ciągłe udoskonalanie
– Nie zawsze idealny
– Wprowadza nowości, lecz zatrzymuje stare, dobre funkcje
– Jeśli działa, to czemu nie spróbować? - Flutter
– Szybkie zdobycie popularności
– Punkt widzenia programistów
– Wszyscy są zainteresowani - Zwinność ponad wszystko
- Teraz działa także w Scrum!
- Trzecia opcja
Czy aplikacje cross-platformowe to prawdziwe aplikacje mobilne?
Frameworki cross-platformowe oferują możliwość tworzenia aplikacji na wiele systemów operacyjnych (iOS, Android), korzystając z jednej technologii. Zarówno Flutter, jak i React Native pozwalają programiście tworzyć aplikację na więcej niż jeden system. Oczywistą zaletą w tym przypadku jest fakt, iż potrzebujemy tylko jednego zespołu do stworzenia dwóch aplikacji. To przekłada się bezpośrednio na efektywność czasową i kosztową, również dzięki mniejszemu zapotrzebowaniu na zespół zarządzający i testerów.
Czym jest cross-platform development
Najprościej ujmując, to użycie jednej technologii lub frameworka do stworzenia aplikacji na wiele systemów operacyjnych.
Nie ma nic złego w potrzebie stworzenia czegoś dobrego, a zarazem taniego. Mówią, że nie można mieć wszystkiego. Czyżby? A co z utopijną ideą, świętym Graalem technologii mobilnych – developmentem cross-platformowym?
Aplikacje cross-platformowe – krótka historia
Pomysł tworzenia hybrydowego lub multi-platformowego oprogramowania mobilnego nie jest nowy. Wiele prób stworzenia frameworka cross-platformowego zostało podjętych pomiędzy 2011 a 2019 rokiem – większość z nich zakończyła się w mniejszym bądź większym stopniu sukcesem. Rosnące różnice pomiędzy technologiami natywnymi doprowadziły do dramatycznych wzrostów kosztów developmentu mobilnych produktów natywnych na iOS i Androida, co skutkowało potrzebą alternatywy i cięcia kosztów. Od aplikacji webowych opartych na przeglądarkach – wciąż popularne i nadal często stosowane rozwiązania, poprzez technologie podobne do natywnych jak Xamarin, Ionic, Nativescript i kilka innych, dotarliśmy do tu i teraz.
Bez wątpienia React Native i Flutter są aktualnie na językach, podczas gdy zainteresowanie Xamarin, Ionic i Phonegap (i innymi technologiami) znacznie maleje. Postanowiliśmy więc skupić się na liderach wyścigu frameworków cross-platformowych roku 2020 – React Native i Flutter.
Cross Platform Development
React Native – topowy framework do tworzenia cross-platformowych aplikacji mobilnych
Cross-platformowy framework stworzony przez Facebooka istnieje już od kilku dobrych lat. Bardzo dobre początkowe przyjęcie go oraz mnóstwo uwagi ze strony Facebooka dały temu frameworkowi solidną bazę pod dalszy rozwój.
Nazwa i korzenie React Native mają swoje źródło w React.js – bibliotece, którą (wraz z wieloma innymi) użyto do stworzenia platformy Facebook. React Native wykorzystuje Javascript do pisania komponentów UI zarówno na Androida, jak i na system iOS.
Duże zapotrzebowanie = Świetlana przyszłość
W 2020 zapotrzebowanie na development w React Native stale rośnie. W wielu regionach świata jest ono tak duże, że przewyższa liczbę dostępnych programistów w tej technologii. Twierdzenie, iż React Native pozwala znacznie zredukować ogólny koszt zbudowania aplikacji mobilnej, jest w tym wypadku nieco na wyrost. Przez niedobór programistów, cena za zatrudnienie choćby jednego sporo wzrasta, zwłaszcza w porównaniu ze specjalistami od rozwiązań natywnych w iOS i Androidzie.
Ciągłe udoskonalanie
Wciąż jednak inne zalety tego frameworka zasługują na wyróżnienie. Funkcja “hot reload” pozwalająca od razu zobaczyć wprowadzone zmiany, jedna baza kodu dla dwóch platform, cały czas rosnący wybór bibliotek i nieprzerwane wsparcie Facebooka oraz open-source’owej społeczności – wszystko to sprawia, że React Native to nadal interesująca opcja.
Strategia marketingowa i wsparcie pomogły React Native osiągnąć popularność na całym świecie, choć nie udało się uniknąć błędnych założeń i nierealistycznych oczekiwań. Można powiedzieć, że React Native stał się w pewnym stopniu obiektem mitów i legend. Możecie przeczytać więcej na ten temat w jednym z naszych artykułów: Fakty i mity na temat React Native.
Nie zawsze idealny
Dla nas, twórców oprogramowania, dodanie nowego frameworka do naszych usług to otwarcie się na nowe możliwości biznesowe. Zauważamy rosnące zainteresowanie klientów produktami tworzonymi w React Native. Zawsze, gdy głównym założeniem jest cięcie kosztów i skrócenie czasu trwania projektu, pojawiają się pytania o cross-platform development.
React Native, pomijając jego zalety, to wciąż rozwijająca się technologia, która ma swoje ograniczenia. React Native nie jest jeszcze szczytem perfekcji, więc trzeba podchodzić do tego frameworka z rozsądkiem. Zanim zainwestujemy swoje pieniądze w produkt tworzony przy pomocy tej technologii, warto przyjrzeć się wszystkim jej wadom i zaletom w naszym artykule na ten temat.
Wprowadza nowości, lecz zatrzymuje stare, dobre funkcje
Oszczędzanie budżetu oraz jak najkrótszy czas wprowadzenia produktu na rynek są obecnie najważniejsze, a my chcemy zadowolić naszych klientów i oferować im usługi odpowiadające ich potrzebom. Dlatego poszerzanie naszego zestawu narzędzi jest konieczne, a zmiana nieunikniona. Aktualizowanie wiedzy na temat tradycyjnych technologii natywnych to regularny proces, ale wprowadzenie nowego podejścia może być trudne. Dzięki React Native można to zrobić całkiem gładko i bez większych przeszkód. Gdy mamy już JavaScript jako bazę pod kodowanie, dodanie nowego frameworka przez developerów to raczej kwestia chęci i nie potrzeba do tego rozbudowanych szkoleń. Ze względu na rosnące zapotrzebowanie na specjalistów React Native, zwiększanie umiejętności zatrudnianych developerów to logiczny wybór większości software house’ów.
Jeśli działa, to czemu nie spróbować?
Aplikacje zbudowane w React Native stają się naturalną częścią świata aplikacji mobilnych. Doceniają je zarówno startupy, jak i mocno rozbudowane firmy. Ta technologia używana jest do tworzenia oprogramowania dla rynków mobilnych sektora B2B i B2C. Wiele światowych marek wypuściło już swoje aplikacje w React Native, niektóre ze sporym sukcesem, inne nie aż tak.
Szczególne zainteresowanie wobec technologii cross-platformowych można zauważyć wśród firm, które chcą tworzyć wstępną wersję MVP swoich produktów. Czy zbudowanie MVP z pomocą React Native to dobry pomysł? Jest tylko jeden sposób, by się tego dowiedzieć (kliknąć w link).
Flutter
Jak na młody framework (premiera w 2018 roku), Flutter robi spory szum w społeczności programistów mobilnych. Nie jest to zaskakujące. “Wspaniałe aplikacje natywne w rekordowym czasie” – to zdanie z pewnością przemawia do każdego, kto chce szybko budować aplikacje natywne. W końcu czas to pieniądz, a jakość ma ogromne znaczenie.
Ze względu na ostatnie tendencje twórców aplikacji do większego skupiania się na User Experience, Flutter pasuje tu wręcz idealnie z rozwiązaniami, które proponuje. Zarówno marketing, jak i wsparcie ze strony Google nie pozostawia nic przypadkowi. Widać, że gigant rynku wyszukiwarek poważnie podchodzi do tematu i pokazuje to na każdym kroku. Oficjalna strona Fluttera pełna jest informacji o ostatnich usprawnieniach, dokumentacji, artykułów i rekomendacji ze strony twórców oraz developerów korzystających już z tej technologii. Nie ma wątpliwości, że Google uważnie śledzi rynek.
Szybkie zdobycie popularności
Baza klientów, pomijając fakt, że jest mała ze względu na krótką obecność frameworka na rynku, już może się pochwalić takimi markami jak ebay, Tencent czy Alibaba Group. Nie wspominając o BMW – chyba najbardziej entuzjastycznym, skrajnie beztroskim zwolennikiem tej nowej technologii. Nieco zaskakujące, jeśli nie podejrzane dla twórców samochodów ceniących precyzję i jakość. Aplikacja wciąż jest w fazie developmentu i nic szczególnego nie ujawniono. Biorąc pod uwagę słowa Guy’a Duncana, CTO Connected Company w BMW: “Dzięki połączeniu Darta i Fluttera, mamy pierwszy prawdziwy zestaw cross-platformowych narzędzi mobilnych; czujemy, że dzięki tej ogromnej zmianie będziemy mogli zapewnić funkcję parowania dla cyfrowych punktów styku i IoT…” – powinniśmy spodziewać się aplikacji łączącej nas bezpośrednio z samochodem i z siecią.
Punkt widzenia programistów
Odbiór Fluttera przez globalną społeczność programistów jest bardzo pozytywny. Developerzy doceniają rozbudowaną dokumentację, wsparcie, informacje o ostatnich rozszerzeniach i nowych możliwościach, jakie oferuje ten cross-platformowy framework. Nasza wstępna recenzja Fluttera jest raczej pozytywna. Z niecierpliwością czekamy na całkowite wdrożenie tej technologii jako jednej z naszych usług w zakresie tworzenia oprogramowania.
Wszyscy są zainteresowani
Obserwujemy rosnącą liczbę klientów biznesowych ze Stanów Zjednoczonych, Wielkiej Brytanii i innych krajów zachodnich przekierowujących outsourcing swoich projektów software’owych w React Native to centralnej i wschodniej Europy oraz Azji, gdzie firmy tworzące oprogramowanie oferują porównywalną jakość w znacznie atrakcyjniejszych cenach. Z punktu widzenia software house’u stacjonującego w Polsce, dzięki włączeniu Fluttera i React Native do naszej oferty, możemy zaangażować się w interesujące projekty aplikacji mobilnych we współpracy z klientami, którzy do tej pory woleli pracować z lokalnymi dostawcami tego typu usług. Jeśli cross-platformowe aplikacje mobilne pozwolą nam dotrzeć do rynków zagranicznych, to je właśnie będziemy tworzyć.
Zwinność ponad wszystko
Gdy myślimy o metodologiach typu Agile, ich nieodzownej elastyczności i dopasowywaniu się do zmian, wydaje się, że React Native i Flutter spełniają wszystkie kryteria.
Używając jednej technologii zarówno dla aplikacji na iOS, jak i na Androida, otrzymujemy zwiększoną interoperacyjność w zespołach projektowych, proste zarządzanie oraz budowanie produktu dla dwóch systemów jednocześnie, w tym samym tempie.
Z perspektywy klienta, cross-platform development prezentuje ciekawe zalety. Na szczycie listy mamy oczywiście oszczędność pieniędzy, ale pojedyncza baza kodu, łatwiejszy management, możliwość szybszego wypuszczenia produktu na rynek z zachowaniem wysokiej jakości to również powody, dla którego warto wybrać to rozwiązanie.
Teraz działa także w Scrum!
Ważna, choć czasem pomijana, zaleta technologii cross-platformowych to ich praktycznie idealne dopasowanie do metodologii Agile developmentu. Przy obecnej modzie na używanie Scrum w zarządzaniu projektami IT, frameworki międzyplatformowe takie jak Flutter i React Native oferują dużą dozę elastyczności.
Połączenie Scruma i cross-platformowego developmentu odpowiada Product Ownerom, bo daje im większe możliwości nadzorowania projektu oraz jasne pojęcie o postępach w tworzeniu obu aplikacji na iOS i Androida. Scrum Masterzy muszą martwić się tylko jednym, zunifikowanym backlogiem, a zespoły developerskie mogą pracować razem nieprzerwanie, bez zajmujących czas konsultacji pomiędzy programistami Swift (iOS) a Kotlin (Android). Quality Assurance także zyskuje, ponieważ testujemy pojedynczą bazę kodu, a nie dwie kompletnie różne (wewnętrznie) aplikacje.
Najczęściej zadawane pytania
Najprościej rzecz ujmując, aplikacje natywne są kodowane osobno na każdą platformę za pomocą dedykowanej technologii. Dla przykładu, jeżeli chcemy mieć dwie aplikacje mobilne – na Androida i iOS – to tworzymy jedną aplikację za pomocą języka Kotlin (Android) i drugą, podobną z użyciem języka Swift (iOS). Zespoły developerskie pracujące nad aplikacjami muszą zadbać, aby miały one taki sam frontend i funkcjonalności zgodne z oczekiwaniami klienta.
Technologie cross-platformowe, takie jak Flutter i React Native, pozwalają budować produkty cyfrowe działające na wielu platformach z użyciem tylko jednej bazy kodu. To znacznie ułatwia pracę, gdyż potrzebny jest tylko jeden zespół programistów. Dzięki temu aplikacja może pojawić się na rynku szybciej niż w przypadku produktów natywnych. Jest to również rozwiązanie nieco tańsze, co doceniają firmy z ograniczonym budżetem.
W itCraft zdecydowanie rekomendujemy Fluttera. Jest to rozwiązanie nowsze, z ogromną ilością funkcji, oferujące świetną wydajność i możliwość tworzenia interfejsów nieodbiegających jakością od języków natywnych. Mocne wsparcie Google, który wciąż aktualizuje framework sprawia, że Flutter stał się uniwersalnym narzędziem do tworzenia aplikacji cross-platformowych i jest w tej chwili wiodącą technologią w tym sektorze.
React Native, będący dziełem Facebooka, nadal jest używany i choć przestał być liderem, nadal jest dość mocnym zawodnikiem w grupie rozwiązań wieloplatformowych. Jeżeli klient preferuje ten framework i użycie React Native w projekcie jest uzasadnione, nadal możemy wykonać produkt w tej technologii.
Głównie ze względu na to, że potrzebny jest tylko jeden zespół, który tworzy rozwiązanie działające na wszystkich platformach wymaganych przez klienta. To zmniejsza koszt produkcji, choć wbrew obiegowej opinii nie o połowę. W końcu nadal potrzebujemy menadżera projektu, designerów, testerów czy analityka biznesowego, aby produkt wyglądał i działał zgodnie z założeniami klienta oraz potrzebami użytkownika końcowego. Warto też pamiętać o tym, że nie każdy produkt można wykonać w technologii typu Flutter czy React Native. Jeżeli aplikacja ma w założeniu posiadać bardzo zaawansowane funkcjonalności, lepiej zainwestować w produkt natywny.
Cross-platformowe frameworki uważa się za idealne między innymi dla MVP produktu, czyli podstawowej wersji aplikacji używanej do przetestowania danej koncepcji. Dzięki Flutterowi bądź React Native możemy sprawdzić rozwiązanie na różnych platformach i zajmuje to znacznie mniej czasu niż w przypadku oprogramowania natywnego. Wieloplatformowe technologie sprawdzą się również w przypadku, kiedy mamy nieco mniejszy budżet lub chcemy szybciej wypuścić aplikację na rynek.
Trzecia opcja
Możemy śmiało stwierdzić, że aplikacje cross-platformowe zostaną z nami na dłużej i będziemy obserwować więcej świetnych projektów w React Native i Flutterze. Gdy porównać te dwa frameworki, React Native to “starszy brat”, a Flutter zapowiada się naprawdę dobrze. Razem tworzą trzecią siłę na rynku twórców aplikacji mobilnej. Można się po nich spodziewać sporego wpływu na usługi branży IT w najbliższych latach.