Koje su ključne razlike između ReactNative i NativeScript?


Odgovor 1:
Izjava o odricanju odgovornosti: Ovaj odgovor nema svrhu dokazati da je jedan bolji od drugog, ne želim kritizirati nevjerojatna djela oba tima, već navesti razlike između NativeScript i React Native.

Ova dva okvira su dio nove generacije cross-platformi za mobilne uređaje nove generacije koji NE upotrebljavaju preglednik za pakiranje u izvornu aplikaciju. Oni _actualy_ koriste nativne komponente UI iz izvornog OS-a. To ima vrlo pozitivan učinak na UX aplikacije. Također omogućuje bržu implementaciju aplikacije, jer je konačni lak potreban za aplikaciju veličine koje su manje potrebne za rad bilo koje aplikacije PhoneGap, preglednika.

Sad na vaše pitanje. Razlike postoje - tehničke i netehničke.

S netehničke strane

NativeScript isporučuje Telerik (tvrtka Progress) - vrlo poznata tvrtka za razvojne programere, a NativeScript Framework dio je njihove osnovne djelatnosti. ReactNative izgrađen je iz Facebooka, koji kao što svi znamo nije tvrtka za razvojne alate. Zašto je to važno? Kad se pouzdajete u Telerik, imate mogućnost dobiti podršku (programer ili proizvodnju) što je uvjet za većinu ozbiljnih prodavaonica softvera. Također ako radite u poduzećima očekuje vas određeni skup alata, usluga i rješenja. Na primjer, šifriranje i sigurnost. Sve to dobijate putem Telerik / NativeScript-a, ali to nije prioritet za Facebook / React.

Vrijedno je napomenuti i da je NativeScript već verzija 2.0, dok je ReactNative još u zrelim danima. To bi se, također, trebalo izračunati prilikom procjene rizika pri odabiru odgovarajućeg okvira. S NativeScript imate vam na raspolaganju cijeli snop i za iOS i Android. Za RN, kao i danas, još uvijek ima puno praznina u priči o više platformi. Te se praznine popunjavaju svakodnevno, a prema FB timu, ovo je jedan od glavnih prioriteta RN tima u sljedećoj godini. Za NativeScript je već dostupno mnoštvo alata, usluga i komponenti s plaćenom produktivnošću. Ovo igra veliku ulogu pri odlučivanju koji će se okvir koristiti za izradu komercijalnog softvera.

Posljednja netehnička stvar je veličina zajednice. Oba okvira su otvorenog koda i besplatna su. ReactNative je proširenje React.js, tako da možete pretpostaviti da će se cijela zajednica react.js kladiti na to. S druge strane NativeScript podržava Google i cilja na AngularJS zajednicu. Obje su zajednice vrlo velike (milijuni programera) i ta dva okvira su u dobrim rukama. To također igra glavnu ulogu u procjeni rizika.

Sada s tehničke strane

Tona razlike. Pristup koji koriste ReactNative i NativeScript dramatično su različiti što utječe na iskustvo programera i na sposobnost korištenja i ponovne upotrebe izvornih knjižnica. Oboje pružaju vrlo dobre performanse na iO-u i Androidu. 60fps većinu vremena. Još uvijek postoje scenariji koje je potrebno polirati u oba okvira, ali čak se i danas ponašaju kao izvorne aplikacije.

ReactNative Architecture

Govoreći o arhitekturi - ReactNative kao što sam već spomenula je proširenje za React.JS, tako da slijede iste principe za ažuriranje korisničkog sučelja kao u ReactJS. Npr pomoću virtualnog DOM-a. Ukratko - oni izračunavaju promjene koje se trebaju dogoditi s korisničkim sučeljem na _background thread-u i primjenjuju te promjene u skupinama. Činjenica da ovo rade na pozadinskoj niti ima svoje prednosti i nedostatke. Pozitivna strana je, naravno, to što UI nit ne dira (što dovodi do vrlo osjetljivog korisničkog sučelja), ali s negativne strane to ograničava njihovu sposobnost komuniciranja _fast_ s osnovnim matičnim OS-om. To znači da ako imate komponentu koja upućuje mnogo poziva u matični OS aplikacija će biti vrlo spora, stvarno spora. Dobra stvar je što to nije potrebno u većini slučajeva.

Loša stvar je da ako trebate koristiti prilagođene izvorne komponente ili izvorne API-je, morate pristupiti ObjC za iOS i Java za Android kako biste pristupili tim komponentama i API-jevima. Za mnoge programere JS ovo može biti prekid ugovora. Ne morate znati ObjC / Java da biste to postigli u NativeScript, pročitajte u nastavku.

 Postoji vrlo dobar članak na web stranici ReactNative koji to detaljno objašnjava i tamo spominju da planiraju promijeniti tu arhitekturu, tako da se iz tog razloga na stvarima UI-a radi više stvari. Evo citata iz članka:

Mislim da ne trebamo ili ne želimo drastično promijeniti naš model navoja, npr. pomicanjem svega na glavnu nit, ali trebamo izvršiti neke jezgrene promjene.

Preporučam članak pročitati ovdje.

NativeScript arhitektura

Razvojni timovi NativeScript ovdje imaju više klasični pristup. Oni koriste UI nit za izvršavanje korisničkog sučelja koji je isti model koji se koristi u većini popularnih okvira - Android, Windows itd. To omogućuje mnogo jednostavniji način razvoja aplikacija - vi kao programer uvijek imate pristup korisničkom sučelju stablo vaše prijave. Vrijedi napomenuti da je to potrebno i ako trebate izvršiti nešto na pozadinskoj niti. Neke od najvažnijih komponenti poput http, image, sql lite baze podataka zapravo izvode većinu svojih operacija na pozadinskoj niti kako bi smanjili opterećenje na korisničkom sučelju. Ovaj pristup ima ogromnu prednost što vam omogućuje pristup _any_ native API-u izravno s JavaScripta.

Molimo pročitajte ovaj članak koji detaljno objašnjava arhitekturu navoja za NativeScript - http: //developer.telerik.com/fea ....

U osnovi pristupate čitavim izvornim API-ima koji su netaknuti i koji imaju puno prednosti, posebno kada morate dugoročno podržavati aplikaciju. Ne postoje omoti za native API-je, a to čini cijelo iskustvo jednostavnijim i manje sklonim pogreškama. Doslovno možete napisati stvari poput - com.android.button.init (). To također ima korist od direktne upotrebe čitavog niza izvornih knjižnica trećih strana bez potrebe za bilo kakvim izmjenama. Ovo omogućuje lakšu potrošnju i stvaranje dodataka. Trenutno iz zajednice postoji više od 220 proširenja. Druga je prednost ovog pristupa ta što će animacije u NativeScript-u koje su stvorene korištenjem CSS-a i JavaScript-a teći mnogo glatko jer se izvode na UI niti.

Kao što sam gore spomenuo, NativeScript podržava Google, tako da ako ste Angular developer, osjećate se kao kod kuće ako koristite NativeScript - podržava se cijeli API Angular 2 i možete ponovo koristiti kôd između NativeScript i web aplikacije.

Gornja arhitektura omogućuje NativeScript da nudi 0-dnevnu podršku za nova izdanja OS-a. Trenutno NativeScript imaju podršku za, još uvijek u Alpha fazi, izdanje Android N.

JS motori koji se koriste za izvršavanje koda aplikacije

Vrijedno je napomenuti da oba okvira koriste postojeće JavaScript motore za izvršavanje JavaScripta tijekom izvođenja. ReactNative koristi JavaScriptCore na iOS-u i Androidu. NativeScript koristi V8 na Androidu i JavaScriptCore na iOS-u. Nedavno je Microsoft dodao podršku za Windows Universal u ReactNative i koriste vlastiti Chakra JS motor. Nisam siguran kako će se to spojiti s ostatkom ReactNative koda jer će (sumnjam) podrazumijevati mnogo promjena u alatu - različit program za uklanjanje pogrešaka, profil, da nabrojim samo nekoliko.

Korištenje standarda

Softver se puno mijenja, stoga je važno osloniti se na standarde kako biste smanjili rizik pri odabiru pravog okvira za svoj scenarij.

Oba okvira koriste ECMAScript kôd koji je usklađen sa standardima, što omogućava ponovnu upotrebu koda između web i mobilnih aplikacija, što dovodi do vrlo dobrog povrata ulaganja (ROI) prilikom njihove uporabe.

Prednosti za NativeScript je da koristi i CSS deklaraciju koja je u skladu sa standardom. To omogućava mnogo veću priču o ponovnoj upotrebi vještina / koda između mobilne i web aplikacije. Čak podržava opisivanje animacija pomoću CSS okvira ključeva. Sve se to svodi na izvorni kod pa se CSS deklaracije prevode u izvorno iskustvo. Pogledajte kako koristiti CSS za pisanje izvornih animacija.

UI deklaracija

U oba okvira možete imati deklarativnu sintaksu za opis korisničkog sučelja aplikacije. ReactNative koristi upotrebu notacije pronađene u React za povezivanje UI deklaracije u jednu datoteku. NativeScript opet koristi klasičniji pristup omogućujući vam da izgradite korisničko sučelje s kodom ili preko zasebne datoteke za implementaciju korisničkog sučelja, omogućavajući vam korištenje klasičnih MVC / MVVM obrazaca. Ne bih rekao koji je bolji - to je stvar osobnog ukusa. Za mene je razdvajanje između korisničkog sučelja i koda bolje kod MVVM, ali ovo je ono na što sam navikao pisati pa sam pristran.

Ako znate da će CSS u NativeScript biti puno lakši za vas da aplikacije stilizirate pomoću vanjskih tablica stilova ili inline stylinga. ReactNative koristi svoju vlastitu notaciju za stiliziranje na temelju JSON deklaracija. Opet slično CSS-u, ali drugačije.

Jezična podrška

I ReactNative i NativeScript koriste moderni JavaScript. Oboje podržavaju Babel kako bi koristili najnovije i najveće JS.

Kako je NativeScript zreliji ovdje ima i više mogućnosti. NativeScript imaju čvrstu integraciju (alat, IDE itd.) S TypeScriptom. To daje dodatnu integraciju s Angular 2 i povećava produktivnost i znatno olakšava dugoročnu podršku tim aplikacijama.

Iskustvo programera, Otklanjanje pogrešaka

Oba okvira nude mogućnost razvojnih aplikacija na brzi način - oba nude funkcionalnost ponovnog učitavanja - ovo je mogućnost da se kôd odmah promijeni na uređaju bez potrebe za ponovnim učitavanjem aplikacije (u većini slučajeva).

Što se tiče iskustva razvojnog programera i IDE-a, budući da je čitav niz aplikacija JavaScript, možete koristiti bilo koji IDE dostupan. Facebook rade na svom IDE-u koji još uvijek nije objavljen u vrijeme pisanja ove knjige, NativeScript promovira Visual Studio Code kao preporučeni urednik. Microsoft ima implementaciju i za NativeScript i ReactNative za uklanjanje pogrešaka VS koda.

Testiranje

Kako je JavaScript usklađen sa svim standardima, za pisanje testova na jedinice možete koristiti bilo koji od dostupnih alata. Oba okvira podržavaju najpopularnije testne okvire poput Karme, Jasmine, Mocha.

Za funkcionalno testiranje, budući da je korisničko sučelje u potpunosti domaće, možete koristiti bilo koji testni alat koji radi s nativnim okvirima poput Appiuma.

Pogledajte kako pisati testove u NativeScript. U ReactNative.

Izvođenje

Kao što sam već spomenuo nekoliko puta gore, na strani performansi bit ćete zadovoljni s oba okvira. To je ogromno poboljšanje u odnosu na poznate aplikacije PhoneGap. Konačne aplikacije ne razlikuju se od stvarnih izvornih aplikacija. Upotreba stvarnih izvornih komponenti korisničkog sučelja ogromna je korist za oba okvira.

Oba okvira imaju izvanredne performanse na iOS-u - i u pogledu vremena učitavanja (manje od sekunde za oboje), i u pogledu FPS-a (60fps u većini slučajeva) tijekom izvođenja.

Na Androidu su performanse i dalje dobre, ali zbog osnovne izvorne arhitekture OS-a, ukupne performanse nisu tako dobre kao na iOS-u. Vrijeme učitavanja i vrijeme izvođenja nisu tako polirani kao na iOS-u. Ali to vrijedi i za čiste izvorne aplikacije, pa nemojte biti previše izbirljivi na NativeScript i ReactNative. ReactNative ima malo bolje (brže) vrijeme učitavanja na Androidu u odnosu na NativeScript (1.4s prema 2.2s). NativeScript tim rješava se uvođenjem snimki memorijske hrpe, ali ova je značajka i dalje eksperimentalna.

Prave aplikacije

Za neke stvarne aplikacije možete pogledati sljedeće veze za NativeScript aplikaciju sudopera:

Na Androidu -> https: //play.google.com/store/ap ...

Na iOS -> https: //itunes.apple.com/bg/app / ...

Ili možete provjeriti aplikacije iz galerije izloga NativeScript.

Za ReactNative nisam svjestan nijedne aplikacije sudopera, ali možete provjeriti bilo koju od vitrina. Obavezno provjerite aplikacije koje je učinio Facebook za najbolju implementaciju.

U zatvaranju

Za mene osobno, glavno odlučivanje temelji se na vašim postojećim vještinama - ako imate kutne vještine, samo koristite NativeScript, a ako ste programer React, smatrat ćete da je ReactNative poznatiji i lakši za upotrebu. Ako implementirate komercijalni softver, razmislite o podršci i uslugama dostupnim u NativeScript i ugaonom umijeću. Ako vam treba više prilagođenog korisničkog sučelja NativeScript više će vam odgovarati jer ne biste trebali znati ObjC ili Java da biste ih koristili. Na kraju dana oba su okvira moderna i ispunjavaju svoje obećanje, a to će dovesti do vrhunskih aplikacija.

Sretno kodiranje, a nadam se da gore navedeno pomaže :). Slobodno me pitajte za više detalja. Sigurno ima puno stvari koje ovdje nisu pokrivene, ali mogu dalje i objasniti sve gore u još dubljim detaljima. Možete me kontaktirati na twitteru - @ValioStoychev.

Otkrivanje: Radim kao PM za NativeScript, ali pokušao sam biti potpuno nepristran. Nadam se da ćete cijeniti gornji sadržaj. U slučaju da mislite da postoje netočne činjenice, obratite mi se i primijenit ću izmjene!


Odgovor 2:

Razlika između React Native i NativeScript

I React Native i NativeScript nevjerojatni su okviri. Oba okvira dio su novih generacija više platformskih mobilnih okvira koji NE upotrebljavaju preglednik za pakiranje u Native aplikaciju. Radovi oba tima izvrsni su, ali ovdje treba navesti neke razlike između NativeScript i React Native.

Pročitajte i osnovna pitanja o intervjuu s izvornim reakcijama

NativeScript

Reagirati Native

Odgovarajuća, korisna zajednica.

Odgovarajuća, korisna zajednica.

Nema „stvarne“ proizvodnje

Dokazano korištenje proizvodnje.

Održava ih mala tvrtka.

Održava ih ogromna tvrtka.

Manje popularna

Popularan.

Stariji od React Native

Novije od NativeScript-a


Odgovor 3:

Razlika između React Native i NativeScript

I React Native i NativeScript nevjerojatni su okviri. Oba okvira dio su novih generacija više platformskih mobilnih okvira koji NE upotrebljavaju preglednik za pakiranje u Native aplikaciju. Radovi oba tima izvrsni su, ali ovdje treba navesti neke razlike između NativeScript i React Native.

Pročitajte i osnovna pitanja o intervjuu s izvornim reakcijama

NativeScript

Reagirati Native

Odgovarajuća, korisna zajednica.

Odgovarajuća, korisna zajednica.

Nema „stvarne“ proizvodnje

Dokazano korištenje proizvodnje.

Održava ih mala tvrtka.

Održava ih ogromna tvrtka.

Manje popularna

Popularan.

Stariji od React Native

Novije od NativeScript-a


Odgovor 4:

Razlika između React Native i NativeScript

I React Native i NativeScript nevjerojatni su okviri. Oba okvira dio su novih generacija više platformskih mobilnih okvira koji NE upotrebljavaju preglednik za pakiranje u Native aplikaciju. Radovi oba tima izvrsni su, ali ovdje treba navesti neke razlike između NativeScript i React Native.

Pročitajte i osnovna pitanja o intervjuu s izvornim reakcijama

NativeScript

Reagirati Native

Odgovarajuća, korisna zajednica.

Odgovarajuća, korisna zajednica.

Nema „stvarne“ proizvodnje

Dokazano korištenje proizvodnje.

Održava ih mala tvrtka.

Održava ih ogromna tvrtka.

Manje popularna

Popularan.

Stariji od React Native

Novije od NativeScript-a


Odgovor 5:

Razlika između React Native i NativeScript

I React Native i NativeScript nevjerojatni su okviri. Oba okvira dio su novih generacija više platformskih mobilnih okvira koji NE upotrebljavaju preglednik za pakiranje u Native aplikaciju. Radovi oba tima izvrsni su, ali ovdje treba navesti neke razlike između NativeScript i React Native.

Pročitajte i osnovna pitanja o intervjuu s izvornim reakcijama

NativeScript

Reagirati Native

Odgovarajuća, korisna zajednica.

Odgovarajuća, korisna zajednica.

Nema „stvarne“ proizvodnje

Dokazano korištenje proizvodnje.

Održava ih mala tvrtka.

Održava ih ogromna tvrtka.

Manje popularna

Popularan.

Stariji od React Native

Novije od NativeScript-a


Odgovor 6:

Razlika između React Native i NativeScript

I React Native i NativeScript nevjerojatni su okviri. Oba okvira dio su novih generacija više platformskih mobilnih okvira koji NE upotrebljavaju preglednik za pakiranje u Native aplikaciju. Radovi oba tima izvrsni su, ali ovdje treba navesti neke razlike između NativeScript i React Native.

Pročitajte i osnovna pitanja o intervjuu s izvornim reakcijama

NativeScript

Reagirati Native

Odgovarajuća, korisna zajednica.

Odgovarajuća, korisna zajednica.

Nema „stvarne“ proizvodnje

Dokazano korištenje proizvodnje.

Održava ih mala tvrtka.

Održava ih ogromna tvrtka.

Manje popularna

Popularan.

Stariji od React Native

Novije od NativeScript-a


Odgovor 7:

Razlika između React Native i NativeScript

I React Native i NativeScript nevjerojatni su okviri. Oba okvira dio su novih generacija više platformskih mobilnih okvira koji NE upotrebljavaju preglednik za pakiranje u Native aplikaciju. Radovi oba tima izvrsni su, ali ovdje treba navesti neke razlike između NativeScript i React Native.

Pročitajte i osnovna pitanja o intervjuu s izvornim reakcijama

NativeScript

Reagirati Native

Odgovarajuća, korisna zajednica.

Odgovarajuća, korisna zajednica.

Nema „stvarne“ proizvodnje

Dokazano korištenje proizvodnje.

Održava ih mala tvrtka.

Održava ih ogromna tvrtka.

Manje popularna

Popularan.

Stariji od React Native

Novije od NativeScript-a


Odgovor 8:

Razlika između React Native i NativeScript

I React Native i NativeScript nevjerojatni su okviri. Oba okvira dio su novih generacija više platformskih mobilnih okvira koji NE upotrebljavaju preglednik za pakiranje u Native aplikaciju. Radovi oba tima izvrsni su, ali ovdje treba navesti neke razlike između NativeScript i React Native.

Pročitajte i osnovna pitanja o intervjuu s izvornim reakcijama

NativeScript

Reagirati Native

Odgovarajuća, korisna zajednica.

Odgovarajuća, korisna zajednica.

Nema „stvarne“ proizvodnje

Dokazano korištenje proizvodnje.

Održava ih mala tvrtka.

Održava ih ogromna tvrtka.

Manje popularna

Popularan.

Stariji od React Native

Novije od NativeScript-a