Přejít k hlavnímu obsahu

Programy pro všechny smartphony

Programy pro všechny smartphony

Vývoj aplikací je jen pro profesionály. Omyl! Pro mobilní zařízení si může napsat widget každý nadšenec. Ukážeme vám VÝVOJÁŘSKÉ KITY a vysvětlíme vám základy programování pro mobily.
MANUEL SCHREIBER

Začal s tím iPhone - mezi položkami v telefonu nechyběla ikona App Store, což je místo, kde si majitelé iPhonů stahují aplikace. Ale ne od Applu, ale od výrobců třetích stran. Díky miniaplikacím může majitel telefonu dodat svému zařízení zcela nové funkce. A uživatelům se tato možnost líbí - poptávka je obrovská. 14. července 2009 bylo z App Store staženo 1,5 miliardy aplikací, a to za pouhý rok provozu. App Store nabízí ke stažení více než 65 000 aplikací, na jejichž programování se podílelo 100 000 vývojářů. Není proto divu, že konkurence by si z úspěchu App Store chtěla také něco ukrojit. Podobné tržiště aplikací proto nabídl i Google ve svém operačním systému Android, určeném pro PDA, Nokia spustila obchod OviStore pro mobily se systémem Symbian. Palm chystá řešení webOS, které bude dostupné v přicházejícím Palmu Pre. Jenže bez vývojářů nejsou aplikace. Výrobci mobilních telefonů proto musí programátory nalákat. Vydávají tedy vývojářské balíčky, které usnadňují psaní aplikací. Prozradíme vám, jak kity fungují, a na jednoduchém příkladu vám ukážeme, jak jsou aplikace pro mobilní zařízení programovány.

SDK: Správný základ

Aby mohl programátor vůbec začít psát aplikace, musí znát programovací jazyk daného zařízení. Musí znát gramatiku a syntaxi, aby mohl tvořit algoritmy a z nich skládat program. Nad správnou syntaxí bdí vývojové prostředí, které je součástí SDK (Software Development Kit). SDK poskytuje vývojové prostředí se všemi potřebnými komponentami. K těm patří knihovny funkcí, dokumentace jazyka a často také emulátor, na kterém lze kód testovat.
                                                                                                            Pro iPhone se programuje v C
K programování mobilních přístrojů je rovněž nezbytný Framework. Zjednodušeně řečeno je to softwarová struktura, která obsahuje vzory a postupy při vývoji aplikací. Framework obsahuje jednoduché funkční části kódu, ze kterých programátor vychází. Programátor pracuje ve vývojovém prostředí označovaném IDE (Integrated Development Environment), které je součástí SDK. Programátor píše kód ve speciálním editoru, který mu usnadňuje práci. Editor rozpoznává syntaxi, takže barevně odděluje klíčová slova a pomáhá zachovat strukturu kódu.
Jak programátor píše kód, tak také ladí program a eliminuje chyby. K tomu mu slouží 'debugger' (bug je anglicky softwarová chyba). Editor, přesněji interpreter, zároveň kontroluje, zda programátor nedělá chyby, jako je třeba neuzavření závorky nebo uložení nekompatibilní hodnoty do proměnné. Na vše programátora upozorňuje a ten může chyby ihned opravovat.
Vývoj programů by byl daleko náročnější, kdyby programátoři neměli k dispozici již hotové soubory se stovkami funkcí - knihovny. V knihovnách jsou připraveny funkce, které programátor jednoduše zavolá s příslušným parametrem, a funkce se provede. Výhodou je, že funkce v knihovnách jsou většinou zbaveny chyb a jsou perfektně optimalizované. I ve Windows se používají knihovny, jedná se o soubory s koncovkou DLL (Dynamic Link Library).
Aby operační systém zařízení pracoval s kódem jako s aplikací, je třeba použít compiler. Ten analyzuje programový kód a převede jej do jazyka, který je srozumitelný pro daný operační systém platformy. Nakonec je třeba software spustit v emulátoru a otestovat všechny funkce. Emulátory přitom musí zohledňovat i hardwarovou architekturu zařízení. Přestože jsou prakticky všechny telefony postavené na technologii ARM, rozdíly mezi výrobci existují.

iPhone: Objektové céčko

Chce-li programátor psát aplikace pro iPhone nebo iPod, má na výběr dvě možnosti: oficiální od Applu, a neoficiální. Původně nebyl žádný SDK k dispozici a bylo možné vytvářet pouze widgety pro internetový prohlížeč Safari. Jenže hackeři si do zařízení udělali cestičku a mohli vyvíjet vlastní aplikace. Na to Apple zareagoval tím, že zdarma poskytl SDK, aby nedocházelo k obcházení bezpečnostních opatření jeho produktů. Vydaný SDK je ale přístupný jen pro Macy s architekturou x86. Programátoři pracují ve vývojovém prostředí označovaném Xcode. Jazyk vypadá jako C, je však objektově orientovaný. Jako rozhraní (API) je použito Cocoa touch.
Vedle SDK používají vývojáři alternativní nástroje, jako jsou například volně šiřitelné frameworky pro iPhone User Interface (iUI). Díky takovým frameworkům je možné psát aplikace, které využívají ke spuštění internetový prohlížeč. Tím je zajištěna nezávislost na Mac OS X.
Licenční podmínky Applu jsou velmi omezující, proto je za ně společnost často kritizována. Programátoři mají například zakázáno psát programy, jejichž procesy by běžely na pozadí. A pokud programátor chce, aby aplikace běžela i ve skutečných zařízeních, a ne jen v jeho emulátoru, musí získat digitální certifikát. Ten ale není zadarmo - výrobce aplikace za něj musí zaplatit. Cena začíná na částce 99 USD za roční platnost. Poté může svůj program prodávat pomocí App Store, to je ovšem pouze tržiště a jeho správce (Apple) si bere část výdělku. U placených aplikací je to 30 % z výdělku. Velmi oblíbené je proto obcházení Applu. Na iPhonu stačí provést tzv. jailbreak a je možné instalovat aplikace od výrobců, kteří nemají certifikát. Hacknutím systému se však zvyšuje bezpečnostní riziko.

webOS: HTML kód

O SDK nového webOS od Palmu ještě není mnoho informací známo. Jisté ovšem je, že aplikace budou webově orientované: základem bude HTML, CSS a JavaScript. Pro psaní aplikací by tak mohl stačit kvalitní HTML editor. Kdo bude chtít svůj program pořádně otestovat, neobejde se bez speciálního emulátoru. Kdy bude připraven kompletní SDK s názvem Mojo, to dosud není zcela jasné. Na webové stránce http://developer.palm.com je zatím k dispozici jen beta verze. Palm nabídne SDK zdarma a bude se starat i o distribuci aplikací. Funkční programy budou podepsány a distribuovány v obchodě, stejně jako u Applu.
Výchozím bodem aplikace bude soubor index.html, ve kterém budou tlačítka a grafika podle parametrů zadaných Palmem. Díky 'Stylesheetům' bude možné vzhled aplikace libovolně upravit. Na pozadí poběží knihovna SQLite, která má na starosti JavaScript-API. S přímým přístupem do jádra systému se zatím nepočítá. Podle Palmu budou aplikace komunikovat pomocí Mojo frameworku s User Interface (UI) System Managerem. Ten slouží jako rozhraní pro webOS služby, které zajistí přístup k systémovým službám, jako je síť nebo řadič zvuku.

Android: Java kód

Android je otevřený operační systém, za kterým stojí Google a dalších 33 členů. Hnací sílou aliance je samozřejmě Google. Platforma je licencována jako Apache-2.0, je tedy volně k dispozici pro mobilní přenosná zařízení. Android je postaven na linuxovém jádře, na něj jsou nabalené i další moduly, jako je správa sítě, zvuku, klávesnice nebo fotoaparát. Jako rozhraní mezi hardwarem a aplikacemi slouží Dalvik Virtual Machine, který je postaven na Javě (viz grafika dole).
SDK obsahuje programový framework, knihovny a Android Runtime emulátor, který vypadá jako skutečný telefon. Samotný kód se píše a kompiluje v Javě. Kdo má s psaním Java aplikací zkušenosti, ten se rychle zorientuje v psaní aplikací pro Android. Jednoduchý příklad vidíte v rámečku vlevo.
Programování je díky SDK mnohem jednodušší, než tomu bývalo v minulosti. Řadu funkcí již mají programátoři hotových, stačí je tedy správně poskládat. Výhodou je, že zmíněné platformy jsou značně rozšířené a každý si může najít widget, který mu bude vyhovovat, případně napsat vlastní, o který se podělí se zbytkem komunity.
AUTOR@CHIP.CZ

INFO

Konkurenční řešení

Rivalové Applu, Palmu a Googlu zaspali dobu a takový komfort nenabízí. To by se ale mělo brzy změnit.

WINDOWS MOBILE

Programování bylo dosud velmi složité a zabývali se jím jen nadšenci. Od verze 6.5 by však mělo být možné psát widgety v HTML, CSS a JavaScriptech. Programy se budou spouštět pomocí integrovaného Internet Exploreru.
http://msdn.microsoft.com

SYMBIAN OS

Nokia s příchodem modelu N97 spouští OviStore, což je tržiště pro prodej programů. Nokia bude všechny aplikace testovat na telefonech, se kterými by měl být program kompatibilní. Výrobce softwaru bude muset s Nokií podepsat smlouvu, takže nebudou žádné anonymní programy.
http://store.ovi.com

J2ME

Java vlastně není systém pro mobily. Existuje pouze 'Java Micro Edition', která je optimalizována pro mobilní zařízení. Programátor tak napíše univerzální kód, který běží na každé platformě. Pro mobilní zařízení je však třeba aplikace optimalizovat - především kvůli malému displeji a nižšímu výkonu hardwaru.
http://interval.cz/programovani/j2me

Eclipse: Jak se píší aplikace pro Android

Android SDK je perfektní hračkou pro programátory. Proto jsou v on-line obchodě k dispozici stovky různých nástrojů. Na velmi jednoduchém příkladu vám ukážeme, jak se aplikace píše.

PŘÍPRAVA: INSTALACE SDK

Ještě než se pustíte do programování, je třeba provést potřebnou přípravu. Programování probíhá v Javě, proto je třeba, abyste měli na počítači nainstalovaný JDK6 (Java Development Kit). Ten si můžete stáhnout na http://java.sun.com/javase/downloads/index.jsp. Jakmile máte Javu nainstalovanou, můžete se pustit do SDK Android. Ten se ovšem nijak neinstaluje, stačí jej rozpakovat z archivu. Nyní už máte v principu vše, co jako programátoři potřebujete, a můžete se pustit do psaní kódu. To by ovšem bylo velmi nepohodlné. Plný komfort při programování poskytne Eclipse. Nástroj je velmi přehledný a vstřícný k programátorovi: pomáhá mu hledat chyby, upozorňuje na problémy při kompilaci. Aby si Eclipse rozuměl s kódem pro Android, musíte do prostředí připojit plug-in od Googlu: ADT (Android Development Tools). Otevřete proto Eclipse a zvolte »Help | Software Updates«. Zobrazí se nové okno, zde zvolte »Aviable Software | Add Site | Archive«. Pak zadejte cestu https://dl-ssl.google. com/android/eclipse a stáhněte potřebný plug-in. Kliknutím na »Install« jej do programu nainstalujete.

TEST: VYTVOŘENÍ PROJEKTU

Pokud jste vše provedli, můžete se pustit do vývoje první aplikace. V Eclipse zvolte »File | New | Other« a z nabízených možností vyberte »Android Project«. Pokračujte kliknutím na »Next«. Nyní je třeba vyplnit všechny nezbytné parametry projektu. Po vytvoření projektu si již můžete otevřít okno se zdrojovým kódem a začít psát algoritmy. Pro toho, kdo zná Javu to není nic složitého. Eclipse je výborné prostředí, takže vám automaticky nabízí doplnění klíčových slov a kontroluje syntaxi. Většinu chyb se vám tak podaří odladit již při psaní kódu.
Samozřejmostí je zvýrazňování syntaxe, takže se v kupě příkazů neztratíte. Pokud navíc uděláte chybu, Eclipse vám řádek označí a přidá nápovědu o tom, co je špatně.
Když máte kód hotový, můžete jej začít zkoušet. Zvolte »File | Save« a poté zvolte »Run | Run Configuration | Android Application «. Zde vyberte název svého projektu. Nakonec zvolte »Lunch Action« a klikněte na »Launch«. Pomocí »Run« otevřete emulátor Androidu ve tvaru telefonu a můžete vyzkoušet svoji první aplikaci.
Takto se programují aplikace v Eclipse
Díky emulátoru je možné aplikaci rychle vyzkoušet, abyste zkontrolovali, zda se chová správně. Kód je v aplikaci přehledně zobrazen.

Stavba androidí aplikace

Základní struktura aplikace je vždy stejná. Podle zaměření nástroje se vybírají komponenty, které jsou třeba.
Centrálním prvkem je aplikační framework. Programy komunikují s˙Aneroidem pomocí virtuálního stroje (Dalvik VM).
Knihovny - Připravené funkce, které může využít každá aplikace
Aplikační Framework - Určuje koncepci a funkcionalitu
Android Runtime - Runtime se skládá z˙jádrových knihoven a Dalvik VM
Jádrové knihovny - Základní funkce v˙Javě
Virtuální stroj - Dalvik VM je rozhraní k systému
Linuxové jádro - Základní komponenty systému

 

Dokumenty ke stažení