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

 

Odysseus: PewDiePie vydal open-source AI workspace, který běží na vašem vlastním hardwaru

AI
Komentáře: 0
Felix Kjellberg, youtuber se 110 miliony odběratelů, strávil rok učením se programovat a fine-tuningem vlastních AI modelů. Výsledkem je Odysseus – bezplatný, open-source workspace pro práci s umělou inteligencí, který neposílá žádná data do cloudu. Projekt má týden, přes 61 000 hvězdiček na GitHubu a znovu otevírá otázku, komu vlastně patří váš digitální kontext.

Když Git už nestačí: jak izolovat databázový stav pro pokusy AI agentů

Gitová větev vývojářům oddělí kód, ale databáze často zůstává společná. U AI agentů je to slabé místo: rychle spouštějí migrace, mění data a zkoušejí víc cest najednou. Databázová větev jim dá vlastní pracovní prostor, jenže tím práce nekončí. Ještě je potřeba řešit citlivá data, oprávnění, životnost větve i zbytek stavu aplikace.

GitHub vyhrál pohodlím. Stejné pohodlí dnes ztěžuje odchod

GitHub kdysi působil jako přesný opak SourceForge: rychlý, přehledný a přirozený. Dnešní projekt na něm ale často nemá jen kód. Má tam issues, pull requesty, CI, balíčky, bezpečnostní pravidla i AI agenty. Lock-in nevzniká tím, že by nešel odnést Git repozitář, ale tím, že se běžný provoz týmu postupně přesune do jedné platformy.