30 sty 20195 min czytania
Dawid Karczewski
Senior full stack developer i CTO w Ideamotive.
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.
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.
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.
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.
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:

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.
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.
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.
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.
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
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.
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ą.
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 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 autoraKompletny przewodnik dla CEO i product ownerów
Czytaj terazPopularne artykuły
21 inspirujących projektów UI aplikacji mobilnych na 2023 rok
Michał Pruciak 7 min czytania
MedTech vs HealthTech vs BioTech: jakie są różnice?
Michał Pruciak 7 min czytania
10 biznesowych zastosowań sieci neuronowych (z przykładami!)
Michał Pruciak 4 min czytania
10 przykładów dobrych praktyk w web designie na 2023 rok
Adam Kozłowski 7 min czytania
28 znanych aplikacji webowych napisanych w PHP
Dawid Karczewski 14 min czytania
Jakich usług programistycznych szukasz?
Dane rejestrowe:
Firma
Usługi
Najczęściej poszukiwani specjaliści
Ocena 4,8 / 5,0 od klientów z różnych branż i lokalizacji.