Vývoj mobilních aplikací
S rozmachem operačního systému Android začaly velmi rychle vznikat nové a nové aplikace, které tento rozmach dále podpořily, protože má uživatel z čeho vybírat a snadno najde vhodnou aplikaci řešící jeho potřeby. Ovšem stále je tu velký prostor pro tvorbu zcela nových programů, případně vylepšování těch stávajících (mnoho z nich má totiž otevřené zdrojové kódy).
Kdo by se chtěl do této oblasti vrhnout, asi si brzy uvědomí, že mobilní svět má svá specifika. Oproti běžným počítačům je vývoj pro tablety, a zejména telefony svázán mnohem větší množinou různých omezení – počínaje malým displejem (který může mít třeba i velké rozlišení, ale fyzické rozměry jsou malé) přes častou absenci mechanické klávesnice (která je nahrazena virtuální klávesnicí na dotykovém displeji), malou operační paměť až třeba po energetickou závislost na nepříliš velké baterii.
Naopak bývá na mobilních přístrojích k dispozici poměrně velká škála vstupních zařízení. Dnes skoro každé zařízení disponuje různými snímači (akcelerometry, polohová čidla, snímače magnetického pole, ...), přijímačem GPS nebo komunikačními rozhraními, jako jsou Bluetooth a NFC.
Proto je potřeba na programování mobilních aplikací, a tedy i na knihu, která se jím zabývá, nahlížet trochu jinou optikou, než je tomu v případě vývoje například pro desktop, server nebo koneckonců i web. Někdy se říká, že kvalita mobilních aplikací tkví v jednoduchosti. Ovšem té jednoduchosti nemusí být vždy jednoduché dosáhnout.
O knize v obecné rovině
Nákupem knihy přeložené do češtiny z přibližně rok starého originálu Granta Allena člověk získává 656 stran textu a černobílých obrázků. Podstatnou část stránek vyplňují příklady kódu programů, což naznačuje přítomnost menšího množství suché teorie a většího podílu praktických ukázek.
Kniha je rozdělena do osmi částí s celkem 49 kapitolami. Jednotlivé části jsou vždy zaměřeny na určité obecnější oblasti, kapitoly uvnitř těchto částí se pak podrobněji zabývají specifičtějšími věcmi v jednotlivých oblastech. Tedy nic překvapivého, co by bylo jinak, než je u podobných knih zvykem.
Obsah jednotlivých částí knihy
1. Další funkce systému Android (?)
Poněkud divný název (který je velmi pravděpodobně chybný, protože se opakuje u šesté části) nedává tušit, o čem bude řeč. V celkem šesti kapitolách autor provede čtenáře prvními kroky, které jsou nezbytné pro přípravu před vlastním programováním. Nejprve stručně popisuje aktuální situaci v oblasti systému Android, pak už se věnuje instalaci vývojového prostředí včetně SDK, emulátoru a dalších potřebných součástí a také vytvoření a vylepšování prvního projektu. Předpokládá práci v prostředí Eclipse IDE, které je svobodné a je k dispozici pro Linux, Windows a OS X.
2. Aktivity
Možná znáte aktivity jako technický termín z desktopového prostředí KDE, ale tohle je něco jiného. Aktivity jsou hlavní entitou při vývoji aplikací pro Android (zhruba odpovídají oknům u desktopových aplikací) a autor jim věnuje téměř polovinu knihy.
Tady se můžete naučit práci s všemožnými objekty uživatelského rozhraní (widgety), s využitím prohlížečového jádra WebKit, obsluhou událostí životního cyklu aplikace (těch je mnoho a jejich správné ošetření je klíčem k dobře fungující a „neotravné“ aplikaci), ale třeba i s vlákny (tak jak je známe odjinud) nebo s tzv. záměry (další specifický pojem týkající se komunikace mezi aplikacemi).
Přestože jsou displeje mobilních přístrojů obecně malé, mohou mít různou velikost a poměr stran; třetí část knihy začíná právě touto problematikou. Dále zde „potkáte“ systém Android 3.0 Honeycomb, který přinesl do GUI práci s fragmenty, která se využije především na tabletech, kde rozdělení displeje na fragmenty umožňuje lépe využít jeho plochu. Jedna kapitola je věnována také různorodosti verzí systému Android (postupně vydaných) a jak s tímto problémem naložit.
4. Úložiště, síťové služby a API
Čtvrtá část knihy se věnuje ukládání dat do souborů a databází, síťové komunikaci a využití knihoven Javy. Dozvíte se například, jak se pracuje s databázovým systémem SQLite, proč a kdy synchronizovat souborový systém a jak přistupovat ke vzdáleným službám přes REST API.
5. Služby
Služby jsou v systému Android aplikační komponenty, které nemají vlastní uživatelské rozhraní, běží na pozadí a vykonávají nějaké činnosti – například získávají nějaká data ze serveru nebo místně něco zpracovávají, aniž by k tomu potřebovaly interakci s uživatelem (typickými případy jsou třeba stahování pošty nebo záznam polohy z GPS). Tato část knihy ukazuje, jak se službami pracovat a jak používat upozornění.
6. Další funkce systému Android
Dalo by se říct, že se v této části objevuje vše, co nebylo v těch předchozích. První kapitole se zabývá problematikou oprávnění, v systému Android velmi důležitou. Najdete zde také práci se zeměpisnými údaji (včetně zobrazování zabudované mapy), obsluhu telefonních hovorů, práci s písmy a využití dalších vývojových nástrojů, než se kterými se dosud pracovalo.
7. Alternativní prostředí
Zatímco většina knihy je věnována vývoji v jazyce Java, jedna část se zabývá i dalšími možnostmi, jak vyvíjet aplikace pro Android. Jedná se konkrétně o HTML5 (včetně ukládání dat do Web Storage), platformu PhoneGap (založenou na Apache Cordova) a ve zkratce také o Rhodes, Flash, JRuby a některé další.
8. Budoucí vývoj systému
Zde se kupodivu nedozvíte nic o tom, kam se bude vývoj systému Android ubírat (to už ostatně dnes částečně víme, protože od napsání knihy byly vydány čtyři nové verze: 4.1 až 4.4). Co se ale naopak dozvíte, jsou některé zásady pro vývoj aplikací tak, aby byly maximálně flexibilní nejen z hlediska různých verzí systému, ale i z hlediska hardwarových vlastností a nastavení jednotlivých přístrojů. Nechybí ani stručné informace o Google Play a o testování zařízení.
Shrnutí
Přestože je kniha nazvána „Android 4“, ve skutečnosti není příliš vázána na tuto verzi. Dá se říci, že se podle ní dá stejně dobře vyvíjet i pro starší verze, přinejmenším od 2.3 Gingerbread. Informace o vlastnostech a funkcích novějších verzí už jsou jen takový příjemný bonus navrch.
Celkově lze knihu hodnotit jako velmi povedenou, protože kdo bude postupovat krok za krokem, od začátku do konce, při troše snahy se naučí prakticky vše, co při vývoji mobilních aplikací potřebuje (samozřejmě za předpokladu, že již umí psát programy v Javě a zvládá základní programovací techniky). Co trochu zamrzí, jsou občasné chyby (nejkřiklavější je již zmíněný nadpis první části) a také to, že se člověk nedozví některé zajímavé věci, třeba jak pracovat se systémovým kalendářem. Jsou to drobnosti, ale k dokonalé spokojenosti by určitě přispěly.