Rozdíl mezi nativní a hybridní mobilní aplikací.

01.11.2018

Petr Kott

jak-urychlit-programovani-v-PHP-photo

Rozdíl mezi nativní a hybridní mobilní aplikací.

01.11.2018

Petr Kott

V tomto článku Vám představím hlavní rozdíly mezi vývojem mobilní aplikace v nativním jazyce telefonu a hybridním jazyce.

Co je to nativní aplikace?

Nativní mobilní aplikace je aplikace, která byla vyvinuta pro provádění určitých úkolů pro jednu specifickou platformu a operační systém – například Android. Nativní aplikace je postavená pomocí nástrojů a knihoven pro vývoj softwaru (SDK) pro určitý operační systém – například Android. Stejně jako je aplikace pro Android postavená pomocí Java Development Kit na platformě Java, aplikace iOS je postavená pomocí iOS SDK, Swift.

Co je to hybridní aplikace?

Hybridní aplikace jsou podobné nativním aplikacím pouze proto, že je možné je stáhnout z platformy App Store jako nativní aplikace. Může získat přístup k většině funkcí nativní platformy a výkonově se přibližujete nativní aplikaci. Vyvinuty jsou však pomocí nástrojů a knihoven, které daný operační systém nezná a musí být tak nějakou “mezivrstvou” překládány do nativního jazyku operačního systému.

Zde jdou hlavní rozdíly hybridní aplikace:

  • Hybridní aplikace jsou postaveny pomocí webových technologií, jako jsou HTML, CSS a JavaScript, zatímco nativní aplikace postavené pomocí specifické technologie a jazyka pro konkrétní platformu, jako je Java for Android, Swift for iOS.
  • Hybridní aplikace běží v webView (zobrazení, které zobrazuje webové stránky, používá stejný prohlížeč, ale žádný prohlížeč jako widgety)
  • Hybridní aplikace vyžadují nativní pluginy pro přístup k nativním funkcím platformy, jako je fotoaparát, mikrofon atd. (Nativní pluginy jsou jako obal na původních knihovnách nebo součástech)
  • Hybridní aplikace může být postavena pro libovolnou platformu z jediného kódu.

Výhody hybridní aplikace?

  • Jednoduchá kódová základna pro všechny platformy znamená napsat kód jednou a spustit kdekoli. Při vývoji nativní aplikace, musíme vytvořit a udržovat samostatnou aplikaci a kód pro každou platformu.
  • Stejný vývojář může vytvořit aplikaci pro libovolnou platformu včetně webové stránky, protože všechny jsou webové technologie.
  • Hybridní aplikace je založena na webových technologiích, takže stejná aplikace může být spuštěna v prohlížeči jako libovolný jiný web.
  • Hybridní aplikace může mít stejnou a konzistentní uživatelskou zkušenost napříč platformou bez ohledu na to, zda se uživatel pohybuje mezi různými zařízeními nebo prohlížečem. Na druhou stranu, je třeba aplikaci vždy přizpůsobit pro danou platformu iOS či Android – například v iOS musíte naprogramovat tlačítko “zpět”, u Androidu je hardwarové.

Nevýhody hybridních aplikací

  • U jednoduchých aplikací je výkon podobný jako nativní aplikace, ale výpočetně či datově náročné aplikace jsou značně pomalejší – hry, HD, grafické aplikace a další výkonné aplikace, rozšířená realita, seznamy a databáze se stovkami položek, apod.
  • Hybridní aplikace může mít přístup ke všem funkcím nativního zařízení, jako je touchId, média atd., ale závisí na nativních pluginech. Někdy nová funkce zařízení nemusí být k dispozici jako nativní plugin a tak tuto funkci nemůžeme používat.
  • Hybridní aplikace má závislosti na různých knihovnách a frameworcích, jako je Cordova, Ionic, která musí být synchronizovaná s nejnovějšími změnami operačního systému Android či iOS. 
  • Pluginy, které jsou “mezičlánkem” mezi apkou a operačním systémem nejsou vyvíjeny výrobcem operačního systému a tak se některé prvky mohou chovat a vypadat jinak, než jak je uživatel daného operačního systému zvyklý (např. kalendář, přechody obrazovek, apod.).
  • Pluginy jako “mezičlánek” vnášejí do systému další kód od jiného výrobce a tím zvyšují chybovost celého systému.

Výhody nativních aplikací

  • Grafické aplikace, HD, hry, intenzivní animační aplikace, rozšířená realita, seznamy a databáze se stovkami položek mohou fungovat dobře pouze jako nativní aplikace, protože nativní kód je stále rychlejší než HTML a JavaScript. Normy WebGL pomáhají prohlížečům a hybridním aplikacím pro herní aplikace splňovat požadavky na výkon, ale přesto jsou nativní o poznání rychlejší.
  • Nativní sady SDK umožňují přístup k funkcím zařízení, bez potřeby nativních pluginů a nové funkce zařízení a operačního systému budou k dispozici ihned po vydání nové verze systému.
  • Méně závislostí na otevřených knihovnách a platformách, jako je Cordova a Ionic a tím menší chybovost celého systému a menší počet chyb.

Nevýhody nativních aplikací

  • Pro dvě platformy Android a iOS je potřeby vyvíjet dvě aplikace, které mají odlišný kód. Aplikace se tak musí napsat “dvakrát”. Tím se zvyšují náklady a potřebný čas na vývoj.
  • Pro obě platformy je třeba provádět aktualizace aplikace dvakrát v každém kódu zvlášť.
  • Je potřeba různé dovednosti k vývoji a údržbě stejné aplikace na každé platformě.

Závěr

Každý projekt a aplikace má svá specifika a požadavky a pro různé projekty se hodní různé přístupy vývoje. Na jednoduché aplikace s nízkými požadavky na výkon a malým množstvím dat se hodí hybridní vývoj. Je třeba se ale zamyslet do budoucna, jestli aplikace zůstane jednoduchá a nevzniknou tak v budoucnu omezení rozšiřitelnosti či výkonu. Dále je třeba zvážit jak důležitá je pro aplikaci uživatelská přívětivost, protože hybridní aplikace budou působit “tak nějak jinak” než ostatní Android či iOS aplikace. Na druhou stranu se u hybridních aplikací ušetří čas a peníze při vývoji. Z mých zkušeností to není dvojnásobek, protože i u hybridu musíte vyvíjet specifické části pro specifickou platformu, ale nějaké náklady určitě ušetří. Rozhodně doporučuji prokonzultovat projekt s několika odborníky, než padne definitivní rozhodnutí.