Dilema mobilního vývojáře

Ilustrační foto

Ilustrační foto Zdroj: Shutterstock.com

Chytré telefony dnes hýbou světem. Neuplyne týden, aby nebyla představena zajímavá či průlomová novinka ze světa smartphonů, a zároveň také prudce roste počet jejich uživatelů. Jen samotná platforma Android zaznamená každý den přes 700 tisíc nových uživatelů a toto číslo už několik měsíců roste.

Jedním z důležitých parametrů, které vystřelily chytré telefony do nebeských výšin, jsou právě aplikace, jež lze do mobilních zařízení instalovat. Až možnost rozšiřovat funkčnost telefonu o další a další aplikace se stala pro mnoho uživatelů argumentem, proč si chytrý telefon pořídit. Jde tedy o velmi dynamické odvětví, které láká jak výrobce zařízení, tak i uživatele, a tím pádem i vývojáře aplikací. Předtím, než vývojář naskočí do světa chytrých telefonů, musí si ale dobře rozmyslet, kterým směrem se vydá. Klasický přístup je vytvořit takzvanou nativní aplikaci pro některou z platforem.

Čtěte také: Nebojte se aplikací


Výsledkem práce je pak binární balíček běžící pouze na dané platformě (až na opravdu výjimečné případy, kdy například pro BlackBerry existují nástroje pro „přebalení“ androidovou aplikací tak, aby zde nativně fungovaly). Na kterou platformu má vývojář zacílit? iOS od Applu je tradičním tahounem v mnoha ohledech. Android, za nímž stojí zejména Google, začíná kralovat v počtu a přírůstku uživatelů. Symbian, který je kdesi na pomezí mezi „featurephonem“ a „smartphonem“, má díky úspěšné historii pořád dost uživatelů. Windows Phone 7 tlačí kupředu dva velikáni: Microsoft a Nokia. Aby toho nebylo málo, vůbec největší výrobce chytrých telefonů Samsung si připravil ještě vlastní platformu Bada. Navíc je konkurence ve světě smartphonových aplikací opravdu obrovská. Apple už v polovině loňského roku oznámil přes 500 tisíc aplikací v AppStore a Android se k tomuto číslu blíží mílovými kroky.

Počítače jsou sto let za opicemi

Dnes to obvykle vypadá tak, že se nativní aplikace vyvíjejí pro obě hlavní platformy (iOS a Android) a případně se „přihodí“ ještě platforma třetí. Čím dál častěji je tím třetím právě Windows Phone 7. To samozřejmě znamená téměř trojnásobné náklady na vývoj – až na některé části (například serverový backend) je totiž obvykle potřeba připravit tři nezávislé mobilní aplikace. Každá z těchto tří aplikací se pak typicky vyvíjí v jiném jazyce (Objective-C pro iOS, Java pro Android a C# pro WP7) a vyžaduje jinou sadu znalostí, ačkoli principy plynoucí z omezení mobilního telefonu zůstávají zachovány.

Nejpalčivějším problémem už dnes zdaleka není výkon telefonů (ty se svými dvoujádrovými procesory hravě strčí do kapsy i jen pár let staré stolní počítače), ale spíš jejich výdrž na jedno nabití. Navrhnout aplikaci, která využívá systémové prostředky šetrně s ohledem na spotřebu energie, vyžaduje poměrně detailní znalost konkrétní platformy. Každá z platforem má také z pohledu vývojáře své mínusy. U Androidu je jím jeho roztříštěnost a náročné testování hotové aplikace, protože Android podporuje širokou řadu zařízení s různorodou technickou specifikací. Vývoj stejné aplikace pro Android a iOS tak na Androidu znamená o 30 procent více práce. iOS je zase poměrně striktní v tom, co vývojářům umožní a co už ne. U Windows Phone probíhá překotný vývoj a ve verzi 7.5 (Mango) už systém napravuje mnoho chyb a nedostatků, za které byli vývojáři často kritizováni.

Nastupuje chytrý web

Podobně jako ve světě stolních počítačů i zde postupně po malých krůčcích získává svou pozici web. Prohlížet webové stránky byla pro smartphony samozřejmost už od samého počátku. S příchodem HTML5 začínají vznikat i poměrně užitečné a čím dál sofistikovanější webové aplikace. Ještě nedávno bránily tvorbě dobrých mobilně-webových aplikací technické bariéry. Ty se však postupně stírají. Dnes už je například samozřejmostí, že si i webová stránka dokáže vyžádat GPS pozici telefonu nebo informace z dalších senzorů. Výkon telefonů i rychlost připojení navíc stále roste a přestává platit, že web je na mobilní aplikace příliš pomalý.

Zásadní výhoda „mobilně-webových aplikací“ je samozřejmě jejich přenositelnost mezi platformami. S trochou zkušeností je možné navrhnout webovou aplikaci, která hladce poběží na iOS, Androidu i Windows Phone. O něco více práce bude stát její oživení na Symbianu a BlackBerry, ale i to je možné, oželíme-li na těchto platformách některé pokročilé funkce. Kterou cestou se tedy s chystanou mobilní aplikací vydat? Je-li pro aplikaci klíčová vizuální podoba či zajímavé a responzivní uživatelské rozhraní (což je často u mobilních aplikací na dotykových telefonech důležitým parametrem), je ještě dnes lepší obrátit se k aplikaci nativní. Když ale chystáte jednoduchou „formulářovou“ aplikaci, ve které obsah převládne nad formou, rozhodně stojí mobilní web za důkladné zvážení. Mobilní hra však dnes bude vytvořena jako nativní aplikace téměř jistě.

Multiplatformnost ale může významně usnadnit některý z herních frameworků, jako je třeba věhlasný Unity3D, který má jádro připravené pro snadný přenos mezi platformami. Postupně se začínají objevovat nástroje a frameworky, s jejichž pomocí je možné připravit téměř nativní aplikace pouze s využitím znalostí HTML5. Zároveň jsou v chytrých telefonech stále chytřejší webové prohlížeče (typicky vystavěné nad jádrem WebKit) a čím dál lépe si s moderními webovými trendy poradí. Je tedy asi jen otázkou času, kdy mobilní web definitivně převládne a odsune výrobu nativních aplikací do historie. Letos to ale ještě rozhodně nebude.

Autor pracuje ve společnosti Inmite