React Active od samego początku swego istnienia przyciągała uwagę deweloperów. Perspektywa pisania dla wielu platform jednocześnie i nauka języka React jest atrakcyjna dla programistów początkujących lub starających się nabyć kompetencji w nowym oprogramowaniu. Aplikacja powstać może na jakiejkolwiek platformie – iOS, Android czy nawet Windows. Należy jednak mieć na uwadze również minusy React Native.

 React Native

Czym jest React Native?

React Native to framework przygotowany przez Facebooka. Można na nim stworzyć aplikacje natywne, bazując na JavaScripcie. Oparty jest na projekcie REACT, dzięki czemu pozwala tworzyć bogate UI (User Interface) z komponentów deklaratywnych. Ten sam kod użyteczny będzie na wszystkich platformach, bez większych modyfikacji.

 

Oprócz tego możliwe jest używanie tego samego kodu na aplikacje mobilne i przeglądarki przez odpowiednie separowanie logiki od UI. W React Native spoczywa potencjał na kopiowanie całych gotowych baz kodu pomiędzy platformami, ale jeszcze jest za wcześnie, aby polegać na tej funkcji. Framework ten posiada również możliwość natychmiastowego przeładowania, zamiast rekompilacji, co znacznie przyspiesza budowanie aplikacji.

 

Dlaczego React Native?

React Native tworze deklaratywne API na wysokim poziomie dla aplikacji natywnych. Każdy element UI we frameworku odpowiada elementowi UI w platformie docelowej. Dzięki temu istnieje duże prawdopodobieństwo, że duża część twojego kodu pasować będzie na innej platformie bez dodatkowej konfiguracji. 

 

Początkowo React Native dostępne było tylko dla iOS’a, ale teraz do grona dołączyły inne systemy operacyjne jak Android, React Native Web, VR, Windows 10, a w tym komputery stacjonarne, tablety i Xboxy.

 

Ponadto, jeśli nie występuje potrzeba pisania modułów na miarę dla konkretnej platformy, programista jest w stanie stworzyć wysokiej jakości aplikację, używając wyłącznie JavaScript. Korzysta przy tym z fragmentu zasobów, które potrzebne byłyby do stworzenia aplikacji na platformie dedykowanej.

 

Trudności w pracy z React Native

Rozpoczęcie programowania przy pomocy React Native może odstraszyć ze względu na poziom skomplikowania. Jest kilka rzeczy, które należy wziąć pod uwagę na samym początku. Czy funkcjonalność, którą potrzebujesz jest dostępna w React Native? Czy biblioteka, której zamierzasz użyć, została stworzona do użytku na konkretną platformę?

 

Twórca frameworka przewidział te przeszkody i stworzył narzędzie Native Modules. W wielu przypadkach gotowy jest manager pakietów, który stanowi rozwiązuje problem braku wymaganej biblioteki. Społeczność React Native, ze względu na swoją popularność na całym świecie, cały czas zwiększa się. Co za tym idzie, również biblioteki rosną w zasobności. Jest mnóstwo rozwiązań gotowych do instalacji, więc przed rozpoczęciem projektu wystarczy przeanalizować zasoby i ich przydatność do aplikacji w przygotowaniu. Jeśli jednak moduł potrzebny nie jest dostępny, można stworzyć go od zera.

 

Praca przy natywnym API jest nieskomplikowana, ale te API szybko się zmieniają. Na szczęście, dzięki dużej społeczności, React Native jest zwykle na bieżąco i liczba modułów stale rośnie. Jeśli jednak nie znajdziesz odpowiedniej gotowej biblioteki ani nie znajdziesz pomocy na forach, pomoc specjalisty w platformie natywnej może okazać się niezbędna.

 

Niekiedy gotowa aplikacja okazuje się nieco zbyt wolna. Zapoznanie się ze strukturą frameworka obnaża takie ryzyko. Niestety, nawet jeśli aplikacje natywne i JavaScript są bardzo szybkie, to komunikacja pomiędzy nimi czasem też jest zbyt wolna.

 

W sytuacji, w której programista chce implementować widok wyświetlający dane w czasie rzeczywistym i reakcje aplikacji na zapytania użytkownika, należy odwołać się do implementacji natywnych. Łączenie funkcjonalności przez eksport przy użyciu React Native może mieć negatywny wpływ na szybkość aplikacji i UE (User Experience). Co więcej, sytuacja będzie się powtarzać w przypadku każdej platformy używanej w projekcie, więc recykling kodu pomiędzy platformami będzie ograniczony.

 

Dla przykładu klient korzystający z aplikacji iOS’a, dla której moduły pisane były na zamówienie w Objective-C, nie uzyska wersji na Androida bez rozbudowanego wparcia profesjonalistów z tejże platformy. Niestety w takiej sytuacji React Native, zamiast uprościć i przyspieszyć cały proces, spowolni go i skomplikuje kod Javy, ze względu na wewnętrzne ograniczenia.

 

Podsumowanie

React Native mimo swych wad i tak jest narzędziem godnym polecenia. Wciąż rozwijająca się społeczność stale zwiększa zasoby bibliotek i modułów dostępnych do tworzenia coraz bardziej złożonych aplikacji. Dzięki temu React Native staje się coraz potężniejszym frameworkiem, służącym do pracy przy platformach natywnych. Przeszedł on test bojowy, co widać po wielu aplikacjach dostępnych na rynku i wymaga coraz mniej wsparcia natywnego wraz z rozwojem środowiska wewnętrznego. Nie jest to być może rozwiązanie idealne dla każdego projektu bez wyjątku, ale z pewnością to dobry wybór dla tworzenia aplikacji z natywnym wrażeniem.