Ionic vs React Native -> StormSnapshot #5

React Native vs Ionic

Jako podsumowanie artykułów wprowadzających do React Native oraz Ionic przygotowałem zbiorcze porównanie tych technologii. Pomoże mi to podjąć decyzję, która z nich lepiej będzie nadawała się do projektu StormSnapshot.

Wybór nie jest łatwy, ponieważ oba rozwiązania spisały się bardzo dobrze i z powodzeniem można by je wykorzystać do dalszego rozwijania projektu.

Żeby decyzja była bardziej wiarygodna, wróćmy na chwilę do tekstu: mobilne aplikacje hybrydowe i prześledźmy kolejno zebrane wtedy wymagania.

Stos technologiczny

  • Ionic: Angular, Apache Cordova, HTML, JavaScript, CSS
  • React Native: React, HTML, JavaScript

Oba frameworki wykorzystują bardzo popularne i sprawdzone technologie. To, które rozwiązanie wybrać, to raczej kwestia indywidualnych preferencji oraz posiadanych już umiejętności.

Na korzyść pierwszego przemawia prostota stylowania, za sprawą wykorzystania istniejących standardów webowych. Natomiast dzięki Reactovi otrzymujemy w pełni natywną aplikację.

W tym starciu nie ma jednoznacznego zwycięzcy.

Wydajność aplikacji

Ponieważ Ionic wykorzystuje wbudowaną przeglądarkę, a React Native generuje natywną aplikację, spodziewałem się dość wyraźnych różnic w prędkości działania wynikowego produktu.

Sam moment uruchomienia aplikacji w przypadku natywnej aplikacji jest znacząco krótszy. Na testowanym telefonie (LG G3) była to aż ponad dwukrotna różnica (2 s. natywna i 5 s. webview).

Jednak już podczas samego działania aplikacji obu technologiom nie miałem nic do zarzucenia. W obu przypadkach aplikacja chodziła płynnie i nie przycinała się.

W tym starciu jednak wygrywa React Native.

Szybkość i prostota developmentu

Obie technologie wychodzą z całkowicie innych założeń.

  • W przypadku Ionic z założenia piszemy jedną aplikację, która będzie działała na wszystkich obsługiwanych systemach.
  • W przypadku React Native dostajemy technologię, przy pomocy której możemy pisać aplikacje na różne systemy. Dzięki jednej spójnej technologii znaczna część kodu może być współdzielona.

Podejście React Native wymaga trochę więcej wysiłku, jednak pozwala lepiej dopasować aplikacje do specyficznych funkcjonalności na danej platformie.

Ponieważ frameworki realizują to wymaganie w całkowicie inny sposób, nie można ich w prosty sposób porównać.

Prostota debugowania i testowania aplikacji

  • Ionic: Bezproblemowe i bardzo szybkie debugowanie zmian z poziomu przeglądarki. W moim odczuciu ogromny plus za możliwość edytowania wyglądu aplikacji w locie.
  • React Native: Ponieważ kod aplikacji jest kompilowany do natywnej wersji, testowanie zmian jest trochę utrudnione. Jednak dzięki zastosowaniu hotdeployu komponentów, nie stanowi to aż tak dużego problemu.

W tym starciu nieznacznie wygrywa Ionic.

Możliwość dopisania własnych komponentów

Oba rozwiązania dają możliwość dopisania własnych niestandardowych pluginów. Nie testowałem jednak tego w przykładowych aplikacjach.

Społeczność

W obu przypadkach za projektem stoi bardzo silna i dynamiczna społeczność. Baza dostępnych pluginów jest tak duża, że z powodzeniem można w niej znaleźć większość potrzebnych dodatków.

Dla obu stron ogromny plus.

Ogólne odczucia

Mimo iż z obu technologii korzystało mi się dobrze, React Native sprawiał wrażenie rozwiązania dużo bardziej dopracowanego. Poczynając od samej instalacji, do developmentu i debugowania aplikacji, odniosłem wrażenie, że w technologi od Facebooka wszystko jest dobrze dopieszczone i działa tak, jak powinno.

Podsumowanie React JS vs Ionic: który wybrać?

Niewątpliwie obie technologie stoją na bardzo wysokim poziomie i z czystym sumieniem mogę polecić obie.

Rozwiązania wykorzystują całkowicie inne założenia i inne technologie, dlatego mogą lepiej sprawdzić się w różnych projektów. W moim przypadku decyduję się na dalsze rozwijanie projektu StormSnapshot z wykorzystaniem React Native.

Linki

Programista – Pytania rekrutacyjne

Lista pytań rekrutacyjnych, które pozwolą przygotować Ci się na rozmowę kwalifikacyjną.

Brak komentarzy
Share:

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *