Vývoj mobilních aplikací
Vývoj mobilních aplikací je proces označující vývoj aplikace pro mobilní zařízení. Tyto aplikace mohou být na zařízení předinstalovány nebo jsou dodávány ve formě webových aplikací pomocí tzv. server-side nebo client-side processingu (např. prostřednictvím JavaScriptu). Vývoj mobilních aplikací je stabilně rostoucím a výnosným odvětvím, které zajišťuje řadu pracovních míst. Analytická zpráva z roku 2013 ukazuje, že se k vývoji aplikací v celé EU váže až 529 tisíc pracovních míst.[1]
Charakteristika mobilní aplikace
Mobilní aplikace se skládá z front-endu (uživatelské rozhraní, tzv. UI) a back-endu, který má na starosti směřování dat, zabezpečení, ověřování, autorizaci, off-line práci a plánování služeb. Tato funkcionalita je podporována kombinací middleware komponent, jako je server mobilní aplikace, mobilní backend jako služba (MBaaS) a architektury orientované na služby (SOA).
Mobilní UI by v sobě mělo reflektovat různé překážky, kontexty, obrazovku, vstup a celkovou mobilitu aplikace. Rozhraní v sobě zahrnuje prvky hardwaru i softwaru. Důraz je kladen na uživatele a jeho interakci s mobilním zařízením. Uživatelský vstup umožňuje ovládat systém a výstup zařízení zase umožňuje systému určit účinky uživatelského použití. Překážkami v designu UI rozhraní je omezená pozornost uživatele a faktory spojené s tvarem, například velikost obrazovky mobilního zařízení pro ruku uživatele atd. Hlavním cílem UI je srozumitelné a uživatelsky přívětivé rozhraní. UI mobilních aplikací by mělo zohlednit omezenou pozornost uživatele, minimalizovat počet kliknutí a orientovat se na jednoduchost a funkčnost.
Proces vývoje mobilních aplikací
Proces vývoje mobilních aplikací probíhá v několika krocích. Ty se odvíjí také od zvolené metodiky vývoje softwaru. Přičemž pro agilní vývoj mobilní aplikací je již od rané fáze vývoje typická přítomnost zpětné vazba klienta i cílové skupiny zákazníků. Lze tedy ovlivňovat věci za pochodu. Obvykle se zde začíná tvorbou minimum viable product (MVP), kdy je nejprve vyvinuta aplikace, která přináší pouze řešení základního problému zákazníků. Vzniká tedy produkt s nejmenší možnou funkcionalitou, který lze rychle poslat na trh a otestovat na skutečných uživatelích. V následujících vývojových fázích se MVP dále rozvíjí s ohledem na zpětnou vazbu a další reálné požadavky zákazníků. Také v případě vodopádového přístupu se může začínat s vývojem MVP, ale součástí tohoto vývoje není ranná zpětná vazba klientů ani jejich zákazníků. V případě vodopádového modelu vývoje je naopak vyvinutá kompletně celá aplikace (popř. jen MVP) se všemi funkcionalitami. Až tato aplikace je poslána na trh.[2][3]
Proces tvorby mobilní aplikace má tyto fáze:[4]
- Analýza požadavků – sem může patřit i analýza trhu či potřeb zákazníků
- Návrh UX – tzv. uživatelské rozhraní
- Grafický návrh aplikace
- Validace zadání
- Programování aplikace
- Validace aplikace
- Testování na podporovaných zařízeních
- Umístění na trh
- Správa o a rozvoj aplikace
Samotným vývojem aplikace tedy proces jejího vývoje zpravidla nezačíná ani nekončí, ale je mnohem komplexnější.[3]
Platformy pro vývoj aplikací
Systém platforem potřebných k vývoji, nasazení a správě mobilních aplikací se skládá z mnoha komponent a nástrojů, které umožňují vývojáři psát, testovat a nasazovat aplikace do prostředí cílové platformy.
- Kotlin – Tento jazyk se stal oficiálním jazykem pro vývoj aplikací pro Android. Lze s ním pak pracovat např. ve vývojářském prostředí Android Studio, které zastoupilo dost chybový a nedotažený Eclipse. Android Studio je postavené na IntelliJ od Jetbrains (jedno z nejlepších IDE na trhu).[5]
- Swift – Oficiální programovací jazyk pro vývoj iOS aplikací. Je produktem přímo společnosti Apple a byl vyvinutý, aby ulehčil programátorům práci. Jako vývojářské prostředí se často využívá XCode, opět produkt společnosti Apple. Starší aplikace využívají Objective-C, který je již zastaralý.[5]
- Flutter – Jedná se o SDK, které umožňuje multiplatformní vývoj. Výsledná aplikace lze bez změn zkompilovat do nativního kódu pro Android i iOS. Jedná se o mladou technologii, kterou vyvíjí přímo Google, používá programovací jazyk Dart 2.
- React native – Jedná se o hybridní framework od Facebooku. Lze v něm psát aplikace pro Android i iOS. Vlastní logika aplikace se programuje pomocí JavaScriptu/TypeScriptu. Zobrazení aplikace vychází z nativních komponent.[6]
- Apache Cordova – Jedná se o hybridní framework vyvíjený softwarovou nadací Apache. Pro zobrazení používá kompletně webové technologie. Aplikace následně běží díky integraci WebView v jádru frameworku, který aplikaci pouští jako rychlou webovou aplikaci.[7]
Vývojové nástroje front-end
Vývojové nástroje front-endu jsou zaměřeny na uživatelské rozhraní a uživatelské prostředí (UI-UX) a poskytují:
- Nástroje pro návrh uživatelského rozhraní
- SDK pro přístup k funkcím zařízení
- Víceúčelová podpora
Servery typu back-end
Back-end nástroje navazují na front-end a poskytují sadu opakovaně použitelných služeb, které jsou centrálně řízené a kontrolované a poskytují následující:
- Integrace se systémy back-end
- Autentifikace uživatelů – oprávnění
- Datová služba
- Opětovné použití obchodní logiky
Výběr vývojové platformy
Volba platformy závisí např. na cílové skupině, druhu aplikace, softwarovým a hardwarovým požadavkům i možnostech či výhodách dané platformy. Zatímco u Androidu se při vývoji kreativitě takřka meze nekladou a platforma dává vývojářům obrovskou volnost, vývoj pro Apple je svázaný jasně danými pravidly. Pro Apple proto nelze vymýšlet spoustu nových funkcí nebo prvků. Vývojáři jsou tam naopak svázáni jasně danými mantinely. To má ale za výhodu čistý, funkční a minimalistický design všech aplikací, stejně fungující ovládací prvky, stabilitu a bezpečí.
Další rozdíl mezi vývojem aplikací pro tyto platformy je schvalovací proces. Schvalování proces aplikací pro Android probíhá automaticky a během několika hodin, kdežto u Apple schvaluje aplikaci specialista, jehož poznámky musí vývojáři zpracovat. Plusem však je, že je tím garantována i jistá úroveň kvality aplikací. Naproti tomu je u aplikací pro Android větší riziko, že testování neodhalí všechny chyby utržené kreativity ze řetězu.
O tyto odlišnosti se následně může opírat i volba, pro kterou z platforem vyvíjet, popř. zda vyvíjet aplikaci pro obě platformy zároveň, nebo pro každou zvlášť. Z důvodu těchto zásadních odlišností se jistě vyplatí vyvíjet aplikace pro každou platformu zvlášť, nativně, nikoli hybridně. Vývojář tím dosáhne mnohem kvalitnější a stabilnější aplikace, ač jim to zabere více času.[5]
Vývoj mobilních aplikací v Česku
Vývoj nových českých aplikací mapuje přehlídka a soutěž českých aplikací AppParade, jejíž poslední 33. „kolo“ se konalo v listopadu roku 2019.[8] Tato přehlídka se koná zpravidla 2x až 3x ročně, přičemž první „kolo“ se uskutečnilo 6. 12. roku 2010.[9]
Odkazy
Reference
- Mobilní aplikace v Evropě generují miliardy eur. Má to být jen začátek. E15.cz [online]. [cit. 2021-05-07]. Dostupné online. (česky)
- Tvorba zadání | ASWA. aswa.cz [online]. [cit. 2021-05-07]. Dostupné online. (česky)
- Jak probíhá vývoj mobilních aplikací krok po kroku?. synetech.cz [online]. [cit. 2021-05-07]. Dostupné online. (česky)
- PIXELFIELD. Kompletní průvodce pro vývoj mobilních aplikací (Postup, Ceny & Časté chyby). Pixelfield [online]. [cit. 2021-06-09]. Dostupné online. (česky)
- Specifika vývoje aplikací pro iOS a Android. Jste tým jablíčkářů nebo Android stoupenců?. synetech.cz [online]. [cit. 2021-05-07]. Dostupné online. (česky)
- Co je to React Native? - IT Slovník. it-slovnik.cz [online]. [cit. 2021-05-07]. Dostupné online. (česky)
- HERCEG, Tomáš. Zdroják [online]. 2016-06-29 [cit. 2021-05-07]. Dostupné online. (česky)
- AppParade. appparade.cz [online]. [cit. 2021-05-07]. Dostupné online.
- MEDIA, News. AppParade: Přehlídku českých mobilních aplikací vyhrál Meme Reactor pro Android. Médiář [online]. 2010-12-07 [cit. 2021-05-07]. Dostupné online.