React Native se dnes používá při vývoji mobilních aplikací téměř všude, od malých startupů po velké firmy. Je dobré vědět, co přesně dělá, jak funguje a k čemu se hodí.

Co je React Native
React Native je open-source framework pro vývoj mobilních aplikací: umožňuje napsat jednu mobilní aplikaci a spustit ji nativně na iOS i Androidu, takže místo dvou týmů a dvou codebase stačí jeden.
Vznikl v roce 2015 uvnitř Mety (tehdy Facebooku), původně pro Facebook Ads Manager, tedy veřejnou aplikaci pro inzerenty a zároveň první plně React Native aplikaci Facebooku. Firma ho tehdy zveřejnila jako open-source projekt. Na licenci MIT, pod kterou React Native funguje dnes, přešla v roce 2017.
Dnes jeho vývoj zaštiťuje React Foundation, nezávislá nadace založená pro dlouhodobou správu ekosystému, a na kódu se podílí široká komunita firem a nezávislých vývojářů: mezi nejaktivnější přispěvatele patří třeba Software Mansion nebo Callstack, firmy specializované přímo na React Native, a tým za Expem, který vyvíjí navazující nástroje pro rychlejší vývoj.
Je to jeden z několika multiplatformních přístupů k vývoji mobilních aplikací vedle Flutteru nebo Kotlin Multiplatform. Jejich srovnání najdete v článku Nativní versus multiplatformní mobilní aplikace: jak si správně vybrat?
Přímému srovnání React Native a Flutteru se věnujeme v samostatném článku React Native vs. Flutter: který framework zvolit pro vývoj mobilní aplikace.
Jak React Native funguje
Vývojář napíše kód aplikace v JavaScriptu nebo TypeScriptu. Tento kód běží uvnitř aplikace a vykresluje skutečné nativní komponenty iOS a Androidu. Aplikace tak vypadá a chová se jako běžná nativní aplikace, i když pod kapotou běží jeden sdílený kód pro obě platformy.
Díky rokům vylepšení je dnes React Native rychlejší a plynulejší, než býval dřív, ať už jde o start aplikace nebo animace. Podrobně se technickému pozadí i konkrétním číslům věnujeme v článku React Native: proč stále vede ve vývoji mobilních aplikací
Klíčové vlastnosti React Native
- Jeden kód pro dvě platformy. iOS i Android vznikají z jedné codebase, bez nutnosti udržovat dvě samostatné aplikace a dva vývojové týmy.
- Komponentová architektura. Aplikace se skládá z menších, znovupoužitelných částí, což zrychluje vývoj i pozdější úpravy a rozšíření.
- Fast Refresh. Změny v kódu se v aplikaci projeví okamžitě, bez nutnosti buildu znovu od začátku. Vývojáři tak vidí výsledek prakticky ihned.
- Přístup k nativním funkcím zařízení. Kamera, GPS, biometrie, push notifikace nebo Bluetooth jsou dostupné přes takzvané native moduly.
- Rozsáhlý ekosystém. Tisíce knihoven a balíčků pokrývají většinu běžných potřeb, od plateb po analytiku, takže se řada věcí nemusí programovat od nuly.
- OTA aktualizace. Přes nadstavbu Expo lze drobné úpravy v JavaScriptové části aplikace nasadit přímo uživatelům bez čekání na schválení v App Store nebo Google Play. Týká se to jen JavaScriptu a assetů.
- Rozšiřitelnost na web. Přes React Native Web lze významnou část kódu sdílet i s webovou verzí aplikace. Hodí se hlavně na aplikační web, tedy portály nebo dashboardy.
K čemu se React Native používá
React Native se dnes používá napříč odvětvími, od menších projektů po rozsáhlé firemní aplikace:
- E-commerce a retail. Zákaznické aplikace pro nákupy, sledování objednávek nebo věrnostní programy.
- Fintech, bankovnictví a pojišťovnictví. Aplikace pro platby, správu financí nebo ověření identity pomocí biometrie.
- Energetika a utility. Aplikace pro správu odběrných míst, hlášení poruch nebo přehledy spotřeby.
- Interní firemní nástroje. Aplikace pro terénní techniky, sklad nebo obchodní zástupce, které propojují mobilní zařízení s firemními systémy.
- Sociální a komunitní platformy. Aplikace s velkým objemem uživatelů, kde záleží na rychlém vývoji nových funkcí a jejich snadné dlouhodobé údržbě.
- Startupy a MVP. Rychlé ověření nápadu na reálných uživatelích bez nutnosti stavět dvě aplikace zvlášť.
Nasazení sahá od malých projektů až po aplikace s desítkami až stovkami milionů uživatelů. React Native je plnohodnotné řešení pro provoz i dlouhodobý rozvoj aplikace napříč odvětvími.
Jaký je rozdíl mezi React a React Native
React a React Native se často pletou, přestože řeší jinou věc. React je knihovna pro tvorbu uživatelských rozhraní, kterou na webu doplňuje React DOM, a výsledkem je webová stránka postavená z HTML a CSS. React Native používá tentýž React, jen kód vykresluje místo do webové stránky přímo do nativních prvků mobilní aplikace.
React Native a Expo
React Native podle vlastní dokumentace doporučuje pro nové projekty použít Expo jako výchozí framework, a v praxi se s ním skutečně pojí velká většina aplikací. Expo je sada nástrojů a služeb, která vývoj zjednodušuje a zrychluje: stará se o build aplikace, doplňuje hotové knihovny pro běžné potřeby zařízení a umožňuje OTA aktualizace, tedy nasazení opravy do JavaScriptové části aplikace bez čekání na schválení v App Store.
Podrobněji o Expu píšeme v samostatném článku Expo: co to je a k čemu se používá.
React Native v Argo22
V Argo22 stavíme mobilní aplikace primárně na React Native a Expo, protože nám dlouhodobě dávají nejlepší poměr mezi rychlostí vývoje, cenou a výsledným výkonem aplikace. Můžete si prohlédnout naše projekty mobilní aplikaci, třeba Zachraň karase pro Biologické centrum AV ČR nebo na SimplyCORE pro Simply Control.
Detailní popis celého procesu vývoje najdete v článku Detailní průvodce vývojem mobilních aplikací.
Pokud zvažujete vývoj mobilní aplikace a chcete probrat, jestli je React Native pro váš projekt ta správná volba, ozvěte se nám.