Yin și Yang în ReactJS și React Native

Feb 11, 2019

ReactJS

ReactJS și React Native sunt noile tehnologii pentru dezvoltarea aplicațiilor web și mobile introduse de Facebook, în 2011. Proiectul a fost inițiat de Jordan Walke, software engineer la Facebook. Pentru a simplifica procesul de dezvoltare și a încuraja o experiență mai confortabilă a utilizatorilor, a decis să creeze o bibliotecă care să permită crearea unei interfețe web cu ajutorul limbajului de programare JavaScript.

Ce este React? O scurtă istorie a bibliotecii ReactJS

Înainte de a dezvolta ReactJS, Facebook s-a confruntat cu o problemă majoră de funcționare a platformei Facebook de către utilizator - având un număr mare de utilizatori în creștere, au avut nevoia de a construi o interfață inteligentă, dinamică, cu performanțe ridicate. De exemplu, inginerii au vrut ca actualizările feed-ului de știri să funcționeze simultan, în timp real, cu utilizarea chat-ului.

Pentru a realiza acest lucru, Facebook a trebuit să optimizeze procesul de dezvoltare în sine și Jordan Walke a hotărât să o facă cu JavaScript. El a propus introducerea XHP, sintaxa de marcare Facebook, în sistemul de coordonate JS. Ideea părea imposibilă, însă în 2011 echipa sa a lansat biblioteca ReactJS pe baza simbolicii JavaScript și XHP. Facebook a realizat potențialul acestei noi librării și că ReactJS funcționa mai repede decât orice altă aplicație de acest gen.

Ce este ReactJS? Este o bibliotecă JavaScript care combină viteza JavaScript și folosește un nou mod de redare a paginilor web, făcându-le să fie extrem de dinamice și receptive la interacțiunea de către utilizatori. Produsul a schimbat în mod semnificativ abordarea de programare a platformei Facebook. După ce biblioteca a fost lansată ca și un instrument open-source JavaScript în 2013, a devenit extrem de popular datorită abordării sale revoluționare de programare a interfeței utilizatorilor, stabilind competiția pe termen lung dintre React și Angular, un alt instrument popular de dezvoltare web.

October CMS – platforma ideală pentru proiectele web

Doi ani mai târziu, același grup de ingineri a lansat React Native, un framework hibrid de dezvoltare a aplicațiilor mobile pentru iOS și Android. Instrumentul este bazat pe aceleași principii ca și ReactJS și, în scurt timp, a fost acceptat de către comunitatea tehnică și de companiile care aderă la strategia mobilă.

Cum funcționează React Native? Acest instrument combină dezvoltarea aplicațiilor native cu dezvoltarea UI JavaScript. În timp ce caracteristicile computaționale grele pot fi implementate cu module native pentru iOS și Android, restul codului poate fi scris cu JavaScript și partajat pe ambele platforme. Spre deosebire de uneltele cross-platform PhoneGap și Cordova, React Native nu utilizează WebView, un motor mobil care împachetează codul. În schimb, acesta oferă acces la controale mobile native, ceea ce permite obținerea unui aspect nativ al aplicațiilor.

Deci, să aruncăm o privire mai atentă la argumentele pro și contra ale ReactJS. Apoi, vom explora modul în care React Native este diferit și care sunt beneficiile și dezavantaje moștenite de la biblioteca ReactJS.

[caption id="attachment_9448" align="aligncenter" width="797"]ReactJS The HTML DOM tree of objects - Sursa - W3Schools[/caption]

Elementele pro ale ReactJS

  1. Virtual DOM în ReactJS face ca experiența utilizatorilor să fie mai bună și munca dezvoltatorului să fie mai rapidă;
  2. Posibilitatea de reutilizare a componentelor React economisește semnificativ timpul de dezvoltare;
  3. Fluxul de date restricționat doar într-o direcție în ReactJS oferă un cod stabil;
  4. O bibliotecă Facebook open-source: în continuă dezvoltare și accesibilă comunității;

Elementele contra ale ReactJS

  1. Biblioteca este în continuă dezvoltare, și din cauza asta tinde să fie instabilă - nu există încă o versiune LTS (long term support);
  2. Documentație destul de săracă;
  3. JSX - sintaxa pentru a folosi HTML în cadrul codului JavaScript - nu este chiar cea mai bună soluție din punct de vedere al securității;
  4. Probleme cu SEO - paginile dinamice generate de către ReactJS nu se pot indexa sau se indexează slab în motoarele de căutare - există soluții și nu este chiar o problemă majoră însă necesită muncă în plus;

ReactJS și React Native - care-i diferența?

La doar doi ani după lansarea bibliotecii ReactJS, în anul 2015 Facebook a creat React Native. În timp ce biblioteca ReactJS este dezvoltată pentru crearea de interfețe web, React Native este un framework hibrid de dezvoltare a aplicațiilor pentru iOS și Android, care vă permite să reutilizați până la 95% din cod, lăsând restul la proiectarea interfețelor specifice platformei.

Diferențele tehnice între ele sunt cauzate de scopurile platformei:

  • În timp ce ReactJS utilizează Virtual DOM pentru a reda codul browserului, React Native folosește API-urile native ca și o punte pentru a reda componentele pe platformele mobile. De exemplu, pentru componentele Android, utilizează Java API iar pentru iOS Objective-C.
  • React Native nu utilizează codul HTML. Deci, dacă ați lucrat cu ReactJS înainte, va trebui să vă familiarizați cu sintaxa React Native. De exemplu, utilizează în loc de

    și în loc de

    .
  • Deoarece React Native nu utilizează CSS, caracteristicile CSS standard, cum ar fi animația, rulează cu API speciale din cadrul React Native.

Elementele pro ale React Native

  1. React Native utilizează JavaScript - un limbaj de programare foarte rapid și popular;
  2. Controalele native și modulele native în React Native îmbunătățesc semnificativ performanța aplicației;
  3. React Native conține toate caracteristicile ReactJS, care vizează la îmbunătățirea UI (user interface);

Elementele contra ale React Native

  1. Documentația săracă a frameworkului;
  2. Experiență necesară în dezvoltarea modulelor native Android și iOS;
  3. Componente terțe foarte puține;
  4. Instabilitate, probleme cu complatibilatatea și foarte multe erori;

Gadget-ul cu care controlăm visurile!

Aplicații care folosesc ReactJs și React Native

Instagram. Echipa Instagram a dorit să construiască un site web în formă de aplicație web, pentru a permite și utilizatorilor web să acceseze platforma socială, nu doar prin intermediul aplicației mobile. Pentru acest scop, ReactJS părea cea mai potrivită soluție. Aplicația web a fost optimizată și este rapidă și confortabilă pentru utilizatori. Acum, aplicațiile mobile și web sunt construite cu React.

Netflix. Netflix, care a adoptat ReactJS în 2015, îl folosește acum împreună cu Gibbon, un strat de randare. În acel moment, Netflix a ales React datorită modelului său de flux unic de date unidirecționale și a abordării declarative a programării.

Airbnb. Compania a decis să treacă la ReactJS datorită ușurinței de a reutiliza componentele existente. Acum este folosit în structurile interne ale aplicației mobile și aplicației web ale companiei.

Gabriel Gașpar

CTO-ul firmei Hackergeek Studio

 

Articole similare selectate pentru tine

Aplicaţie românească, premiată de Google Play

MondlyKids, aplicația de învățat limbi străine pentru copii creată de startup-ul Mondly din Brașov, a fost inclusă în luna decembrie în topul celor mai bune aplicații Android pentru copii din lume.

Aplicație de dicție în limba română pentru iPhone și Android

Prima aplicație de dicție în limba română tocmai a fost lansată oficial și poate fi descărcată gratuit, fiind disponibilă atât pentru iPhone cât și pentru Android.