ReactJS i React Native – czym się różnią?
Zastanawialiście się kiedyś, czym się różni ReactJS od React Native? Czy programista ReactJS jest też programistą React Native? Odpowiedzi na te i inne pytania znajdziecie w tym artykule.
Spis treści
ReactJS – do czego służy?
ReactJS to biblioteka JavaScriptowa używana do budowania interfejsów (z ang. User Interface, w skrócie UI), a więc wszystkiego, co pozwala na interakcję użytkowników z maszynami. Interfejsy znajdziemy wszędzie, od aplikacji mobilnych, poprzez strony internetowe, kończąc na ekspresie do kawy.
W przypadku biblioteki ReactJS, potrzeba okazała się matką wynalazku, ponieważ powstała w odpowiedzi na problem, przed którym stanął Facebook. Tamtejsi inżynierowie szukali sposobu na budowanie dynamicznych, a jednocześnie wysoce wydajnych interfejsów, w wyniku czego powstał ReactJS. Pierwotnie przeznaczony jedynie do projektów wewnętrznych, w 2013 roku został udostępniony przez Facebooka na zasadach open-source. Biblioteka ta, dzięki swojemu rewolucyjnemu podejściu do budowania UI, zrobiła furorę wśród programistów.
ZOBACZ TEŻ: Jak powstał React? Historia trzech developerów, którzy wyszli poza schemat
React niesie ze sobą wiele korzyści, takich jak reużywalność komponentów, virtual DOM, jednokierunkowy przepływ danych, lekkość i stabilność, niski próg wejścia, create-react-app, łatwość w przerzuceniu się na aplikacje mobilne (z React Native), a także wszystkie zalety, jakie daje projekt open-source i język JavaScript.
Za pomocą ReactJS i React Native powstały takie aplikacje, jak Facebook, Instagram, Netflix, Airbnb, Pinterest, czy też Skype, a także całe mnóstwo mniejszych aplikacji, oraz narzędzi używanych wewnętrznie. No właśnie – czym jest wspomniany React Native i czym się różni od ReactJS? Odpowiedzi znajdziecie w dalszej części artykułu.
Co to jest React Native?
React Native to framework wspierany przez Facebooka, stworzony właśnie po to, by umożliwić developerom JavaScript produkowanie aplikacji cross-platformowych. Framework korzysta z zestawu wewnętrznych API do tworzenia aplikacji i wykorzystuje elementy interfejsu systemów Android i iOS, zamiast rysować własne. Dzięki temu aplikacje wyglądają równie dobrze na obydwu platformach, utrzymując jednocześnie oryginalny, natywny look&feel obu systemów.
Oprócz możliwości stworzenia aplikacji iOS i Android z wykorzystaniem tego samego kodu, specyfika frameworka umożliwia dzielenie kodu z aplikacjami webowymi. Dzięki użyciu natywnych komponentów layoutu React Native pozwala tworzyć interfejsy trudne do odróżnienia od aplikacji pisanych z wykorzystaniem Java / Kotlin lub Swift / Objective-C. React Native pozwala współdzielić kod pomiędzy dwie platformy, dzięki zdolności do “tłumaczenia” JavaScriptu na natywne komponenty używając tzw. mostów (bridges), stąd właśnie nazwa – React Native.
Więcej informacji o React Native znajdziesz TUTAJ.
ReactJS i React Native – różnice
Między ReactJS a React Native są drobne różnice, jednak główne zasady działania są zachowane, a to oznacza, że mamy po swojej stronie wszystkie mocne strony JavaScriptu i ReactJS.
ReactJS jest biblioteką JavaScriptową, obsługującą zarówno frontend web, jak i uruchamianą na serwerze, do budowania interfejsów użytkownika i aplikacji internetowych. React Native to zaś mobilny framework, który kompiluje się do natywnych komponentów aplikacji, umożliwiając tworzenie natywnych aplikacji mobilnych w JavaScripcie, który pozwala używać ReactJS do budowania komponentów i implementuje ReactJS pod maską.
Czyli mówiąc w skrócie: React Native to framework, w którym ReactJS to biblioteka JavaScriptowa, której możesz użyć w swojej witrynie.
ZOBACZ TEŻ: Wszystko, co musicie wiedzieć o JavaScript. Co to? Dla kogo? I ile zarobimy?
Ważną różnicą jest to, że aplikacja React nie będzie działać na urządzeniach mobilnych, a aplikacja React Native – w sieci. Dlaczego? Większość kodu ReactJS dla sieci jest oparta na funkcjach dostępnych w przeglądarkach internetowych. Nie może więc działać na urządzeniach mobilnych. Z kole kod React Native zależy od danej platformy mobilnej, dlatego nie będzie działać na desktopie. Nic jednak nie stoi na przeszkodzie, aby wykorzystywać kod ponownie pomiędzy aplikacjami internetowymi a mobilnymi.
Czy każdy programista ReactJS jest także programistą React Native? Co prawda podczas pracy w React Native programiści przeważnie piszą kod ReactJS, który nie różni się od kodu pochodzącego z React for Web. Jednak należy mieć na uwadze różnice i specyficzne właściwości platform mobilnych, które mogą być znaczące. Podsumowując, programiści React nie są programistami React Native. Nie jest jednak powiedziane, że nie mogą oni zdobywać doświadczenia i umiejętności w poruszaniu się po React Native.
Żdjęcie główne pochodzi z Wikimedia Commons. Źródło: Ichi.pro.