Expo je framework, který React Native doporučuje jako výchozí volbu pro nové projekty, a v praxi se s ním pojí velká většina projektů. Kdo si nechává vyvíjet mobilní aplikaci, dřív nebo později tenhle název potká, a je dobré vědět, co přesně znamená, k čemu se používá a jaký má reálný přínos pro byznys.

Co je Expo
Expo je framework nad React Native, který se stará o vývoj a provoz mobilní aplikace. Obsahuje hotové knihovny pro běžné funkce zařízení, třeba kameru, polohu nebo notifikace, sjednocuje build hotové aplikace pro App Store a Google Play a umožňuje OTA aktualizace, tedy nasazení opravy uživatelům bez čekání na schválení obchodu.
Vývojáři přitom pracují s takzvaným development buildem: to je vlastní verze aplikace, která se postaví jednou na začátku projektu, a od té chvíle se změny v kódu objevují na telefonu okamžitě, bez dalšího buildu. Build jednoduše znamená sestavení aplikace, tedy krok, který kód promění v soubor, co jde nainstalovat do telefonu nebo poslat do App Store a Google Play.
Expo tedy React Native nenahrazuje ani s ním nekonkuruje, stojí nad ním a doplňuje ho. Vyvíjí a udržuje ho firma 650 Industries, Inc. jako open-source projekt s aktivní komunitou.
Podrobně o samotném React Native píšeme v článku React Native: co to je, k čemu se používá a jaké jsou jeho vlastnosti.
K čemu se Expo používá a proč se dnes vyplatí
Expo v praxi znamená rychlejší vývoj, nižší náklady a jednodušší dlouhodobou správu aplikace.
Tým i klient vidí výsledek prakticky okamžitě: vývojová verze aplikace se postaví jednou a další změny se na telefonu objeví hned, bez čekání na nový build. Samotný build pro App Store a Google Play je popsaný v konfiguraci projektu, takže proběhne stejně na vývojářském stroji, u nás v CI nebo v cloudu, a nezávisí na tom, jak má kdo nastavený počítač.
Stejně důležitá je rychlost, jakou se dá aplikace po vydání dál rozvíjet. Expo umožňuje takzvané OTA aktualizace (z anglického over-the-air): drobnou opravu nebo úpravu v JavaScriptové části aplikace nasadíte rovnou uživatelům, bez čekání na schválení v App Store, kde review v praxi trvá od jednoho dne až po týden u nových aplikací.
Protože Expo obsahuje hotová řešení pro věci, které potřebuje skoro každá aplikace (práce s kamerou, polohou, notifikacemi nebo biometrií), nemusí se tahle funkcionalita programovat od nuly pro každý projekt znovu, což šetří čas i rozpočet.
Výsledkem je aplikace, která se rychleji dostane na trh, levněji se dál rozvíjí a snáz se dlouhodobě udržuje.
Součástí téhle dlouhodobé správy je i pravidelný upgrade samotného Expo SDK, které vychází zhruba dvakrát do roka, protože starší verze postupně přestávají dostávat opravy a podporu. Aplikace tak čas od času projde novým buildem a znovu se odešle do storů. Jde o pravidelnou údržbu, která je součástí správy každého digitálního projektu a zajišťuje plynulý a bezpečný provoz mobilní aplikace.
Co když Expo nestačí
I pro projekty s neobvyklými nativními požadavky má Expo řešení, aniž by bylo potřeba sáhnout po jiné technologii.
Kdysi bylo u opravdu nestandardních potřeb nutné Expo kompletně opustit. Dnes se vlastní nativní kód do projektu dá doplnit. Díky tomu lze současně používat Expo framework a nativní prvky, čímž jsou zachovány výhody jednotného buildu ani okamžitých aktualizací.
V Argo22 tímhle způsobem řešíme krajní případy, ať jde o propojení s netradičním firemním systémem, specifický senzor nebo jinou zvláštní potřebu konkrétního projektu.
Expo v Argo22
V Argo22 stavíme mobilní aplikace primárně na React Native a Expo, protože nám dohromady dávají nejrychlejší cestu od nápadu k hotové aplikaci v rukou uživatelů, aniž bychom dělali kompromisy na kvalitě nebo dlouhodobé udržitelnosti.
Přemýšlíte o vývoji mobilní aplikace a chcete probrat, jak by React Native a Expo mohly fungovat ve vašem projektu? Ozvěte se nám.