Nativní vs multiplatformní vývoj aplikací

7 minut čtení

...jakou cestou se vydat?

Nativní vývoj

Když se řekne nativní vývoj myslí se tím, že se pro každou platformu aplikace vyvíjí zvlášť, pomocí nativních nástrojů které nám poskytl přímo výrobce konkrétního OS. To znamená, že pokud cílíme na více platforem, je nezbytné vyvinout zvlášť aplikaci pro každou z nich. Například při vývoji mobilní aplikace je třeba programovat zvlášť pro Android a zvlášť pro jablečná zařízení se systémem iOS. Na první pohled se může zdát, že je třeba celou práci udělat dvakrát. Avšak není tomu tak! Vývoj aplikace představuje celý soubor činností, mezi které patří jak samotné programování, tak i další činnosti. Mezi tyto činnosti patří UI/UX design, API a backend aplikace. Tyto oblasti jsou pro obě aplikace téměř stejné a tudíž je není třeba  vytvářet pro každou platformu zvlášť.

Pro aplikaci samotnou toto však neplatí. Každá platforma využívá  jiný programovací jazyk - iOS (Swift), Android (Kotlin). Zde není jiná možnost, než tuto část realizovat pro každou platformu zvlášť. S tím se pojí větší časová náročnost a s tím související náklady finální aplikace.

Tyto jazyky jsou nativní, což znamená, že jsou značně komplexní. Poskytují programátorovi  téměř neomezené možnosti. To má samozřejmě své výhody i nevýhody. 

Největší výhodou je jejich optimalizace a tedy i výkon finální aplikace. Další výhodou, avšak  zároveň i největší slabinou je již výše zmiňovaná komplexnost. Proto, aby byl vývojář  schopen s nimi plnohodnotně pracovat, je nezbytné, aby v nich strávit velké množství času a aby měl nejlépe několikaletou zkušenost s konkrétním jazykem. Pro jednoho vývojáře je tak velmi obtížné ovládnout oba zmiňované jazyky. Často se tedy vývojáři mobilních aplikací specializují pouze na jeden jazyk a tudíž i pouze na jednu z těchto platforem.

Výhody:

  • Optimalizace a výkon

  • Okamžitý přístup k nejnovějším funkcím OS

  • Jednodušší propojení s wearables

Nevýhody:

  • Je potřeba mít dva zkušené vývojové týmy

  • Náročnější testování

  • Délka vývoje a jeho vyšší cena

  • Komplexnost jazyků

Na co je vhodný: 

Nativní vývoj se převážně hodí pro aplikace s velkým množstvím animací nebo nebo když zákazník potřebuje implementovat podporu pro specifický hardware např. Apple Pencil.

Multiplatformní vývoj

Jak už název ,,multiplatformní” napovídá prostřednictvím jednoho kódu můžeme cílit na více platforem najednou. Multiplatformní vývoj může být významně efektivnější a levnější, než je tomu u nativního vývoje. 

Díky multiplatformním nástrojům je možné docílit toho, že významná část kódu může být použita pro obě platformy. V některých případech se jedná až o 80-90%.  Samozřejmě finální část vývoje je nutné realizovat zvlášť pro každou platformu, tato část však představuje posledních 10-20%. Pokud potřebujete rychle vyvinout aplikaci pro více platforem a získat tak náskok před konkurencí, multiplatformní vývoj může být ta správná cesta. Správně vytvořená multiplatformní aplikace je pro běžného uživatele téměř k nerozeznání od aplikace vytvořené nativně. 

Je nezbytné zmínit, že i multiplatformní nástroje mají své nevýhody. Jednou z nich je riziko spojené se spoléháním se na balíčky a knihovny třetích stran. Ne všechny funkcionality a funkce jsou totiž implementované v základu.

U nás v ASN Plus často využíváme multiplatformní vývoj. Jeden framework jsme si zvláště oblíbili zejména pro jeho jednoduchost a máme s ním dobré zkušenosti. Jedná se o framework Flutter. Pokud vás zajímá, na co v ASN Plus Flutter používáme, v našem blogu jsme o něm psali již dříve a můžete se seznámit i s vývojem aplikací pomocí frameworku Flutter.

Výhody:

  • Kratší doba vývoje a nižší cena

  • Stačí jeden tým vývojářů

  • Jeden kód využitelný pro obě platformy

  • Rychlejší oprava chyb (Jeden zdrojový kód)

Nevýhody:

  • Nepodporované některé platformy

  • Nutnost spoléhání se na balíčky třetích stran

Na co je vhodný: 

Neexistuje téměř nic, co by se nedalo udělat pomocí multiplatformního vývoje. Avšak existují situace kdy je vhodnější zvolit nativní vývoj jelikož implementace klíčové featury může být rychlejší a levnější.

Shrnutí

Nelze konstatovat, že nativní vývoj je jediná správná cesta. Zároveň však není možné říci, že multiplatformní vývoj jednoho dne nativní vývoj zcela nahradí. Lze předpokládat, že oba způsoby vývoje aplikací budou hojně využívány i v budoucnu. Pravděpodobně stále tak bude existovat možnost vybrat si pro rozličná řešení ten správný vývojový nástroj. 

U nativního vývoje je potřeba počítat s delším časem a vyššími náklady na vývoj. Pro většinu aplikací se kterými se setkáváme je často naopak lepší volbou multiplatformní vývoj, který nepředstavuje tak velkou finanční zátěž a finální aplikace může být k dispozici dříve. Cestou multiplatformního vývoje se začíná vydávat čím dál více velkých firem jako např. firma BMW, která vyvinula svoji aplikaci My BMW ve Flutter.

Uvažujete o vývoji mobilní či jiné aplikace? Neváhejte nás kontaktovat. Náš tým vývojářů se Vás rád ujme a pomůže vám vytvořit vaši aplikaci. Pomůžeme Vám od designu až po finální distribuci aplikace.