DomovTim Blažič
Začni projekt

Mobilne aplikacije

React Native ali native mobilna aplikacija? Odločitev po funkcijah, ekipi in življenjskem ciklu

Uravnotežen okvir za izbiro glede na platformne API-je, zmogljivost, ekipo, odvisnosti, testiranje in vzdrževanje.

Avtor:
Tim Blažič
Objavljeno:
3 min branja
3 min branja
English
EN

React Native je primeren, kadar iOS in Android delita večino uporabniških tokov, produkt potrebuje usklajene izdaje in ekipa lahko upravlja skupno kodo ter občasne platformne prilagoditve. Ločen native razvoj je smiselnejši, kadar je jedro produkta tesno povezano s specifičnimi API-ji, zahtevnimi ozadnimi procesi ali zmogljivostnim profilom posamezne platforme.

Ni univerzalnega zmagovalca. Odločitev mora slediti funkcijam, ekipi in pričakovanemu življenjskemu ciklu.

Najprej popišite platformne funkcije

Pred izbiro ogrodja označite vsako pomembno funkcijo kot:

  • skupno obema platformama;
  • podobno z manjšimi razlikami;
  • bistveno drugačno;
  • odvisno od specifičnega platformnega API-ja.

Običajni poslovni tokovi, kot so prijava, seznami, obrazci, rezervacije in prikaz podatkov, pogosto omogočajo veliko skupne logike. Funkcije, povezane z Bluetooth napravami, obsežno obdelavo medijev, naprednim delom v ozadju ali novo platformno zmožnostjo, lahko zahtevajo več native kode.

React Native ne odpravi razlik med iOS in Androidom. Omogoči, da skupne dele vzdržujete skupaj, razlike pa izrazite tam, kjer so potrebne.

Ocenite dejanski profil zmogljivosti

Beseda »zmogljivost« je preširoka za odločitev.

Vprašajte:

  • Koliko podatkov prikazuje en zaslon?
  • Kako zapletene so animacije?
  • Ali aplikacija obdeluje zvok, video ali slike?
  • Ali potrebuje neprekinjeno delo v ozadju?
  • Kako pogosto komunicira z napravo?
  • Kaj se mora zgoditi brez omrežja?
  • Kateri odzivni časi so za uporabnika opazni?

Večina težav ni posledica same izbire ogrodja, temveč neustreznega upravljanja stanja, prevelikega števila izrisov, težkih seznamov ali slabe omrežne strategije.

Pri zahtevni funkciji pripravite majhen tehnični preizkus na pravih napravah. Splošna trditev, da je ena možnost vedno dovolj hitra ali vedno počasna, ne nadomesti merjenja konkretnega toka.

Upoštevajte sestavo ekipe

React Native omogoča skupno TypeScript oziroma JavaScript kodo, vendar produkt še vedno potrebuje razumevanje mobilnih platform.

Ekipa mora znati obravnavati:

  • platformne nastavitve;
  • dovoljenja;
  • podpise in profile;
  • objavo v trgovinah;
  • native odvisnosti;
  • obvestila in povezave;
  • vedenje na različnih napravah.

Če ima organizacija dve izkušeni native ekipi in močno platformno specifičen produkt, ločen razvoj morda ni nepotrebno podvajanje. Če ena produktna ekipa vzdržuje skoraj enake tokove na obeh platformah, skupna koda lahko poenostavi usklajevanje.

Ne ocenjujte samo začetnega razvoja. Ocenite, kdo bo čez dve leti odpravljal napake in izvajal nadgradnje.

Preverite odvisnosti in pot nadgradenj

Vsaka mobilna aplikacija je odvisna od operacijskih sistemov, trgovin, SDK-jev in zunanjih storitev.

Pri React Native dodatno preverite:

  • ali ključna knjižnica podpira obe platformi;
  • kako aktivno se vzdržuje;
  • ali vsebuje native kodo;
  • kako hitro sledi novim različicam sistema;
  • ali je mogoče kritični del nadomestiti;
  • koliko dela zahteva večja nadgradnja ogrodja.

Native razvoj ni brez odvisnosti, vendar ima neposrednejši dostop do platformnih API-jev. React Native lahko zahteva lasten modul, če ustrezna povezava še ne obstaja.

Kritična poslovna funkcija ne sme biti odvisna od opuščene knjižnice brez realne poti zamenjave.

Testirajte skupno logiko in platformne razlike

Skupna koda zmanjša del podvajanja, ne pa potrebe po testiranju na obeh platformah.

Preverite:

  • različne velikosti zaslonov;
  • navigacijo in sistemsko vračanje;
  • tipkovnico in obrazce;
  • dovoljenja;
  • obvestila;
  • globoke povezave;
  • počasno ali prekinjeno omrežje;
  • nadgradnjo stare različice aplikacije;
  • resnične iOS in Android naprave.

Avtomatizirani testi lahko pokrijejo logiko in ključne poti. Ročni pregled ostaja pomemben za platformno vedenje, dostopnost in občutek uporabe.

Dostopnost ni stranski učinek skupne kode

Komponente potrebujejo ustrezne oznake, vrstni red fokusa, dovolj velike cilje in podporo sistemskim nastavitvam besedila.

Preizkusite bralnike zaslona na obeh platformah. Enaka komponenta se lahko zaradi različnih sistemskih pravil obnaša drugače.

Prav tako preverite kontrast, zmanjšano gibanje in uporabo brez natančnih gest. »Native občutek« ni samo animacija; vključuje predvidljivo interakcijo z operacijskim sistemom.

Objava je del tehnološke odločitve

Ne glede na pristop potrebujete ločena builda, podpise, trgovinske vnose, posnetke zaslona, izjave o podatkih in postopek pregleda.

Načrtujte:

  • razvojna in produkcijska okolja;
  • varno upravljanje skrivnosti;
  • postopno izdajo;
  • spremljanje napak;
  • združljivost podatkov pri nadgradnji;
  • podporo starejšim različicam.

React Native lahko združi velik del produktnega razvoja. Ne združi App Stora in Google Playa v eno trgovino.

Pri načrtovanju mobilne aplikacije naj bo odločitev vezana na glavne uporabniške tokove in tehnična tveganja. Kompleksnejše dvostranske produkte dodatno obravnava članek o marketplace aplikacijah.

Nazaj na blog

Imate podoben projekt?

Povejte mi, kaj gradite. V 24 urah vam odgovorim z naslednjim smiselnim korakom.

Pogovoriva se