Přejít k navigační liště

Zdroják » PR Články » Seznamte se, React Native

Seznamte se, React Native

Články PR Články

Proč se nebát React Native a proč začít právě s ním, když už přece znáte React.

Napsali jste kupu webů a webových aplikací v Reactu, nosíte v hlavě nápad na úžasnou mobilní aplikaci a občas si vzpomenete, že existuje něco jako React Native. Možná vám rozhodování urychlím. Vysvětlím základní rozdíly a inovace, které React Native přináší, a ukážu, v čem je jeho krása, jednoduchost i složitost.

Sám jsem se s React Native setkal teprve před několika měsíci, když jsem začal pracovat na novém projektu v Creative Docku. Po týdnech, kdy se u mě střídalo zoufalství a euforie z pochopení každé malé části této knihovny, jsem se rozhodl podělit o pár zásadních informací, které bych si na začátku sám přál slyšet. Vědět, proč React Native není jen další v řadě a s čím do světa mobilního vývoje přichází, je první krok k tomu, abyste si udělali představu o celém systému. A chtěli se s ním učit.

Oproti vývoji mobilních aplikací „webovou“ cestou přináší jednu zásadní změnu. Pokud jste se již setkali s nástroji, jako jsou Ionic, Phonegap, Sencha a podobnými službami, pravděpodobně k React Native přistoupíte s podobnou představou o tom, jak bude vývoj i výsledek vypadat. Nemohli byste být dál od pravdy. V případě React Native se nejedná o žádný wrapper, ve kterém by se zobrazovala vaše webová aplikace, HTML kód, hybridní aplikace ani nic podobného. Výsledným produktem bude plnohodnotná nativní aplikace, složená z nativních komponent dané platformy, pro kterou aplikaci publikujete.

Jako programátoři nebo i kodéři máte ovšem dostatečné znalosti pro to, abyste s vývojem začali. Zejména způsob stylování aplikace vám bude povědomý a celkem snadno se zorientujete. Zejména, pokud jste se již setkali se styly uvnitř JS. Celý React Native je od začátku navrhován tak, aby vývojářům usnadnil přechod z Reactu. To vystihuje i samotný claim „Learn Once, Write Anywhere“.

První, čeho si při psaní aplikace hned všimnete – ve chvíli, kdy úspěšně inicializujete vzorovou aplikaci, – budou nové komponenty, ze kterých je aplikace složená. Půjde zejména o „View“ a „Text“. Jako drtivá většina zapálených vývojářů, kteří otevřeli dokumentaci, jen aby došli k „react-native init“, a dále zatím nečetli, se pokusíte udělat v index.js nějakou úpravu, abyste díky fungujícímu hot reloadu ukojili touhu vidět změnu v opravdové nativní aplikaci, která běží v simulátoru.

Zejména se znalostí kódování vás napadnou desítky html tagů a některý z nich zkusíte přidat. První chyba lávky, a nemusí být v Tróji. Jak jsem již zmínil, kód komponent v React Native vypadá identicky s tím, na který jste byli zvyklí ve webovém vývoji. Jenže technicky nelze použít žádný html tag – prostě proto, že to není web. Je třeba si uvědomit, že každá komponenta, která v konečné fázi renderuje cokoliv do UI, je jedna z existujících nativních komponent dané platformy, nikoliv hezky nastylované html.

Tyto nativní komponenty samozřejmě nejsou na obou platformách (iOS, Android) totožné a už vůbec ne psané ve stejném jazyce. Proto React Native přichází s určitou dávkou abstrakce, aby kód, který píšete, mohl být z co největší části sdílený mezi platformami.

Při sebevětší snaze ovšem jednou dojdete do momentu, kdy bude třeba napsat část kódu specifického pro jednu platformu. V jednodušším případě se budou jen mírně lišit props komponenty, jindy bude potřeba použít zcela jinou nativní komponentu. Pro větší rozdíly, kdy se vám mezi platformami rozchází například design celého screenu, můžete využít rozlišování specifických souborů pro danou platformu úpravou názvu souboru „*.ios.js“, či „*.android.js“. V jednodušších případech pouhé inline podmínky. Tak můžete odlišovat nejen soubory s kódem, ale třeba i obrázky. Nejen pro různé platformy, ale třeba i rozlišení.

Co dělá React Native tak zajímavým oproti jiným nástrojům, které vám dříve umožňovaly tvořit mobilní aplikace za pomoci webových technologií? Zejména jeho architektura, která stále dovoluje využít pro business logiku JavaScript, a přesto vytvářet aplikaci složenou z nativních komponent.

Velkou změnou je, že celé UI je spuštěno v hlavním vláknu, které má každá aplikace, ale JavaScript engine využívá vlákno jiné. Díky tomu je aplikace v React Native o poznání rychlejší. Odezva rozhraní aplikace se nijak nezhoršuje ani při složitějších výpočtech v JS. Díky nativním komponentám máte oproti běžnému DOMu k dispozici širší možnosti, jak s aplikací interagovat. Můžete například využívat více nativních gest, která by vám běžná webová stránka, byť na mobilním zařízení, nenabízela a na která jsou uživatelé nativních aplikací zvyklí.

Doufám, že se najde alespoň jediný člověk, který právě teď otevírá terminál a chce zkusit, jak React Native funguje. Pokud vás zaujme víc, třeba se potkáme na nějakém dalším zajímavém projektu u nás v Creative Docku. Právě teď hledáme developery, kteří se s námi pustí do fintechové revoluce. Přidejte se!

Autor článku: Adam Javůrek, Creative Dock

 

Co je nového v Gitu 2.55.0

Git 2.55.0 přináší šest zajímavých novinek – od dlouho očekávané podpory fsmonitoru na Linuxu, přes zjednodušení úprav historie commitů pomocí nového příkazu git history fixup, až po další krok v postupné integraci jazyka Rust do jádra Gitu. Přidává se i možnost pushovat do skupiny vzdálených repozitářů, omezit šířku grafu u git log --graph a zrychlit git grep a git cherry v částečných klonech.

Od statických stránek k edge computingu: Historie webových technologií za 30 let

Třicet let. Tak dlouho už web existuje v podobě, kterou bychom dnes alespoň zhruba poznali — od prvních statických dokumentů přes éru aplikací běžících v prohlížeči až po kód, který se spouští na stovkách míst po celém světě jen pár milisekund od uživatele. Tenhle příběh ale není jen suchým výčtem technologií a verzí. Je to příběh jednoho kyvadla, které se celé tři dekády houpe mezi serverem a klientem — a které právě teď nachází nový bod rovnováhy někde uprostřed, na okraji sítě.