Naučíme vás programovat aplikace pro android. Začínáme

Zajímalo vás někdy, jak to vypadá uvnitř každé android aplikace, kterou spustíte na svém telefonu? Nabízíme vám příležitost vyzkoušet si práci programátora nebo alespoň otestovat vědomosti v našem jednoduchém mobilním kvízu.

Programování pro operační systém Android. Ilustrační foto | foto: Mobil.iDNES.cz

Programování pro operační systém Android není úplně jednoduchá záležitost. Rychle si sice osvojíte podstatné základy, ale s rostoucí velikostí projektu můžete narážet na problémy s rychlostí aplikace nebo její nestabilitou. Účelem článku je ukázat, jak vypadá android aplikace zevnitř a jak jsou napojeny jednotlivé obrazovky na vlastní logiku programu. Pokud vás toto neláká, můžete rovnou vyzkoušet mobilní kvíz, který vznikl právě pro výukové účely.

Dodejme, že ačkoliv nemusíte umět vůbec programovat a přesto si chcete vytvořit vlastní kvíz, stačí pouze přidávat nové řádky do kódu. Tyto řádky totiž odpovídají novým otázkám, které budou součástí kvízu. Pro plné porozumění kódu je potřeba mít zkušenosti s programovacím jazykem Java, který je základním stavebním kamenem androidu. Důležitá je i alespoň částečná znalost angličtiny. Odkazy na stažení jednotlivých projektů jsou na konci článku.

Příprava nástrojů

Nyní přichází trochu nudnější část, která se týká instalace vývojového prostředí. Kompletní návod je uveden zde a my si dále předvedeme pouze základní náležitosti instalace. Google jako vývojové prostředí oficiálně podporuje pouze Eclipse IDE, které je zdarma a odkaz na stažení je zde. Bohatě postačí verze Classic, do níž se posléze přidají potřebné komponenty pro vývoj.

Vzhledem k tomu, že android stojí a padá na Javě, je potřeba si ještě stáhnout JDK (Java Development Kit) v základní verzi bez Netbeans či Java EE. JDK je základním nástrojem pro práci s Javou nehledě na to, jestli programujete aplikace používané pro běžné počítače nebo mobily. V obou případech nemusíte při instalaci volit žádná speciální nastavení a pouze se nechte provést několika jednoduchými kroky instalace.

Další fází je stažení takzvaného SDK (Software Development Kit) pro Android, což je balíček s nejrůznějšími nástroji, které využívá právě Eclipse nebo některé z nich můžete používat i vy. Patří sem nástroje pro úpravu grafických prvků, testování nebo optimalizaci vzhledu jednotlivých obrazovek: zkrátka kompletní výzbroj pro práci s danou platformou. Balíček si stáhněte a rozbalte na libovolné místo na disku. Nejčastěji se používá umístění v C:\Program Files.

Programování pro operační systém Android
Programování pro operační systém Android
Programování pro operační systém Android

Nyní už máme všechny základní díly skládanky, které je potřeba složit dohromady. K tomu nám poslouží ADT (Android Development Tools) Plugin do prostředí Eclipse, který nám přidá nabídky týkající se androidu. Plugin stáhnete do Eclipse přes nabídku Help – Install New Software - Add. Zde dále zvolte libovolné jméno a jako adresu repository přidejte https://dl-ssl.google.com/android/eclipse/. V dolním okně byste měli mít na výběr řádek Developer Tools, který označte pro stažení. Pokud na vás v další části vyskočí hlášení o autenticitě nebo validitě softwaru, můžete s tím bez větších rozpaků souhlasit.

Blížíme se téměř do finále celé instalace a zbývá pouze správně nakonfigurovat výše zmíněný plugin. Odskočte si tedy v Eclipse do nabídky Windows – Preferences – Android a do políčka napravo zadejte cestu k místu, kam jste rozbalili SDK z druhého kroku instalace.

Zbývá už jen poslední krůček: stažení konkrétní platformy (resp. verze operačního systému Android) a s tím souvisejícího emulátoru androidu. Emulátor je náhrada za fyzické zařízení a slouží k testování vaší aplikace přímo na PC. Díky tomu, že emulátor běží na odlišené výpočetní architektuře než běžný počítač (x86 vs. ARM), je jeho běh o něco pomalejší než u reálného zařízení, které byste mohli mít připojené přes USB.

Programování pro operační systém Android
Programování pro operační systém Android
Programování pro operační systém Android

Danou platformu si stáhnete z nabídky Windows – Android SDK Manager. Na výběr máte prakticky ze všech verzí androidu, co za poslední roky vyšly. Doporučujeme zvolit platformu Android 2.3.3 a z celé palety možností vám bude stačit zaškrtnout pouze SDK Platform. Stažené byste rovněž měli mít ze sekce Tools položky Android SDK Tools a Android SDK Platform-tools.

Nový emulátor vytvoříte v nabídce Windows – Android AVD Manager – New, kde vyplníte název emulátoru (libovolný), zvolíte platformu a případně rozlišení displeje. Emulátor spustíte pomocí tlačítka Start. Při spuštění můžete zvolit, aby se velikost displeje přizpůsobila velikosti reálného zařízení pomocí volby Scale display to real size.

Importujeme projekt

Po nezbytné části instalace nástrojů se dostáváme konečně k samotné tvorbě projektu. Nový projekt můžete vytvořit přes nabídku File – New – Project – Android – Android Project. Pro účely tohoto článku jsme vytvořili dva projekty. Jeden je kompletní zdrojový kód pro náš kvíz a v druhém cvičném projektu několik řádků kódu chybí a je na vás, abyste je doplnili.

V obou případech jsou pro větší názornost jednotlivé řádky kódu okomentovány s vysvětlením, co který dělá. Pro začlenění stažených projektů stačí v Eclipse zvolit nabídku File – Import – General – Existing Projects into Workspace a zvolit složku, kam jste rozbalili stažený projekt. Po importu projektu bude nejspíše nutné ještě zvolit nabídku v horní liště Project – Clean a zvolit daný projekt.

Programování pro OS Android

Android projekt se skládá z několika různých částí. Vývojáři platformy si dali tu práci a pečlivě oddělili samotnou logiku aplikace, která se nachází ve složce \src (Source), od vlastního vzhledu aplikaci ze složky \res (Resources). V druhé zmiňované složce se nacházejí zejména XML soubory popisující podobu jednotlivých obrazovek (tzv. layouty) a kupříkladu ikony nebo obrázky, které se používají napříč celou aplikací. Layouty obecně určují, kde se má na displeji nacházet jaké tlačítko, textové pole nebo podobný ovládací prvek určený pro uživatele.

Programování pro OS Android

Dále v podsložce \values a souboru strings.xml můžete najít dvojice slov a jejich překladů pro jednotlivé jazyky. V našem případě jsou tyto soubory dva – pro češtinu a angličtinu. Složka \res bývá většinou hodně rozvětvená, protože se podle ní řídí, jaké obrázky nebo layouty budou použity pro zařízení, na kterém je aplikace právě spuštěna. Tedy kupříkladu, jestli se má použít layout určený pro malé či velké displeje mobilu nebo obří tablety.

Prozkoumáváme zdrojový kód

Ve složce \src\cz.mobil.quiz naleznete čtyři soubory, které jsou v tuto chvíli klíčové. Jsou to tři takzvané Activity a jedna pomocná třída Question.java, která reprezentuje jednotlivé otázky kvízu. Activita je zjednodušeně řečeno jedna uživatelská obrazovka, která má svůj layout a logiku jednotlivých operací, které se pod danými tlačítky nebo textovými poli skrývají.

Oficiální příručka

Tento článek není v žádném případě náhradou za oficiální materiály z Android Developers Guide. Je spíše malým okénkem do světa programování pro operační systém Android. Zdrojový kód rovněž nemá ideální podobu a byl velmi zjednodušen pro potřeby tohoto článku.

Zaměřme se nyní na soubor MainActivity.java, kde se v metodě onCreate právě sváže vzhled obrazovky (layout) a daná Activita pomocí metody setContentView. Na androidu je skvělé, že automaticky vytváří odkazy na všechny soubory umístěné v \res a můžeme k těmto souborům přistupovat pomocí souboru R.java. V našem případě nastavíme vzhled obrazovky na R.layout.main, což odpovídá souboru main.xml.

Tlačítka a akce, která se má provést po jejich stisknutí, je svázána pomocí tzv. listenerů (posluchačů). V našem případě je nutné tedy provázat tlačítka z hlavního menu na odpovídající akce, jako je spuštění kvízu, zobrazení sekce O aplikaci a ukončení aplikace. Tlačítka a další elementy v XML jsou opět identifikována pomocí svého jedinečného Id, které je možné najít ve zmiňovaném souboru R.java. Stačí tedy zavolat metodu findViewById s Id tlačítka (naleznete ho v souboru layoutu) a posléze k němu přidat náležitého posluchače pomocí metody setOnClickListener.

Programování pro OS Android

U prvních dvou tlačítek menu je potřeba spustit novou Activitu. To se provádí pomocí metody startActivity s parametrem Intent. Intent je obecně řečeno zpráva, která se šíří operačním systémem, kde si jí mohou zachytávat jednotlivými příjemci. Takto aplikace zachytávají Intenty, které obsahují informace o nově došlé SMS nebo příchozím hovoru. V našem případě tato zpráva bude mít jasně daného příjemce, kterou bude Activita kvízu nebo sekce O aplikaci.

Intent tedy bude mít jako parametr současnou Activitu (MainActivity.this) a cílovou Activitu (QuizActivity.class nebo AboutActivity.class). Přiřazení layoutu a posluchačů k tlačítkům je v těchto Activitách obdobné. Můžeme se tedy posunout na samotné zobrazení otázek.

Kvíz začíná

Kvízové otázky jsou uloženy v seznamu s názvem questionList, který jsme naplnili pomocí metody createQuestionList. Právě v této metodě můžete přidávat nebo měnit jednotlivé otázky. Stačí přidávat jednotlivé řádky a měnit pouze dané texty. Stačí dodržet pořadí, tedy jako první text otázky, tři možné odpovědi a číslo správně odpovědi. Pozor na to, že se čísluje od nuly. Dále můžete změnit proměnnou questionCount, která určuje, kolik dostane uživatel otázek. O nic víc se nemusíte starat. Stačí tedy pouze přidávat nové řádky a případně změnit počet otázek v rámci jedné hry.

Programování pro OS Android

Z pohledu programování pro android je zajímavá metoda fillQuestion, která nalezne jednotlivá textová pole u tlačítek odpovědí (tzv. RadioButton)  podle Id a změní jejich popisek a text otázky. Opět se používá metoda findViewById a nastavení textu pomocí metody setText. Uživateli se tak zobrazují stále stejná tlačítka, ale pouze se mění jejich popis. Na závěr celého kvízu se zobrazí dialog showStatistics, kde se do těla zprávy dialogu vyplní počet otázek, na které uživatel odpověděl a počet těch správně zodpovězených. Zbylé části kódu se týkají běžného programování v operačním jazyku Java a samotného principu losování dalších otázek.

Úkol pro vás

Pokud chcete pouze upravovat nebo přidávat otázky, stáhněte si kompletní verzi zdrojových kódů. Naopak pokud chcete něco doplňovat i nad rámec otázek, zvolte druhý projekt. Chybějící části kódu jsou pouze v souborech MainActivity.java a QuizActivity.java a jsou jasně označené. Doplňte na správná místa řádky kódu pro nalezení tlačítek v layoutu a svázání s danou akcí. Upravený projekt spustíte, pokud kliknete pravým tlačítkem na projekt a zvolíte možnost Run As – Android Application. Pokud ještě nebyl emulátor spuštěný, nastartuje se automaticky.

Programování pro OS Android
Programování pro OS Android

Instalační soubor .apk naleznete na disku ve složce s projektem v adresáři \bin. Tento soubor můžete libovolně šířit a posílat ostatním. Ti však musí mít v telefonu nastaveno, že dovolují instalovat aplikace, které nepocházejí z Google Play (Nastavení – Aplikace – Neznámé zdroje).

  • Nejčtenější

Podívejte se na fotografie vylepšené umělou inteligencí. Nadchla i Google

12. března 2024  7:02

I nejlepší fotomobil může trpět řadou nedokonalostí, které se projeví na výsledných fotografiích....

Vyzkoušeli jsme za vás kontroverzní Temu. Drobnosti za desetikoruny

19. března 2024

Internetový obchod Temu budí kontroverze. U influencerů je neuvěřitelně populární a jejich...

{NADPIS reklamního článku dlouhý přes dva řádky}

{POPISEK reklamního článku, také dlouhý přes dva a možná dokonce až tři řádky, končící na tři tečky...}

O2 dává neomezená data s příjemnou slevou. Avšak pouze dočasně

14. března 2024  7:02

Neomezená data s přenosovou rychlostí 10 Mbit/s představují až na jednu výjimkou základ nabídky...

KOMENTÁŘ: Za pár let budeme rozvojovým zemím závidět jejich mobilní sítě

16. března 2024

Premium Je dost možné, že za pár let budou mít v rozvojových zemích lepší mobilní sítě, než jaké budou...

{NADPIS reklamního článku dlouhý přes dva řádky}

{POPISEK reklamního článku, také dlouhý přes dva a možná dokonce až tři řádky, končící na tři tečky...}

Ultrasamsung možná přiměje zastánce klasiky přejít ke skládačce

15. března 2024  6:57

Samsung podle dostupných informací chystá hned dva modely řady Galaxy Z Fold, kterých bychom se...

VIDEO: Střílej po mně! Kameraman natočil téměř celý útok v centru Prahy

Premium Ve čtvrtek zemřelo rukou střelce Davida K. 14 obětí, 25 lidí je zraněných, z toho deset lidí těžce. Jedním z prvních na...

Máma ji dala do pasťáku, je na pervitinu a šlape. Elišku čekají Vánoce na ulici

Premium Noční Smíchov. Na zádech růžový batoh, v ruce svítící balónek, vánoční LED svíčky na baterky kolem krku. Vypadá na...

Test světlých lahvových ležáků: I dobré pivo zestárne v obchodě mnohem rychleji

Premium Ležáky z hypermarketů zklamaly. Jestli si chcete pochutnat, běžte do hospody. Sudová piva totiž dopadla před časem...

Chytrému prstenu Samsung hodně věří. Na start bude mít připravené zásoby

19. března 2024

Samsung by měl chytrý prsten Galaxy Ring představit 10. července spolu s novými skládačkami. Prodej...

Vyzkoušeli jsme za vás kontroverzní Temu. Drobnosti za desetikoruny

19. března 2024

Internetový obchod Temu budí kontroverze. U influencerů je neuvěřitelně populární a jejich...

VIDEO: Apple zfilmoval kultovní komiks. Zamířil kvůli tomu do Japonska

18. března 2024  6:57

Děj nového krátkometrážního snímku, jehož prostřednictvím Apple tradičně demonstruje přednosti...

Chytré, nebo klasika? Mrkněte na hodinky Casio inspirované Apple Watch

18. března 2024

Značka Casio letos oslavuje 50 let výroby svých náramkových hodinek a patří na tomto poli k...

Akční letáky
Akční letáky

Všechny akční letáky na jednom místě!

Nutný výchovný pohlavek, souhlasí Bouček i Havlová s přerušením projevu na Lvu

Moderátor Libor Bouček ostře zareagoval na kauzu ohledně délky proslovu režisérky Darji Kaščejevové na předávání cen...

Švábi, vši a nevychované děti. Výměna manželek skončila už po pěti dnech

Nová Výměna manželek trvala jen pět dní, přesto přinesla spoustu vyhrocených situací. Martina ze Znojma se pokoušela...

Vyzkoušeli jsme podvod z Aliexpressu. Může vás přijít draho, i po letech

Nakoupili jsme na Aliexpressu a pěkně se spálili. Jednu USB paměť, dvě externí SSD a jeden externí HDD. Ve třech...

Chtěli, abych se vyspala s Baldwinem kvůli jeho výkonu, říká Sharon Stone

Herečka Sharon Stone (66) jmenovala producenta, který jí řekl, aby se vyspala s hercem Williamem Baldwinem (61). Měla...

Byla to láska na první pohled, říká hvězda Gilmorek o manželství s modelkou

Milo Ventimiglia (46), představitel Jesse ze seriálu Gilmorova děvčata nebo Jacka Pearsona ze seriálu Tohle jsme my, je...