Dva telefony stojící vedle sebe na šedém lněném ubrusu, jeden v tmavě modrém a druhý v korálovém obalu

React Native pro firemní aplikace: co zvládne jeden kód

Autor Zdeněk Dolák, zakladatel4 min čtení

Kdy se pro firemní aplikaci na iOS a Android hodí jeden kód v React Native a Expo a co neodstraní: nativní SDK, práci offline, testování a vydání.

Jeden kód v React Native s Expo se pro firemní aplikaci hodí tehdy, když uživatelé na iOS i Androidu potřebují stejné úkoly a procesy, což je u zákaznických i interních aplikací běžná situace. Sdílený kód ušetří psaní stejné aplikace dvakrát. Neodstraní ale rozdíly mezi platformami, integraci nativních SDK, testování na obou systémech ani dvě samostatná vydání v obchodech, a proto je dobré s nimi počítat od začátku.

Článek vysvětluje, kde sdílený kód pomáhá, kde vyžaduje práci navíc a co si ujasnit před volbou technologie. Navazuje na část o React Native na stránce vývoj mobilních aplikací.

Kdy stačí jeden kód pro iOS i Android?

React Native umožňuje sdílet aplikační kód mezi iOS a Androidem a TypeScript k němu přidává typy, které se kontrolují ještě před spuštěním aplikace. U většiny firemních aplikací je převážná část práce na obou platformách stejná:

  • Obrazovky se seznamy, detaily, formuláři a přehledy nad daty z vašeho API.
  • Obchodní pravidla: validace, stavy, kterými prochází požadavek, a co smí který uživatel vidět.
  • Přihlášení, práce s relací a volání backendu.
  • Notifikace, které uživatele vrátí ke konkrétnímu úkolu.

Když obě platformy slouží stejným uživatelům a stejným procesům, stačí tuto část napsat jednou a udržovat jednu sadu obrazovek. Obě aplikace se pak chovají stejně a úprava formuláře nebo pravidla se na obě platformy dostane ve stejném vydání.

Expo tento postup podporuje nástroji pro sestavení, konfiguraci a vydávání aplikací v React Native a umožňuje práci s nativními moduly, když je aplikace potřebuje.

Kdy zvážit nativní vývoj?

U některých projektů je vhodná podrobnější technická diskuse ještě před volbou sdíleného kódu:

  • Aplikace závisí na specializovaném hardwaru nebo neobvyklé integraci se zařízením.
  • Produkt stojí na náročné grafice nebo animacích nad rámec běžných firemních rozhraní.
  • Už existuje rozsáhlá nativní aplikace pro iOS nebo Android, do které musí nová práce zapadnout.

Nic z toho React Native automaticky nevylučuje, ale každá z těchto věcí patří do prvního technického rozhovoru, ne doprostřed vývoje.

Co sdílený kód neodstraní

Rozdíly mezi platformami

iOS a Android mají odlišné zvyklosti: navigační gesta, tlačítko zpět na Androidu, podobu žádostí o oprávnění, seskupování a zobrazení notifikací. React Native nabízí způsoby, jak psát kód specifický pro platformu tam, kde se obě verze musí lišit (dokumentace React Native, anglicky). Ve většině firemních aplikací je takového kódu málo, ale existuje a je potřeba ho navrhnout a otestovat.

Nativní SDK

Platební brány, ověření identity, mapy, skenování nebo funkce zařízení se často dodávají jako nativní SDK pro iOS a Android. Před dohodou o rozsahu ověřte, zda má každé potřebné SDK udržovanou integraci pro React Native nebo Expo, nebo zda je nutné napsat nativní modul. Expo Modules umožňují takové propojení napsat ve Swiftu a Kotlinu (dokumentace Expo, anglicky).

U fintech aplikace je typickým příkladem platební nebo karetní SDK. Vyplatí se včas prověřit, které verze platforem podporuje, jak zobrazuje vlastní obrazovky a co vyžaduje od vašeho backendu.

Práce bez připojení

Zda aplikace funguje bez připojení, je produktové rozhodnutí, ne vlastnost frameworku. Rozhodněte, které úkoly musí fungovat offline, co se ukládá do zařízení, jak se změny provedené offline později odešlou a co se stane, když si dvě změny odporují. Aplikace pro práci v terénu to často potřebuje, zákaznická aplikace se živými daty z účtu často ne.

Testování na obou platformách

Sdílený kód stále běží na dvou operačních systémech, na mnoha velikostech displejů a na několika verzích systému. Každé vydání je potřeba otestovat na iOS i Androidu, na skutečných zařízeních i v simulátorech, včetně přihlášení, notifikací, oprávnění a průchodů nativními SDK.

Dvě vydání

App Store a Google Play mají oddělené účty, podepisování, schvalovací procesy a požadavky (pravidla App Store, anglicky, vydání na Google Play, anglicky). Někdo musí spravovat vývojářské účty a stránky aplikace v obchodech a rozhodovat o vydání. Před spuštěním dohodněte, kdo za co odpovídá.

Co si ujasnit před volbou

  1. Potřebují uživatelé na iOS i Androidu stejné úkoly, nebo je jedna platforma důležitější?
  2. Která nativní SDK a funkce zařízení aplikace potřebuje a mají integraci pro React Native nebo Expo?
  3. Které úkoly musí fungovat offline, pokud vůbec nějaké?
  4. Existuje už nativní aplikace a co se s ní stane?
  5. Kdo vlastní vývojářské účty a odpovídá za vydání v obchodech?

Pokud odpovědi ukazují na společné procesy a na SDK, která jsou dostupná nebo je lze propojit, je jeden kód obvykle rozumnou výchozí volbou. Pokud ne, má technickou volbu určovat povaha projektu, ne naopak. Technologie musí odpovídat produktu.

Co musí aplikaci poskytnout váš backend, rozebírá článek co musí umět vaše API, než začneme stavět aplikaci. Co přiložit k žádosti o odhad, popisuje článek jaké podklady poslat před poptávkou mobilní aplikace.

Další krok

Pokud zvažujete React Native pro firemní aplikaci, pošlete přes kontaktní stránku stručný popis uživatelů, hlavních úkolů a SDK nebo funkcí zařízení, na kterých aplikace závisí. Do první zprávy prosím nevkládejte přístupové údaje ani zákaznická data, k posouzení spolupráce nejsou potřeba.