Nasi doświadczeni programiści są gotowi, by błyskawicznie rozwinąć Twój produkt.

React Native vs. Ionic – który framework do aplikacji hybrydowych wybrać?

30 sty 20195 min czytania

Dawid Karczewski

Senior full stack developer i CTO w Ideamotive.

RN-vs-Ionic-BG-1

React Native vs. Ionic to niełatwy wybór, zwłaszcza biorąc pod uwagę elastyczność i możliwość ponownego wdrożenia kodu.

Nie ma wątpliwości, że aplikacje mobilne są podstawowym elementem nowoczesnego marketingu i obsługi klienta. Według badania AdWeek konsumenci spędzają ze smartfonem ponad pięć godzin dziennie. Co więcej, w 2018 roku ponad połowę całego ruchu internetowego wygenerowały urządzenia mobilne (dokładnie 52,2%). W USA wskaźnik ten był jeszcze wyższy – 57%.

 

Aplikacje to wygodny i skuteczny sposób na utrzymanie kontaktu z użytkownikiem. Użytkownicy zwykle nie pozbywają się aplikacji – 25% badanych usuwa je tylko dlatego, że pamięć telefonu jest pełna.

 

Biorąc to pod uwagę, zajęcie miejsca w ich telefonie i utrzymanie zainteresowania to sprytny sposób, żeby trafić prosto do serca użytkownika. Nic więc dziwnego, że istnieje mnóstwo narzędzi i frameworków wspierających wieloplatformowe tworzenie aplikacji mobilnych bez potrzeby pisania kodu dla osobnych urządzeń. Dostarczenie wysokiej klasy aplikacji mobilnej to konieczność, zwłaszcza dla firm B2C i B2B2C.

 

I tu z pomocą przychodzą Ionic oraz React Native.

Czym jest React Native?

React Native to framework wspierany przez Facebooka, zaprojektowany po to, by programiści JavaScriptu mogli mniejszym nakładem pracy dostarczać aplikacje wieloplatformowe. Framework korzysta z zestawu wewnętrznych API do budowy aplikacji, więc wszystkie elementy i interfejsy systemowe zostają zachowane - z wyjątkiem tych najbardziej egzotycznych lub najnowszych.

Poza dostarczeniem aplikacji bez potrzeby przygotowywania osobnego kodu dla urządzeń z Androidem i iOS framework pozwala współdzielić kod między aplikacją webową a mobilną, umożliwiając ponowne wykorzystanie nawet 70% kodu.

 

Wreszcie, poza budowaniem aplikacji w JavaScripcie, framework korzysta z technologii wspierających, takich jak hot reloading, dzięki czemu wprowadzanie ciągłych zmian i ulepszeń jest łatwiejsze niż wydawanie dużych regularnych wersji, znane z bardziej tradycyjnych sposobów pracy.

 

 

 

Czym jest Ionic?

Ionic to podobne narzędzie, zaprojektowane przez DriftyCo, firmę stojącą za interfejsami typu przeciągnij i upuść do budowania aplikacji jQuerry Mobile i Bootstrap. Zbierając doświadczenia, firma postanowiła wypuścić własny framework, żeby budowanie aplikacji było szybsze i wygodniejsze. Sednem frameworka Ionic jest możliwość ponownego wykorzystania kodu strony w aplikacji, co minimalizuje wysiłek potrzebny do przeniesienia aplikacji do nowego środowiska platformy. W wielu przypadkach Ionic sprawi, że skopiowany i wklejony kod aplikacji webowej po prostu zadziała.

Dlaczego warto porównać React Native i Ionic?

Oba frameworki korzystają z języka JavaScript i skupiają się na budowaniu wieloplatformowych aplikacji mobilnych. Główna różnica polega na tym, że Ionic opiera się na technologii WebView, która pozwala korzystać ze wszystkich technik tworzenia stron i dostarcza nie w pełni natywną, lecz hybrydową aplikację. Z zewnątrz technologie nie wydają się różnić na tyle, żeby mieć pewność co do podjętej decyzji. Co więcej, może się wydawać, że wybór technologii przy starcie projektu mobilnego nie ma znaczenia.

Jako software house skupiony na technologiach mobilnych mamy za cel nie tylko dostarczać partnerom aplikacje mobilne najwyższej klasy, ale też wiedzę, która da im pewność, że podejmują świadome i mądre decyzje.

 

Dlatego istnieje silna potrzeba porównania React Native i Ionic pod kątem kluczowych aspektów tworzenia aplikacji mobilnych. I to właśnie tam kryją się różnice.

Co warto wziąć pod uwagę?

Jak zwykle porównujemy te technologie, biorąc kluczowe metryki i wskazując różnice, które mogą wpłynąć na ogólną wydajność aplikacji. Przeanalizujemy też wygodę ich zastosowania w biznesie.

Ale najpierw tabela zbiorcza dla naszych czytelników z obozu DL;DR:

RN-vs-Ionic-1-768x593

Interfejs użytkownika

React Native, mimo że napędza go JavaScript, daje prawdziwie natywne doświadczenie, budując aplikację na istniejących API systemowych. Możliwe, że technologia nie obsłuży pewnych bardziej egzotycznych lub najnowszych funkcji, ale w większości przypadków nie są one kluczowe. Co więcej, w aplikacji React Native można osadzić kod natywny, żeby wykonać funkcje, których brakuje w JavaScripcie.

 

Z kolei Ionic opiera się mocno na narzędziach do tworzenia stron. Pozwala programistom projektować elementy natywne dla systemu, ale zwykle wymaga to większego nakładu pracy. Co więcej, technologia jest nastawiona na ponowne wykorzystanie aplikacji webowych, więc zazwyczaj cały interfejs jest zapożyczony ze strony. Oznacza to zwykle, że elementy natywne są pomijane, a aplikacja niczym nie różni się od strony. Interfejs użytkownika mógłby więc być lepszy, zwłaszcza biorąc pod uwagę przyzwyczajenia i preferencje użytkowników.

 

Bo przecież nikt nigdy nie kupił iPhone'a, nie myśląc o jego interfejsie.

Szybkość kodowania

Jak wspomniano wyżej, React Native pozwala ponownie wykorzystać nawet 70% kodu z aplikacji webowej. JavaScript to jeden z najbardziej wszechstronnych języków programowania na świecie, napędzający niemal wszystkie (dokładnie 95,1%) istniejące strony.

 

Ionic pozwala programistom przenieść stronę bezpośrednio do aplikacji. Tworzenie aplikacji hybrydowej w Ionicu może polegać po prostu na skompilowaniu aplikacji webowej do kontenera i umieszczeniu jej w App Store czy Google Play. Jeśli więc aplikacja webowa już istnieje, przeniesienie jest błyskawiczne.

 

Ale różnica to nie więcej niż 30% całego kodu.

Wydajność

Jeśli chodzi o ciężkie obliczenia na urządzeniu mobilnym, najlepszym wyborem są aplikacje natywne. To jednak dość rzadka sytuacja, a przy bardziej przyziemnych zadaniach aplikacja React Native potrafi przewyższyć aplikację natywną.

Z drugiej strony aplikacje webowe przeniesione przez Ionic do aplikacji są zwykle dobrze zoptymalizowane pod kątem korzystania wyłącznie z zasobów przeglądarki. Trudno więc wskazać, który z nich działa lepiej w aplikacji. Korzystając z wewnętrznych API,  React Native pozwala jednak programiście obejść problemy, z którymi mierzą się aplikacje webowe, więc można zyskać nieco więcej oszczędności mocy.

Społeczność i wsparcie

React Native jest wspierany przez Facebooka, jednego z najsilniejszych graczy internetu. Jako główny twórca technologii i firma stojąca za jej promocją jest też jednym z najbardziej znanych użytkowników React Native.

Według appbrain.com React Native napędza 1,46% aplikacji - wśród najbardziej znanych są Instagram, Facebook Messenger i Uber.

Na pierwszy rzut oka Ionic wydaje się popularniejszy od React Native - 3,15% aplikacji powstało w tej technologii. Ale pierwsze wrażenie może mylić – najpopularniejszą aplikacją korzystającą z Ionic Framework jest MyTelkomsel, a za nią Yono SBI i Zipker. Porównując skalę użycia, możliwe, że sam Facebook Messenger czy Instagram pobrano więcej razy niż wszystkie aplikacje na Ionicu razem wzięte.

 

Wreszcie – React Native jest uważany za jeden z najbardziej lubianych frameworków, wyprzedza go tylko TensorFlow, framework uczenia maszynowego dla Pythona.

Po prostu przyznajmy – wszyscy uwielbiają kodować w React Native. Jako firma tworząca aplikacje w React Native, my też ją uwielbiamy.

Stabilność

React Native korzysta ze wszystkich zalet aplikacji natywnych, dokładając tylko jedną warstwę między kodem a urządzeniem. Ionic z kolei potrzebuje WebView do uruchomienia aplikacji i frameworka Apache Cordova do połączenia ze sprzętem. Im więcej pośredników, tym więcej okazji, żeby coś poszło nie tak.

A sama Cordova jest jedną z najbardziej nielubianych technologii wśród użytkowników StackOverflow

Dokumentacja

Dzięki wsparciu Facebooka React Native ma doskonałą, jasną i spójną dokumentację, czego można oczekiwać od technologii pochodzącej od internetowego giganta. Naprawdę nie ma powodu, żeby jej nie lubić.

W przeciwieństwie do React Native dokumentacja Ionica, choć istnieje i jest czytelna, oferuje programistom tylko podstawowe wsparcie.

Dojrzałość platformy

Obie platformy przeszły długą drogę od premiery. Znów React Native korzysta ze wsparcia Facebooka, a używanie go jako technologii napędzającej Messengera i Instagrama jest jak służba na cyfrowej linii frontu, w głębi okopu.

Bez względu na to, jak dobrze przetestowany byłby Ionic, React Native jest z pewnością dojrzalszą technologią.

Podsumowanie

Na pierwszy rzut oka Ionic wydaje się wygodniejszy, bo korzysta z całego kodu webowego, ale React Native daje bardziej niezawodną technologię, działa wydajniej i ma szerszą bazę użytkowników.

 

Co więcej, wsparcie Facebooka mocno wskazuje, że technologia zostanie z nami na długo i korzystają z niej różne firmy tworzące aplikacje w React Native. Ionic z kolei, mimo że jest technologią dojrzałą i przyjętą na rynku, nie ma wsparcia internetowego giganta.

 

Dlatego mimo zysków na czasie realizacji ogólny bilans mocno wskazuje, że w starciu React Native vs Ionic lepszym wyborem jest ten pierwszy. Ionic jest nie do pobicia, jeśli chodzi o osadzenie serwisu webowego w aplikacji – ale czy o to właśnie chodzi w budowaniu aplikacji mobilnej?

Dawid Karczewski

Dawid jest full stack developerem. Tworzy aplikacje w Ruby on Rails i React Native od pierwszego pomysłu aż po wdrożenie. Buduje dla naszych klientów rozwiązania, które pomagają im rosnąć.

Zobacz wszystkie wpisy autora
React Native 2022

Wybór React Native do Twojego stosu technologicznego w 2022

Kompletny przewodnik dla CEO i product ownerów

Czytaj teraz
home-05
Szukasz ekspertów od aplikacji mobilnych do swojego zespołu?
W naszej sieci talentów czekają dziesiątki zweryfikowanych specjalistów od aplikacji mobilnych.
Skontaktuj się