React-Native vs NativeScript: hea, halb ja kole.

Alustades pealkirjast .. jah, selle dramaatiline, kuid mitte liiga palju aega raiskav laseb meil lihtsalt süveneda minu esimestesse React-Native ja Nativescripti kogemustesse.

Selles postituses tahaksin rääkida oma kogemustest nende konkreetsete tehnoloogiatega alustamise osas ja sellest, mis mu kogemused mõruks, magusaks või mõrkjaks muutsid.

NativeScript Vs reaalajaline

Mingi kontekst nendes raamistikes. (võite selle osa vahele jätta, kui te juba teate, mis need on)

React Native ja NativeScript on kaks raamistikku, mis kasutavad JavaScripti jõudu ja paindlikkust tõeliselt looduslike rakenduste loomiseks. Nendest raamistikest on kõige huvitavam osa kirjutada üks kord - käivitage kõikjal.

Tähendab, ma võin koodi üks kord JavaScripti kirjutada ja saan ehitada oma rakenduse nii androidile kui ka IOS-ile. Nüüd peame meeles pidama, et need raamistikud pole mingil juhul sarnased kordovaga, kus see on lihtsalt Chrome'i brauseri eksemplar, mis töötab rakendusena. Natiivrakenduste loomine veebiarendustehnoloogiate abil kvaliteedis või jõudluses järeleandmisi tegemata on idufirmade jaoks nagu unistus, kuna see säästab palju aega ja raha.

Mõni taust minu kohta (järgmine osa on erinevused, nii et liikuge julgelt edasi)

Olen Androidi arendaja. Olen Android-i rakendusi arendanud Java ja XML-i abil juba umbes poolteist aastat. Nii palju kui ma armastasin Java programmeerimist, teadsin alati, et mu rakendus ei pääse enam kui 50% mobiiliturust (IOS). Ja tavalised kaebused selle kohta, kuidas Java nõuab vähem koodi tegemiseks liiga palju koodi, mida teised keeled saavad teha palju väiksema koodiga, koos aeglase emulaatori ja minu keskmise toitega arvutiga, võite öelda, et ma armastasin seda.

Sama loogika või funktsionaalsuse kahekordne programmeerimine kahe platvormi mahutamiseks oli väsitav ega olnud efektiivne ning usun kindlalt, et see muutub lähitulevikus, milles Javascript võib tõesti mängida suurt rolli. Seetõttu õppisin javascripti ja alustasin oma teekonda veebiarenduse kaudu.

Nii et minu “analüüs” nendes kahes raamistikus on algusest peale, mul polnud eelnevaid teadmisi ei reageerimise ega nurga kohta. Ainus raamistik, mis mulle meeldis, oli Vue JS.

Veetsin kaks head kuud, õppides ja saades need kaks raamistikku käima. Alustasin sellega, et sain aru, kuidas reageeriv ja nurkne töötab. Seejärel asuti katsetama oma mobiilikaaslastega.

Päris-pärismaalane

Reageeri - pärismaalane

Olin väga kindel, kui asi reageerima hakkas. Raamistikku toetas Facebook. Seda kasutasid AirBnB (enam ei kasuta), Instagram, Uber, Skype jne. Olin põnevil ja alustasin nende dokumentidega näidisprojekti seadistamiseks.

Olin kaks nädalat ummikus, enne kui arvasin, et reaalajas rakenduse loomiseks on kaks võimalust. Üks on läbi Expo ja teine ​​läbi hästi reageeriva.

Expo (loo-reageeri-emakeelena-rakendus)

Expo on nagu reageerivate naabrite mänguväljak, neil oli enamus vajalikke asju väljas, kuid erinevus oli nii ebamäärane, et see oli üli segane, kuni ma selle välja mõtlesin. Ausalt, need on käsud Expo projekti ja React-Native projekti käivitamiseks ilma expota.

Expo

looma-reageerima-pärisrakendus YourAppName

React-Native ilma Expota

react-native init YourAppName

React-Native Docs Getting Starting keskendub otse Expole. Vähe on tõendeid selle kohta, et on kaks erinevat viisi.

https://facebook.github.io/react-native/docs/getting-started.html

Enda kasuks jooksis Expo hämmastavalt hästi. Kiire oli kiire ja kõik, mida ta ütles, et on, kuid negatiivsed küljed ei ole kõik näiteks reakeelsed raamatukogud, näiteks ei toetata seda, see ei toeta veel taustteenuseid, nagu push-teated jne. Kui mul oleks vaja midagi, mis polnud expo-sõbralik, pidin ma React-Native'i abil selle sealt välja ehitama ja üles ehitama.

https://github.com/react-community/create-react-native-app/issues/516

React-Native algseadistamine

See oli tõeline õudusunenägu. Expo koos oma piirangutega töötas hästi, kuid reaktive-native algataja ajas mind segadusse esimesest päevast peale.

Projekt ei põhine esimesel katsel korrektselt, nii et selle toimimiseks peame seda paar korda uuesti üles ehitama. Siis sõltuvusprobleemid.

Põhisõltuvused on ebastabiilsed. Ma ei suutnud käivitada andmebaasist `` react-native init hello`` saadud baasprojekti, kuna installitud vaikesõltuvused pole täielikult ühilduvad.

Pidin vahetama “@ babel / runtime”: “7.0.0-beeta.55” ja “metro-react-native-babel-preset”: “0.45.5” ,. Kurat, vaata lihtsalt seda versiooni, mida kasutan reageerimiseks-navigeerimiseks.

„Reageeri-navigeerimine”: „git + https: //github.com/react-community/react-navigation.git#7edd9a7”,

Mis see isegi on. Kui mul polnud eelteadmisi, pidin selle kõik läbi käima ja lihtsalt rakenduse seadistama, seejärel pidin mõne peamise tulekahjubaasi funktsiooni täitmiseks uuesti pingutama.

Tavaline import ei tööta, nii et pidin

impordi Firebase kaustast @ firebase / app

impordi „@ firebase / auth”

mida ma pidin leidma Interneti kaudu. Üldiselt olin kuu lõpuks õnnetu ja polnud veel loonud lihtsat sisselogimiskuvaa, millega saaks navigeerida avaekraanile.

Eelised

Õppimiskõver oli väga lihtne. Mul oli Reactiga koheselt kirjutamine ja JSX-i kasutamine küljenduste struktureerimiseks. Stiil oli ka intuitiivne. React-native kasutab CSS-i atribuute javascripti objektidena. Kogukond oli väga abivalmis, nad mõistsid neid küsimusi ja olid väga selged, kuidas neid lahendada.

Ma tõesti soovisin, et saaksin veel mõnda aega React-Native'i kallal veeta, kuna see kõlab paberil nii hästi, kuid pikad ehituse ajad ja iga arengusetapi jaoks vajaliku pessijajahti pidamine päästsid mind sellest.

NativeScript

Omakeelne tekst

Nativescripti suhtes olin alguses skeptiline, kuna ükski suurtest mängijatest seda ei kasutanud, ja mulle jäi mulje, et kui Facebook reageerib pärismaalannale nii halvasti, siis kui palju võin Nativescriptilt oodata.

Olin nii täiesti eksinud ja olen õnnelik, et olin. Nativecript oli hõlpsalt üks lihtsamaid alustamiseks. Neil oli ka sarnane expo-platvorm (NativeScript PlayGround), kuid see oli nii selge, et see ei olnud suuremahuliste rakenduste jaoks.

Kõige suurem asi, see töötas väljastpoolt.

Dokumente hoiti hästi (mõlemal juhul), oli väga selge, mida ma teen. Komponente oli lihtne kätte saada ja õppida.

2–3 päeva jooksul sirvisin rakendust ja kasutasin Firebase'i autentimist. Nurgeline oli ülilihtne kätte saada nagu reageerimine ja ma armastasin sellega koos töötada, seekord tegeliku arenguga (NativeScripti varundav ettevõte).

Ainuke asi, millega pean veel harjuma, on Nativescripti järgitav paigutusmehhanism, navigeerimine oli ülilihtne üles seada. Ükski vajaminev väline pistikprogramm ei pannud mind pingutama, et nad töötaks.

Järeldus

Mõlemal raamistikul on tõeline potentsiaal ja neid saab kasutada hämmastavate rakenduste loomiseks. Algse Androidi arendajana saan ma mingil määral aru, kui keeruline on javascripti koodi androidi portida ja olen nende olemasolevate raamistike eest tänulik. Mõlemad raamistikud on suhteliselt uued ja nende väljatöötamiseks on olnud väga vähe aega, kuid isegi siis on vaieldamatu mõju, mis mõlemal on olnud mobiilitööstusele. Mulle meeldiks, kui uuriksin Angulariga sügavuti Nativscripti ja tahaksin millalgi tulevikus uuesti reageerida pärismaalasele.

(Märkus. Olen teadlik, et Nativescript oli saadaval ka koos Vue JS-iga, kuid see on väga uus ja kogukond alles ehitab selle ümber, nii et valisin nurga, millel on juba väljakujunenud kogukond.)

Täname, et tegutsesite siiani, ma tean, et see on pigem rentimine kui analüüs, kuid soovisin lihtsalt loetleda kogemused ja asjad, millele tähelepanu pöörata uutele arendajatele, kes seda esimest korda käsitlevad.