Programování

Vývoj mobilních aplikací po PhoneGap a Cordova

Todd Anglin je viceprezidentem pro produktovou strategii a vztahy s vývojáři společnosti Progress.

Již téměř deset let nabízí PhoneGap webovým vývojářům cestu s nízkým třením pro vytváření mobilních aplikací, které mají přístup k funkcím nativního zařízení. PhoneGap umožňuje mnoha vývojářům vytvářet aplikace pro iOS a Android (a dokonce i Windows Phone a BlackBerry) s využitím dovedností a knihoven JavaScript, které již znají a milují. Tato kombinace webových dovedností plus nativního přístupu k zařízení (běžně známému jako „hybrid“) se stala pevně zakořeněnou jako jeden z primárních přístupů k vývoji mobilních aplikací.

Jak se práce na vývoji PhoneGap (a souvisejícího projektu open source Apache Cordova) zpomaluje, co bude dál s vývojem hybridních mobilních zařízení?

Je zřejmé, že jako projekt s otevřeným zdrojovým kódem Apache Cordova v dohledné době nezmizí. Mnoho společností investuje do Cordovy velké investice a komunita Cordova nadále vyplňuje mezery, když korporační zadavatelé odcházejí a proudí.

Ale PhoneGap byl projekt vytvořený s výslovným záměrem, aby se nakonec stal zastaralým, a ten okamžik může být na nás.

V průběhu posledních 10 let se objevily dvě pravděpodobně lepší možnosti, které jsou připraveny nahradit PhoneGap a „hybrid 1.0“. Jedná se o progresivní webové aplikace a nativní aplikace založené na JavaScriptu.

Progresivní webové aplikace

Funkce PhoneGap měla vždy pomáhat webovým vývojářům dělat na mobilních zařízeních více, když narazí na limity mobilních webových prohlížečů. PhoneGap znovu využívá vše z webu - HTML, CSS, JavaScript - a při přístupu ke konkrétním funkcím nativního zařízení pomocí JavaScriptu spoléhá na doplňky napsané v nativním kódu (Objective-C, Swift, Java). Postupem času se to ukázalo jako požehnání i prokletí. Křivka učení je velmi nízká, ale vestavěné webové prohlížeče v aplikacích PhoneGap se často potýkají s výkonem (ne díky Apple a po dlouhou dobu výchozímu webovému zobrazení pro Android). Přesto byl PhoneGap fungujícím řešením, které pro mnohé přineslo „dostatečně dobré“ výsledky.

Mezitím se webové standardy nadále vyvíjely a za poslední tři až čtyři roky se pod pojmem „progresivní webové aplikace“ katalyzoval tlak na zlepšení webových standardů nezbytných pro vytváření výkonnějších mobilních aplikací připravených pro offline provoz.

S progresivními webovými aplikacemi činí webová platforma další obrovský krok vpřed. Nyní mají webové aplikace plnou kontrolu nad síťovým zásobníkem, což umožňuje provádět pokročilé mezipaměti a offline operace. K dispozici jsou také nová rozhraní API, která pomáhají webovým aplikacím dělat jiné věci často spojené s nativními mobilními aplikacemi, jako je spouštění pomocí úvodní obrazovky, odesílání nabízených oznámení nebo požádání uživatelů o platební údaje. Přidejte to ke všem dalším API „HTML5“, která přistála v prohlížečích - jako je přístup k akcelerometrům, kamerám atd. - a máte velmi schopnou webovou platformu pro mnoho druhů aplikací.

Všechny tyto funkce by vyžadovaly nativní aplikaci, když byl vytvořen PhoneGap, ale nyní to prohlížeče dohnaly. Můžeme sundat hybridní tréninková kola.

Přesto na webu stále existují limity. Je to jen povaha pomalu se pohybující platformy založené na standardech. progresivní webové aplikace jsou obrovským krokem vpřed, ale nejsou dokonalou náhradou za všechny aplikace. Co tedy weboví vývojáři mají dělat po hybridním řešení, pokud stále potřebují plný přístup k nativním API zařízení? Zadejte nativní aplikace založené na JavaScriptu.

Nativní aplikace založené na JavaScriptu

Asi před pěti lety se několik společností začalo pokoušet najít řešení častých problémů s výkonem, které trápily hybridní mobilní aplikace. Cíl: Vytvořit rámce, které by mohly přinést „skutečně nativní“ výkon a bohatost uživatelského rozhraní a přitom být stále napříč platformami a obeznámeni s webovými vývojáři. Z této práce vyplynuly dvě populární možnosti: React Native (z Facebooku) a NativeScript (z Progressu).

Tyto nové rámce umožňují vývojářům i nadále používat své webové dovednosti, ale místo toho, aby jednoduše zabalili webový prohlížeč do prostředí nativní aplikace (jak to dělá PhoneGap), tyto nové přístupy vytvářejí nativní uživatelské rozhraní. Výsledkem jsou mobilní aplikace, které se cítí a fungují spíše jako „surové“ nativní aplikace pro jednu platformu, a přitom stále zvyšují produktivitu napříč platformami.

Tento přístup lze popsat několika jmény: mimo jiné „hybrid 2.0“, „native hybrid“ a „cross-platform native“. Společnost Forrester představila výraz „nativní aplikace založené na JavaScriptu“, a přestože to není úplně pravda, je to přinejmenším přesný a popisný název.

Díky nativním frameworkům nativních aplikací založeným na JavaScriptu mají weboví vývojáři většinu toho, co se jim na PhoneGap líbilo, ale s ještě větším výkonem a výkonem. Například NativeScript, který je hluboce integrován s Angular i Vue, poskytuje vývojářům plný přístup ke všem nativním API prostřednictvím JavaScriptu. Každý z nich. Pokud to lze provést v nativní aplikaci, lze to provést v NativeScript a moduly pro různé platformy umožňují, aby většina věcí byla jednou kódována a fungovala na iOS i Androidu. Je to jako PhoneGap pluginy na steroidech.

React Native a NativeScript jsou oba prosperující open-source projekty a oba jsou připraveni být přirozeným vývojem „hybridního 1.0“ v případech, kdy progresivní webové aplikace neodpovídají faktuře.

Který si vyberete?

Ačkoli PhoneGap není pryč, je těžké si představit, proč by jakýkoli nový projekt začal s PhoneGap dnes, když existují možnosti jako progresivní webové aplikace a nativní aplikace založené na JavaScriptu. Obě možnosti představují cesty vytvořené pro budoucnost a jsou relativně triviální k přijetí pro webové vývojáře, kteří již znají vývoj hybridních aplikací.

Volba mezi možnostmi by měla být také jednoduchá:

  1. Pokud vaše aplikace nepotřebuje velký přístup k rozhraní API zařízení, nemusí být v obchodech s aplikacemi a může pro iOS (prozatím) žít s některými dalšími limity, vytvořte progresivní webovou aplikaci.
  2. Pokud požadavky vaší aplikace překračují limity progresivních webových aplikací, vyberte jednu z nativních platforem aplikací založených na JavaScriptu:
    1. Pokud jste obchodem React, vyberte React Native.
    2. Pokud jste obchodem Angular nebo Vue, zvolte NativeScript.

Mnoho společností, které vytvářejí tyto open-source rámce, jsou velmi ochotné pomoci a většina nabízí technické pokyny pro migraci z PhoneGap na svůj rámec. Pokud hledáte místo, kde můžete zahájit svoji migrační cestu, je vždy dobrý nápad poradit se s odborníkem.

A pokud se zaseknete, nebo byste si raději promluvili s odborníkem třetí strany, existuje pro komunitu vývojářů k dispozici řada skvělých zdrojů - zřejmou a nejoblíbenější volbou je GitHub. Existuje však mnoho dalších fór vytvořených s cílem pomoci vývojářům migrovat z PhoneGap a hybridních na progresivní webové aplikace již nějakou dobu a nabízejí několik skvělých ukazatelů.

Nakonec PhoneGap splnil své jméno. Pomohlo webovým vývojářům překlenout „mezeru“ ve vývoji mobilních aplikací téměř deset let. To je působivý běh podle jakéhokoli standardu. Nyní je čas, aby progresivní webové aplikace a nativní rámce nativních aplikací založené na JavaScriptu vyzvedly plášť a vedly vývojáře do budoucnosti.

Hybrid (1.0) je mrtvý. Ať žije hybrid (2.0).

Todd Anglin je viceprezidentem pro produktovou strategii a vztahy s vývojáři společnosti Progress.

Nové technologické fórum poskytuje místo, kde můžete prozkoumat a diskutovat o nově vznikajících podnikových technologiích v nebývalé hloubce a šíři. Výběr je subjektivní, založený na našem výběru technologií, které považujeme za důležité a pro čtenáře nejzajímavější. nepřijímá marketingové materiály ke zveřejnění a vyhrazuje si právo upravovat veškerý přispěný obsah. Všechny dotazy zasílejte na adresu[email protected].