Ez az Airbnb már nem a React Native-ot használó indítás példája Elgondolkodtat bennünket, hogy a technológiával szemben támasztott elvárások helyesek-e. Elmélkedésként áttekinthetjük az Airbnb döntését, keményen meditált. Ennek bizonyítéka a bejelentést kísérő blogbejegyzések sora, amely elmagyarázza az okokat a legszakszerűbbtől a kulturálisig.

react

Is kiváló tanulás arról, hogy egy bizonyos dimenziókkal és elvárásokkal rendelkező technikai csapat miként vesz fel új technológiát és később kénytelen eldobni. Az ezzel járó következményekkel. Emlékezzünk arra, hogy a React Native nem egyszerű könyvtár vagy keretrendszer, de más következményei vannak, amelyek módosíthatják egy fejlesztői csapat munkamódszerét vagy akár kultúráját.

Nem az Airbnb volt az egyetlen cég, amely a napokban bejelentette a React Native elhagyását Udacity, szigorú bejegyzés közzététele indokokkal együtt. Sok fejfájást megemlítve néhányan találkoztunk azzal, hogy megpróbáltuk bevezetni a React Native programot egy meglévő alkalmazásba. Ebben az esetben egy kis, 4 fejlesztőből álló csapat hozta meg a döntést, szemben a közel 100 Airbnb mérnök.

Még a Facebook sem szabadult meg attól a híreszteléstől, miszerint még ők is elhagyták a React Native fejlesztés egy részét az őshonos javára Androidon és iOS-en, nem sokkal később határozottan cáfolták. Az F8-as előadásukban bemutatták, hogyan használják az alkalmazás különböző részeiben, például véradásban, válságkezelésben, adatvédelmi kezelési parancsikonokban vagy wellness-ellenőrzésekben.

A React Native alkalmazásának tényezői általában ezek:

  • Tudjon gyors előre. A teljes növekedést és evolúciót igénylő startup igényei gyorsan fejlődni kívánnak. És még inkább, ha mobil. A fejlesztők hiánya és a? Másolás? valamilyen formában az Android és az iOs fejlesztése.
  • Csak egyszer írja be ugyanazt a kódot, ahelyett, hogy szinte minden platformon megismételné. Itt meg kell különböztetnünk egy funkció/alkalmazás nulláról történő elindítását a React Native programban, vagy Java/Kotlin kóddal kell élnünk, és az Objective-C/Swift között.
  • Javítsa a fejlesztési tapasztalatokat. A mobil fejlesztési fordítási időkben még néhány IDE, például az Xcode sem nyújt jó élményt. Emiatt a React Native azt ígéri, hogy javítja a fejlesztők életminőségét, vagy legalábbis összeállítja az időket.
  • Tapasztalat javascript és webfejlesztés terén. Meggyőző ok, ha van egy tapasztalattal rendelkező csapat a frontenden, és nincs elegendő mobil fejlesztője, különösen, ha a React már használják az interneten.
  • Vonzza az új technológia iránt érdeklődő fejlesztőket. Bár az Android és az iOS még mindig csúcstechnológia, sok vállalat úgy látja, hogy a React Native egy olyan módszer, amely vonzza az embereket az új munkamódszerek iránt, és olyan technológiával, szemmel, amely a Facebook-tól származik. Valószínűleg nem tartozik a legjobb állítások közé, és nem könnyű a toborzók számára sem, de nem ez az első alkalom, hogy a marketing által vezérelt új technológiát alkalmazzuk.
  • Egyes vállalatok sikertörténetei akik használják: Az Airbnb volt az egyikük, de ne aggódj, sokkal több van.

Fejfájás a React Native-val

Az Udacity és az Airbnb által elszenvedett legnagyobb fejfájás az, hogy az "egyszer írj, fuss mindenhova" tulajdonított mottó nem olyan könnyű. Különösen azért, mert már nagyon sok olyan funkcióval rendelkeztek, amelyek anyanyelven kifejlesztettek. De a legfontosabb ebben az, hogy az alkalmazás legfontosabb részének natívnak kellett lennie, és kommunikálnia kellett a React Native-val. Valami nem triviális, ami a platformtól függően nem ugyanúgy működik, és külön erőfeszítést igényel, és semmi triviális.

Az Airbnb számos mérnökkel rendelkezik a szükséges infrastruktúra létrehozásához. Ami első pillantásra úgy tűnhet, hogy a React Native egyszerűsíteni fogja, az nem. Azt sem, hogy a React Native kiforratlansága miatt, ameddig az Airbnb használta, bizonyos dolgokat javítania kellett. Rávezetve őket arra, hogy tartsanak egy villát több mint 50 elkövetéssel. Minden verziófrissítés bonyolultabbá vált, azon túl, hogy nagy erőfeszítéseket tett a könyvtárak felépítésében, hogy igényeiket a React Native-hoz igazítsák.

Útközben, amint azt a sorozat harmadik bejegyzése részletezi, más kövek is vannak az út mentén:

Cross-platform csapat felépítése

Az Airbnb React Native beszámolójának egyik leghasznosabb eredménye az a csapat része. És ez valami alkalmazhatunk minden olyan technikai döntésre, amelyet egy csapaton belül meg kell hoznunk. Ez nem egyszerűen nyelv, könyvtár vagy keretrendszer. Vannak bizonyos döntések, mint például a React Native esetében befolyásolhatja a fejlesztői csapat működését, beleértve természetesen a terméket és a dizájnt is.

A React Native polarizált, Megmondhatja, ha beszél az Android és az iOS fejlesztőkkel. A legfőbb ok az, hogy ez az "ezüst golyó" nem ugyanúgy működik az egyes platformokon, ahogyan a leküzdés kihívásai vagy hibái sem. Tapasztalatától függően véleményezhet egyet. Természetesen nem mindannyian építjük ugyanazt az alkalmazást, és nem is egyformán összetettek, vagy nem ugyanazok a technológiai kihívások.

Az egyik első realitás, amellyel megtalálhatja a régóta várt, platformokon átívelő csapat építését továbbra is szüksége lesz szakértőkre mindhárom platformon. Mindkettő abban, hogy javítsuk a tapasztalatokat egyes egyedi elemekkel.

Nem csak azért, mert a kialakítás platformonként eltér, de a React Native bizonyos helyzetekben bizonyos alapértelmezett viselkedéssel rendelkezik, például a szövegmegjelenítés, a billentyűzet használata vagy maguk a Tevékenységek között, amelyeket meg kell változtatnia. És nem is említve a hibakereső részt, amikor a JavaScript-React mélységébe kerül, és annak kapcsolatát a natív környezettel. Nem minden fejlesztő van felkészülve erre.

Kíváncsi tény, hogy az Airbnb kiemeli, hogyan hatott rájuk mérnökök felvétele során. Számos Android vagy iOS fejlesztő habozott csatlakozni egy olyan céghez, amely annyira keményen fogad a React Native-ra.

A csapatok felosztása is összetett volt. Mindegyik kódbázist elosztották a natív (Android és iOS) és a React Native között. Az üzleti logika, modellek, állapotok stb. Megosztása egyre bonyolultabbá vált és nagyon kevés ember volt képes megérteni az egész teljes áramlását. A kód megosztása a web és a mobil között volt a cél, de ez már nem volt az igazi előny, mivel önállóan kellett használni és karbantartani.

Minden attól függ, hogy az alkalmazás a nulláról indul-e a React Native-ban, vagy hibrid (Android/iOS)

A platformok közötti fejlesztés a semmiből nem azonos a React Native kód integrálásával. Ez azt mondta, és szem előtt tartva az Airbnb és az Udacity problémáit: ezek a kockázatai. Most minden rajtad és az építeni kívánt alkalmazás típusán múlik.

1. Ha a semmiből szeretne egy alkalmazást létrehozni a React Native-ban, ahol a Javascript-kód nagy része

Menj előre, talán ez az ideális helyzet. Sok indulónak manapság, az első hónapokban már nincs szüksége Android és iOS programozóra. A 100% React alkalmazással építhet egy jó mvp amely mindkét platformon működik. Ehhez ismernie kell a teljes React Native ökoszisztémát, itt van egy jó ütemterv ehhez. Mindaddig, amíg a fejlődésed nem megy ki a megszokottól.

Mindig jó hátam lenne egy frontend csapattal, amely nagyon jól tudja a JavaScriptet. Ezzel elegendő lehet a React Native nagyszerű tapasztalata, még az XCode vagy az Android Studio érintése nélkül is.

2. A Swift/Objective-C vagy a Java/Kotlin alkalmazásban már viszonylag összetett alkalmazás van

Ez egyértelmű aknamező, ahol egy meglévő alkalmazásnak számos változáson kell átesnie az első lépés megtétele a React Native alkalmazással: kompatibilitási problémák a könyvtárakkal, külön tárolók kezelése, funkcionalitás áttelepítése vagy az üzleti vagy tartományi réteg kommunikálása. Az Airbnb és az Udacity mindenféle problémája összefutott.

A jelenlegi csapatának új technológiát kell megtanulnia, esetleg egyes funkciók ismereteit meg kell osztani például a JavaScript és a Java/Kotlin szakértői között. Továbbá hajlamosak elkülöníteni az alkalmazás kódját legalább 3 tárolótól. Amellett, hogy meg kell oldania a korábban jelentett problémákhoz hasonló problémákat, hogy fenntartsa az alkalmazás konzisztenciáját 100% -ban natív alkatrészekkel és más React Native alkatrészekkel. Ezek a navigáció, az elrendezés, a tartomány és a nézet részeinek kommunikációja stb...

Egyértelműen, A React Native sokat függ az alkalmazás típusától és törekvéseitől. Az Udacity vagy az Airbnb tapasztalataival tükrözhetjük az ígéretes, de mindenki számára nem tökéletes technológia nem annyira tökéletes valóságát.