V Ackee s novými technologiemi pracujeme každý den. Je to jedna z věcí, kterou považujeme za naší největší přednost, a tak nám samozřejmě nemohl uniknout silný mediální nástup technologie React Native. Stejně tak nám bohužel neuniklo zjevné nepochopení některých vývojářů, jak k této technologii přistupovat. Následující tři články mají vyvrátit největší mýty o React Native (RN) a vysvětlit, že u této technologie nejde o to, jestli je dobrá nebo špatná, ale o to, na co a jak ji použít.

TL;DR

React Native je velice silná a slibná technologie, sami jsme ji použili na prototypování aplikací. Nicméně zatím je připravena na produkční využití jen v úzké skupině případů, jako jsou například malé aplikace o pár obrazovkách, které slouží především k zobrazování dat, případně pro použití uvnitř větší aplikace pouze pro konkrétní funkcionalitu.

react-native-logo

Důvod první: Verze 0.33

Aktuálně je React Native ve verzi 0.33 (v době psaní článku). A fakt, že se toto číslo změní několikrát do měsíce celkem jasně ukazuje, o jak mladou a nevyzrálou technologii se jedná. Nové verze se vydávají cca 1–2× do měsíce, což je na jedné straně známkou toho, že je vývoj RN aktivní, ale zároveň to dává najevo, že je vývoj této technologie stále bouřlivý a je nutné často opravovat chyby. Většinu chyb navíc opravuje komunita a ne Facebook, který je přitom autorem RN.

Důvod druhý: Jak využívá RN sám Facebook

Facebook stojí za React Native, takže byste možná čekali, že oficiální aplikace Facebooku budou ReactNative plné. Dávalo by to smysl, že? Ve skutečnosti sám Facebook ve svém pokusu zjistil, že RN je vhodný pro použití spíše v malých aplikacích a sám jej používá například jen na obrazovku s událostmi. Proč? Protože se jedná o jednoduchý příklad opakujícího se motivu. A to je přesně místo, kde se RN hodí. Navíc i Facebook samotný v článku popisuje, že nebylo úplně jednoduché to vyladit.

Důvod třetí: Ukázkové aplikace

Ukázkové aplikace vystavené na oficiálním webu naše závěry potvrzují. Najdeme zde pouze malé aplikace s jednoduchým uživatelským rozhraním a opakujícími se obrazovkami. Náhoda? Nemyslím si.

Důvod čtvrtý: RN není „napiš jednou, použij 3x“

U oficiálních ukázek ještě zůstaneme. 30 ze 41 aplikací zde uvedených jsou určené pouze pro jednu platformu, ze zbylých 11 jsou 4 přímo do Facebooku. Zřejmě tedy není tak jednoduché napsat kód jednou a rovnou ho poslat do App Store a na Google Play, jak horliví propagátoři RN s oblibou uvádějí.

Důvod pátý: Pomalé aplikace na low-end telefonech

Vzhledem k tomu, že React Native přístup staví na Javascriptu, který má nezanedbatelnou výpočetní režii, znamená to u datově nebo graficky náročnějích aplikací větší zatížení systémových prostředků telefonu, což zejména u levnějších přístrojů může znamenat pomalou aplikaci. Pak již platí jednoduchá rovnice: Sekající se aplikace = ztráta stávajících uživatelů = špatné hodnocení v App Store/Google Play = odrazení nových uživatelů. A jak sám Facebook ve výše zmíněném článku přiznává performance je jedním z problémů této technologie.

V příštím díle se podíváme na dalších 5 důvodů, proč (ne)používat React Native. Naší minisérii poté uzavřeme shrnutím přínosů nativního přístupů, tak jak jsme si jej ověřili z naší praxe.

6 KOMENTÁŘŮ:

  1. Zajímavé. Nakonec jsem přeci jen vše přečetl.. Zaujal mě pokles výkonu u RN a zkoumal jsem proč tomu tak je,.. Jen jedna otázka.. nezkoumali jste třeba NativeScript, který tu byl dávno před tím, než RN vůbec ohlásili a který je na tom s výkonem úplně někde jinde, právě díky threading modelu a díky marshallingu?

    Kromě výkonnostních problémů to odstraňuje i závislost na tom, až někdo vydá novější verzi s novou podporou api. Dík za odpověď.

    1. Moje odpoveď bude bohužel stručná, nezkoušeli. Ale přidám si to do nějakého TODO a aspoň poděkuji za to, že si dočetl článek dokonce 🙂

      1. Pokles vykonu telefónu je zrejme spôsobený nepochopením architektúry React na strane programatora. Odporučám pozrieť články porovnavajúce výkon čisto nativných a React aplikácií – rozdiely sú zanedbateľné 😉 Samozrejme ak programátor chápe ako React funguje..

        1. Díky za komentář, ano i to je jeden z dalších důvodů, které popisujeme dále. K dobré RN aplikaci patří i dobrý RN vývojář a takových je opravdu málo. Rozhodně méně než průměrných nativních vývojářů, kteří většinou stačí na to, aby byla aplikace plynulá. p.s. když už zde zmiňujete benchmarky, které zobrazují zanedbatelné rozdíly bylo by fajn je nalinkovat. mějte se 🙂

  2. No neviem, dost hejtersky clanok podla mna, clanok na FB hovori jasne o tom, ake problemy riesili ked si to nasadili do vlastnej appky a ako ich vyriesili a benefitoval z toho cely framework.

    1. Ano a kolik vývojářů má Facebook? s tím se žádná klasická app-dev firma nemůže srovnávat to že jim to ve výsledku pomohlo je fajn, ale ten čas který tomu věnovali byl enormní. Jsou to technologičtí průkopníci mohou si to dovolit ostatní firmy jako naši klienti nikoliv.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *