Mis on ReactNative'i ja NativeScripti peamine erinevus?


Vastus 1:
Kohustustest loobumine: Selle vastuse eesmärk pole tõestada, et üks on parem kui teine, ma ei taha kritiseerida mõlema meeskonna hämmastavaid teoseid, vaid loetleda erinevused NativeScripti ja React Native'i vahel.

Need kaks raamistikku on mõlemad osa uue põlvkonna platvormidevahelisest mobiilsest raamistikust, mis EI kasuta brauserit selle loomulikusse rakendusse pakkimiseks. Need on _ tegelikud_, kasutades loomuliku OS-i loomuliku kasutajaliidese komponente. Sellel on rakenduse UX-ile väga positiivne mõju. See võimaldab ka rakenduse kiiremat juurutamist, kuna rakenduse jaoks vajalik lõplik poleerimine on suurusjärgus väiksem, kui on vaja kõigi brauseripõhiste rakenduste PhoneGap puhul.

Nüüd teie küsimuse juurde. Erinevusi on palju - nii tehnilisi kui ka mittetehnilisi.

Mittetehnilise poole pealt

NativeScripti tarnib Telerik (Progressi ettevõte) - väga tuntud arendajaettevõte ja Nativecripti raamistik on osa nende põhitegevusest. ReactNative on üles ehitatud Facebookist, mis, nagu me kõik teame, ei ole arendaja tööriistade ettevõte. Miks see on oluline? Kui loodate Telerikule, on teil võimalus saada tuge (arendaja või tootmine), mis on nõutav enamiku seal asuvate tõsiste tarkvarapoodide jaoks. Ka siis, kui töötate ettevõtetes, eeldate teatud virna tööriistu, teenuseid ja lahendusi. Näiteks koodide krüptimine ja turvalisus. Teilik / NativeScriptis saate seda kõike kasutada, kuid see pole Facebooki / Reacti prioriteet.

Väärib märkimist, et NativeScript on juba versioon 2.0, samas kui ReactNative on alles küpsuse algusaegadel. Seda tuleks ka sobiva raamistiku valimisel riski hindamisel välja arvutada. NativeScriptiga on teil kogu virn saadaval nii iOS-i kui ka Androidi jaoks. RN-i jaoks, nagu see on praegu, on platvormidevahelises loos endiselt palju lünki. Neid lünki täidetakse iga päev ja FB meeskonna sõnul on see RN-i meeskonna üks peamisi prioriteete järgmise aasta jooksul. NativeScripti jaoks on juba saadaval ka palju tasulisi tootlikkuse tööriistu, teenuseid ja komponente. See mängib suurt rolli, kui otsustatakse, millist raamistikku kasutada mis tahes kommertstarkvara ehitamisel.

Viimane mittetehniline asi on kogukonna suurus. Mõlemad raamid on avatud lähtekoodiga ja tasuta. ReactNative on React.js laiendus, nii et võite eeldada, et kogu react.js kogukond panustab sellele. Teisest küljest toetab NativeScripti Google ja see on suunatud AngularJS kogukonnale. Mõlemad kogukonnad on väga suured (miljonid arendajad) ja need kaks raamistikku on heades kätes. See mängib olulist rolli ka riski hindamisel.

Nüüd tehnilise poole pealt

Tonni erinevusi. ReactNative'i ja NativeScripti lähenemisviis on dramaatiliselt erinev, mis mõjutab arendaja kogemust ning tulemust ka omamaiste teekide kasutamise ja taaskasutamise võimaluste osas. Mõlemad pakuvad väga head jõudlust nii iOs kui ka Androidis. 60 kaadrit sekundis. Endiselt on stsenaariume, mida tuleb mõlemas raamistikus lihvida, kuid isegi tänapäeval käituvad nad tõeliselt omapäraste rakendustena.

ReactNative arhitektuur

Arhitektuurist rääkides - ReactNative, nagu ma juba eespool mainisin, on React.JS laiendus, nii et nad järgivad kasutajaliidese värskendamisel samu põhimõtteid nagu ReactJS. Näit. kasutades virtuaalset domeeni. Lühidalt - nad arvutavad välja muutused, mis peavad kasutajarakenduses toimuma _väljavälja keermes_, ja ​​rakendavad neid muudatusi partiides. Fakt, et nad teevad seda taustalõngal, on oma plussid ja miinused. Positiivne külg on muidugi see, et kasutajaliidese lõime ei puudutata (mis viib väga reageeriva kasutajaliidese juurde), kuid negatiivse poole pealt piirab see nende võimet suhelda _fast_ -ga vastava maapealse OS-iga. See tähendab, et kui teil on komponent, mis helistab looduslikku OS-i palju kõnesid, on rakendus väga aeglane, väga aeglane. Hea on see, et enamikul juhtudel pole seda vaja.

Halb on see, et kui peate kasutama kohandatud natiivkomponente või natiivseid API-sid, peate nende komponentide ja API-de juurde pääsemiseks teadma ObjC for iOS ja Java for Android. See võib olla paljude JS-i arendajate jaoks tehingu murdja. selle saavutamiseks NativeScriptis ei pea te ObjC-d / Java tundma, loe allpool.

 ReactNative'i veebisaidil on väga hea artikkel, milles on seda detailselt selgitatud ja nad mainivad seal, et nad plaanivad seda arhitektuuri muuta, nii et kasutajaliidese niidil tehakse sel põhjusel rohkem asju. Siin on tsitaat artiklist:

Ma ei usu, et me vajame või tahame oma keermemudelit drastiliselt muuta, nt. liigutades kõik põhilõimele, kuid peame tegema mõned päris põhimuudatused.

Soovitan artiklit lugeda siit.

NativeScripti arhitektuur

NativeScripti põhimeeskonna arendajad kasutavad siin klassikalisemat lähenemisviisi. Nad kasutavad kasutajaliidese lõime, et kasutada sama liidest, mida kasutatakse enamikes populaarsetes raamistikes - Android, Windows jne. See võimaldab rakenduste arendamiseks palju lihtsamat viisi - teil on arendajana alati juurdepääs kasutajaliidesele teie rakenduse puu. Väärib märkimist, et kui peate midagi taustalõime käivitama, on see ka võimalik. Mõned põhikomponendid, näiteks http, image, sql lite andmebaas, teostavad tegelikult suure osa oma toimingutest taustlõngal, et vähendada kasutajaliidese lõime koormust. Sellel lähenemisel on tohutu eelis, kui võimaldate juurdepääsu _any_-i API-le otse JavaScripti kaudu.

Palun lugege seda artiklit, mis selgitab NativeScripti keermestamise arhitektuuri põhjalikult - http: //developer.telerik.com/fea ...

Põhimõtteliselt pääsete juurde kogu puutumata API-le, millel on palju eeliseid, eriti kui peate rakendust pikemas perspektiivis toetama. Natiivsete API-de jaoks pole ühtegi ümbrist ja see muudab kogu kogemuse lihtsamaks ja vähem veaohtlikuks. Võite sõna otseses mõttes kirjutada näiteks com.android.button.init (). Selle eeliseks on ka see, et kogu kolmanda osapoole natiivsete raamatukogude kogu korstnat kasutatakse uuesti ilma muudatusi vajamata. See võimaldab hõlpsamini tarbida ja laiendusi luua. Praegu on kogukonnast saadaval üle 220 laienduse. Selle lähenemisviisi teine ​​eelis on see, et CSS-i ja JavaScripti abil loodud NativeScripti animatsioonid töötavad palju sujuvamalt, kuna need teostatakse kasutajaliidese niidil.

Nagu ma eespool mainisin, toetab NativeScripti Google, nii et kui olete nurga arendaja, tunnete end NativeScripti kasutamisel koduselt - kogu Angular 2 API on toetatud ja saate oma koodi NativeScripti ja veebirakenduse vahel uuesti kasutada.

Ülaltoodud arhitektuur võimaldab NativeScriptil pakkuda uute OS-i väljaannete jaoks 0-päevast tuge. Praegu on NativeScripti tugi Android N väljaandele, mis on endiselt alfafaasis.

JS mootorid, mida kasutatakse rakenduse koodi täitmiseks

Väärib märkimist, et mõlemad raamistikud võimendavad olemasolevaid JavaScripti mootoreid JavaScripti koodi käivitamiseks käitusel. ReactNative kasutab JavaCore'i iOS-is ja Android-is. NativeScript kasutab Androidi jaoks V8 ja iOS-is JavaScripti. Äsja lisas Microsoft ReactNative'is tugiteenuse Windows Universalile ja nad kasutavad oma Chakra JS mootorit. Ma pole kindel, kuidas see ülejäänud ReactNative'i koodiga liidetakse, kuna see (ma kahtlustan) tähendab tööriistades palju muudatusi - erinev silur, profiilija, kui nimetada mõnda.

Standardite kasutamine

Tarkvara muudab palju, seetõttu on stsenaariumi jaoks sobiva raamistiku valimisel oluline riskide vähendamiseks tugineda standarditele.

Mõlemad raamistikud kasutavad standarditele vastavat ECMAScripti koodi, mis võimaldab koodi taaskasutamist veebi- ja mobiilirakenduste vahel, mis annab nende kasutamisel väga hea investeeringutasuvuse.

NativeScripti plussideks on see, et see kasutab ka standardile vastavat CSS-deklaratsiooni. See võimaldab mobiili- ja veebirakenduse vahel luua palju suuremaid oskusi / koodi taaskasutamise lugu. See toetab isegi animatsioonide kirjeldamist CSS-i võtmekaadrite abil. Kõik see taandub natiivkoodile, nii et CSS-i deklaratsioonid tõlgitakse looduslikeks kogemusteks. Vaadake, kuidas kasutada CSS-i loomsete animatsioonide kirjutamiseks.

KÜ deklaratsioon

Mõlemas raamistikus võib rakenduse kasutajaliidese kirjeldamiseks olla deklaratiivne süntaks. ReactNative kui Reaktist leitud märke kasutamine kasutajaliidese deklaratsiooni ühendamiseks ühte faili. NativeScript kasutab jällegi klassikalisemat lähenemist, lubades teil mõlemad UI luua koodiga või UI rakendamiseks eraldi faili kaudu, mis võimaldab teil kasutada klassikalisi MVC / MVVM mustreid. Ma ei ütleks, kumb on parem - see on isikliku maitse küsimus. Minu jaoks on UI ja koodi eraldamine MVVM-iga parem, kuid seda olen kirjutanud, nii et olen erapoolik.

Kui teate, et CSS on NativeScriptis, on teil palju lihtsam rakendusi stiilida, kasutades väliseid stiililehti või tekstisisest stiili. ReactNative kasutab JSON-deklaratsioonide põhjal stiilimiseks nende enda märget. Jällegi sarnane CSS-iga, kuid erinev.

Keeletugi

Nii ReactNative kui ka NativeScript kasutavad tänapäevast JavaScripti. Nad mõlemad toetavad Paabeli, et kasutada uusimat ja suurimat JS-i.

Kuna NativeScript on küpsem, on siin ka rohkem võimalusi. NativeScriptil on TypeScriptiga tihe integreerimine (tööriistad, IDE jne). See annab täiendava integreerimise Angular 2-ga, suurendab tootlikkust ja muudab nende rakenduste pikaajalise toe palju lihtsamaks.

Arendaja kogemus, silumine

Mõlemad raamistikud pakuvad rakenduste kiire arendamise võimalust - mõlemad pakuvad kuuma uuesti laadimise funktsionaalsust - see on võimalus näha koodimuutusi seadmes kohe, ilma et oleks vaja rakendust uuesti laadida (enamikul juhtudel).

Arendajate kogemuste ja IDE-de osas, kuna kogu rakenduste virn on JavaScripti, võite kasutada mis tahes saadaolevat IDE-d. Facebook töötab välja oma IDE-d, mida selle kirjutamise ajal veel ei avaldata, NativeScript reklaamib Visual Studio koodi soovitatava redigeerijana. Microsoftil on nende VS-koodi siluri jaoks olemas nii NativeScripti kui ka ReactNative'i versioon.

Testimine

Kuna see on kõik standarditele vastav JavaScript, saate ühiktestide kirjutamiseks kasutada mis tahes olemasolevaid tööriistu. Mõlemad raamid toetavad kõige populaarsemaid testraamistikke, nagu Karma, Jasmine, Mocha.

Kuna kasutajaliides on täielikult natiivne, võite funktsionaalseks testimiseks kasutada mis tahes testimisriista, mis töötab koos loomulike raamidega, nagu näiteks Appium.

Vaadake, kuidas testid NativeScriptis kirjutada. ReactNative'is.

Etendus

Nagu ma juba mitu korda etenduse poole peal mainisin, võite mõlema raamistikuga rahule jääda. See on tuntud PhoneGapi rakendustega võrreldes suur edasiminek. Lõplikud rakendused ei erine päris pärisrakendustest. Pärisnatiivsete kasutajaliidese komponentide kasutamine on mõlemas raamistikus tohutu eelis.

Mõlemal raamistikul on iOS-is erakordne jõudlus - nii laadimisaja (mõlema jaoks alla sekundi) kui ka FPS-i (enamikul juhtudel 60 kaadrit sekundis) osas.

Androidi puhul on jõudlus endiselt hea, kuid aluseks oleva native OS-i arhitektuuri tõttu pole üldine jõudlus nii hea kui iOS-i puhul. Laadimisaeg ja käitusaeg pole nii lihvitud kui iOS-is. Kuid see kehtib ka looduslike rakenduste puhul, nii et ärge olge NativeScripti ja ReactNative'i jaoks liiga valiv. Võrreldes NativeScriptiga (1,4 s vs 2,2 s) on ReactNativel veidi parem (kiirem) laadimisaeg Androidis. NativeScripti meeskond tegeleb sellega mälupiltide hetktõmmiste tutvustamisega, kuid see funktsioon on endiselt eksperimentaalne.

Pärisrakendused

Mõne pärisrakenduse jaoks võite NativeScripti köögivalamurakenduse jaoks kasutada järgmisi linke:

Androidis -> https: //play.google.com/store/ap ...

IOS-is -> https: //itunes.apple.com/bg/app / ...

Või saate vaadata rakendusi NativeScripti näidisgaleriist.

ReactNative'i jaoks pole ma teadlik ühegi köögivalamute rakendusest, kuid võite kontrollida mõnda vitriinirakendust. Parima rakenduse saamiseks kontrollige kindlasti Facebooki tehtud rakendusi.

Lõpetuseks

Minu jaoks põhineb peamine otsuste tegemine teie olemasolevatel oskustel - kui teil on nurgaoskusi, siis kasutage lihtsalt Nativecripti, kui olete Reacti arendaja, on ReactNative tuttavam ja hõlpsamini kasutatav. Kommertstarkvara juurutamisel kaaluge NativeScriptis ja nurga oskuskomplektis pakutavaid tugiteenuseid ja teenuseid. Kui vajate kohandatud looduslikku kasutajaliidest, sobib NativeScript teile paremini, sest nende kasutamiseks ei pea te tundma ObjC-d või Java-d. Päeva lõpuks on mõlemad raamistikud kaasaegsed ja täidavad oma lubadusi ning see toob kaasa tipptasemel rakendused.

Õnnelik kodeerimine ja loodan, et ülaltoodu aitab :). Küsige minult lisateavet. Kindlasti on palju asju, mida siin ei käsitleta, kuid võin minna kaugemale ja selgitada kõike ülaltoodud sügavamate detailideni. Minuga võite tutvuda twitteris - @ValioStoychev.

Avalikustamine: töötan NativeScripti juhatajana, kuid püüdsin olla täiesti erapooletu. Loodan, et hindate ülaltoodud sisu. Kui arvate, et on valesid fakte, palun andke mulle sellest teada ja ma rakendan muudatused!


Vastus 2:

Erinevus reaalajas ja natiivscriptis

Nii React Native kui ka NativeScript on hämmastavad raamistikud. Mõlemad raamid on osa uue põlvkonna platvormidevahelisest mobiilsest raamistikust, mis EI kasuta brauserit selle loomulikku rakendusse pakkimiseks. Mõlema meeskonna tööd on suurepärased, kuid siin on mõned erinevused NativeScripti ja React Native'i vahel.

Lugege ka põhilisi reaalajas algatatud intervjuu põhiküsimusi

NativeScript

Reaktiivne natiiv

Vastutulelik, abivalmis kogukond.

Vastutulelik, abivalmis kogukond.

Pole mingit tõelist tootmiskasutust

Tõestatud tootmiskasutus.

Hooldab väike ettevõte.

Hooldab tohutu ettevõte.

Vähem populaarne

Populaarne.

Vanem kui reaalajas sündinud

Uuem kui NativeScript


Vastus 3:

Erinevus reaalajas ja natiivscriptis

Nii React Native kui ka NativeScript on hämmastavad raamistikud. Mõlemad raamid on osa uue põlvkonna platvormidevahelisest mobiilsest raamistikust, mis EI kasuta brauserit selle loomulikku rakendusse pakkimiseks. Mõlema meeskonna tööd on suurepärased, kuid siin on mõned erinevused NativeScripti ja React Native'i vahel.

Lugege ka põhilisi reaalajas algatatud intervjuu põhiküsimusi

NativeScript

Reaktiivne natiiv

Vastutulelik, abivalmis kogukond.

Vastutulelik, abivalmis kogukond.

Pole mingit tõelist tootmiskasutust

Tõestatud tootmiskasutus.

Hooldab väike ettevõte.

Hooldab tohutu ettevõte.

Vähem populaarne

Populaarne.

Vanem kui reaalajas sündinud

Uuem kui NativeScript


Vastus 4:

Erinevus reaalajas ja natiivscriptis

Nii React Native kui ka NativeScript on hämmastavad raamistikud. Mõlemad raamid on osa uue põlvkonna platvormidevahelisest mobiilsest raamistikust, mis EI kasuta brauserit selle loomulikku rakendusse pakkimiseks. Mõlema meeskonna tööd on suurepärased, kuid siin on mõned erinevused NativeScripti ja React Native'i vahel.

Lugege ka põhilisi reaalajas algatatud intervjuu põhiküsimusi

NativeScript

Reaktiivne natiiv

Vastutulelik, abivalmis kogukond.

Vastutulelik, abivalmis kogukond.

Pole mingit tõelist tootmiskasutust

Tõestatud tootmiskasutus.

Hooldab väike ettevõte.

Hooldab tohutu ettevõte.

Vähem populaarne

Populaarne.

Vanem kui reaalajas sündinud

Uuem kui NativeScript


Vastus 5:

Erinevus reaalajas ja natiivscriptis

Nii React Native kui ka NativeScript on hämmastavad raamistikud. Mõlemad raamid on osa uue põlvkonna platvormidevahelisest mobiilsest raamistikust, mis EI kasuta brauserit selle loomulikku rakendusse pakkimiseks. Mõlema meeskonna tööd on suurepärased, kuid siin on mõned erinevused NativeScripti ja React Native'i vahel.

Lugege ka põhilisi reaalajas algatatud intervjuu põhiküsimusi

NativeScript

Reaktiivne natiiv

Vastutulelik, abivalmis kogukond.

Vastutulelik, abivalmis kogukond.

Pole mingit tõelist tootmiskasutust

Tõestatud tootmiskasutus.

Hooldab väike ettevõte.

Hooldab tohutu ettevõte.

Vähem populaarne

Populaarne.

Vanem kui reaalajas sündinud

Uuem kui NativeScript


Vastus 6:

Erinevus reaalajas ja natiivscriptis

Nii React Native kui ka NativeScript on hämmastavad raamistikud. Mõlemad raamid on osa uue põlvkonna platvormidevahelisest mobiilsest raamistikust, mis EI kasuta brauserit selle loomulikku rakendusse pakkimiseks. Mõlema meeskonna tööd on suurepärased, kuid siin on mõned erinevused NativeScripti ja React Native'i vahel.

Lugege ka põhilisi reaalajas algatatud intervjuu põhiküsimusi

NativeScript

Reaktiivne natiiv

Vastutulelik, abivalmis kogukond.

Vastutulelik, abivalmis kogukond.

Pole mingit tõelist tootmiskasutust

Tõestatud tootmiskasutus.

Hooldab väike ettevõte.

Hooldab tohutu ettevõte.

Vähem populaarne

Populaarne.

Vanem kui reaalajas sündinud

Uuem kui NativeScript


Vastus 7:

Erinevus reaalajas ja natiivscriptis

Nii React Native kui ka NativeScript on hämmastavad raamistikud. Mõlemad raamid on osa uue põlvkonna platvormidevahelisest mobiilsest raamistikust, mis EI kasuta brauserit selle loomulikku rakendusse pakkimiseks. Mõlema meeskonna tööd on suurepärased, kuid siin on mõned erinevused NativeScripti ja React Native'i vahel.

Lugege ka põhilisi reaalajas algatatud intervjuu põhiküsimusi

NativeScript

Reaktiivne natiiv

Vastutulelik, abivalmis kogukond.

Vastutulelik, abivalmis kogukond.

Pole mingit tõelist tootmiskasutust

Tõestatud tootmiskasutus.

Hooldab väike ettevõte.

Hooldab tohutu ettevõte.

Vähem populaarne

Populaarne.

Vanem kui reaalajas sündinud

Uuem kui NativeScript


Vastus 8:

Erinevus reaalajas ja natiivscriptis

Nii React Native kui ka NativeScript on hämmastavad raamistikud. Mõlemad raamid on osa uue põlvkonna platvormidevahelisest mobiilsest raamistikust, mis EI kasuta brauserit selle loomulikku rakendusse pakkimiseks. Mõlema meeskonna tööd on suurepärased, kuid siin on mõned erinevused NativeScripti ja React Native'i vahel.

Lugege ka põhilisi reaalajas algatatud intervjuu põhiküsimusi

NativeScript

Reaktiivne natiiv

Vastutulelik, abivalmis kogukond.

Vastutulelik, abivalmis kogukond.

Pole mingit tõelist tootmiskasutust

Tõestatud tootmiskasutus.

Hooldab väike ettevõte.

Hooldab tohutu ettevõte.

Vähem populaarne

Populaarne.

Vanem kui reaalajas sündinud

Uuem kui NativeScript