Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

3. diel - Android programovanie - Android API a štruktúra projektu

V dnešnom diele Kotlin tutoriálu venovanému programovaniu pre Android si vysvetlíme, čo je to Android API a popíšeme si štruktúru projektu v Android Studio.

Čo je to Android API?

Android API by si určite hneď na úvod žiadalo podrobnejšie vysvetlenie. Verzia API určuje, aké triedy a funkcionalitu môžeme pri tvorbe našej aplikácie použiť. Pokiaľ zvolíme API napríklad verzia 15, aplikácia pobeží na všetkých telefónoch s API 15 až napr. 29 (kde 29 je tu aktuálne posledná verzia). Avšak užívateľ so starším zariadením s API 14 aplikáciu nespustí.

Všeobecne platí, že čím vyššiu API použijeme, tým viac máme pri programovaní možností. Nielen, že budeme môcť využiť pri vyššom API napríklad pokročilé animácie, ale tiež si programovanie uľahčíme. U staršieho API musíme napr. riešiť zákaz zmeny orientácie alebo možnosť uspávania aktivity priamo v Kotlin kóde, čo je značne zložitejšie oproti riešeniu rovnakého problému vo vyššom API, kde stačí niekedy aj jeden riadok v XML kóde.

V prípade našej prvej aplikácie nám stačí nízke API. Pokiaľ zvolíme napr. API 10 (Android 2.3.3), naša aplikácia pôjde takmer všetkým. Z toho vyplýva, že čím nižšie API zvolíme, tým viac užívateľov bude môcť aplikáciu používať. Google ale vývojárov núti podporovať určité API pri pridaní novej aplikácie do Play a toto číslo sa stále zvyšuje (Pre rok 2020 je to API 29), takže nemôžeme zas voliť úplne nízke čísla. Ak by sme vyvíjali napríklad nejakú zložitejšiu hru alebo aplikáciu, ktorá potrebuje rôzne zložité animácie atď., je lepšie zvoliť vyššie API kvôli viacerým funkciám.

Nakoniec sa pred nami otvorí vývojové prostredie, v ktorom je pripravená jedna (hlavná) Aktivita (obrazovka), obsahujúca text "Hello World!".

GUI Android Štúdia

Na nasledujúcom obrázku si v rýchlosti ukážeme umiestnenie niektorých dôležitých ovládacích prvkov Android Studia:

Tvorba mobilných aplikácií pre Android v Kotlin

Poďme si ich krátko popísať:

  1. Vidíme tu ponuku základných užívateľských komponentov, ktoré môžeme do otvoreného layoutu pretiahnuť.
  2. Pod ňou sa nachádza Component Tree, teda stromové zobrazenie komponentov vložených do layoutu.
  3. Najväčšia časť zaberá náhľad vytváraného layoutu.
  4. Ďalej tu máme prepínacie tlačidlá, ktorými môžeme zobraziť iba náhľad layoutu, iba XML kód layoutu alebo oboje zároveň.
  5. Pokiaľ v Component Tree vyberieme nejaký objekt, napr. náš TextView, objaví sa nám tiež výpis všetkých parametrov, ktoré môžeme komponentu nastaviť. Všetky tieto parametre je možné nastavovať aj „ručne“ priamo v XML.
  6. V hornej časti je niekoľko rozbaľovacích menu s možnosťami zobrazenia náhľadu našej aplikácie. Sú to najmä:
    • Symbol otočenia zariadenia pre simuláciu otočenia zariadenia,
    • symbol telefónu s nápisom Pixel pre možnosť zobraziť layout podľa vybraných typov zariadení a ich parametrov,
    • zelená hlavička robota umožňujúca nastaviť verziu Android, pretože niekedy môže mať verzia API vplyv na vzhľad (môžeme prepnúť iba do tých verzií, ktoré máme stiahnuté v SDK Manageri) a
    • symbol oka, ktorým okrem iného môžeme zobraziť aj okolité objekty (toolbar aplikácie a tlačidlá telefónu).
Tieto ikonky si preklikajte a vyskúšajte, čo vedia ;-)

Štruktúra projektu

Android Studio nám už pripravilo nejakú základnú štruktúru projektu aj kódu. Poďme si ju popísať. Vidíme ju v ľavej časti okna vývojového prostredia.

Tvorba mobilných aplikácií pre Android v Kotlin

Na obrázku je vidieť zobrazená zjednodušená štruktúra v režime Android. Iné režimy môžeme prepínať v hornej časti nad oknom so štruktúrou projektu. Pokiaľ prepneme na štruktúru Project, uvidíme podrobnejší výpis jednotlivých zložiek.

Kľúčová je pre nás zložka app/, ktorá sa ďalej (v režime Project) vetví na:

  • libs/ - Sem sa ukladajú knižnice našej aplikácie, ak by sme chceli pridať nejakú funkčnosť nášmu projektu.
  • src/ - Táto zložka obsahuje všetky zdrojové súbory v niekoľkých podadresároch, z ktorých nás bude zaujímať hlavne zložka main/.
Zložka main/ sa ďalej vetví na java/ a res/:
  • java/ - Prvá zložka obsahuje súbory zdrojového Java (Kotlin) kódu usporiadané do balíčkov. V rozsiahlejšom projekte je dobré rozdeliť zdrojový kód aplikácie do viacerých balíčkov - napríklad pre aktivity, objekty, fragmenty, listenery, služby atď., ale o tom až neskôr.
  • res/ - V druhej zložke sú uložené všetky externé zdroje aplikácie (resources), ako sú obrázky, súbory XML s rozložením okna, reťazce, animácie, definície farieb, zvukové súbory, fonty atď. Táto zložka obsahuje ďalšie podzložky:
    • drawable - Táto zložka bude obsahovať súbory s obrázkami, súbory .xml s definíciou vzhľadu častí komponentov (napr. ich pozadie), súbory .svg atď., ktoré sú použité v aplikácii. Môžu tu byť aj ďalšie zložky pre alternatívne zdroje pre špecifické konfigurácie obrazovky (podľa hustoty pixelov, rozlíšenie obrazovky). Systém Android si potom vyberie ten variant obrázku, ktorý najviac vyhovuje parametrom displeja konkrétneho zariadenia. Zložky s týmito alternatívnymi zdrojmi môžu byť pomenované ako drawable-hdpi/, drawable-mdpi/, drawable-xhdpi/, drawable-xxhdpi/, drawable-xxxhdpi/.
    • layout/ - V priečinku layout/ sa nachádzajú XML súbory, v ktorých definujeme vzhľad užívateľského rozhrania rôznych častí aplikácie. V novo vytvorenom projekte Hello World! sa jedná o jeden súbor s názvom activity_main.xml, ktorý obsahuje rozvrhnutie užívateľského rozhrania hlavnej Aktivity (hlavného okna) budúcej aplikácie.
    • mipmap/ - Ďalšia zložka obsahuje ikony aplikácie, ktoré sú rovnako ako v zložke drawable/ rozdelené do niekoľkých alternatívnych typov podľa rôznych parametrov displejov rôznych zariadení (mipmap-hdpi/, mipmap-mdpi/, mipmap-xhdpi/, mipmap-xxhdpi/, mipmap-xxxhdpi/).
    • values/ - Do poslednej zložky ukladáme súbory XML, ktoré definujú jednoduché hodnoty, ako sú reťazce, polia, celé čísla, rozmery, farby, štýly atď. Na ne potom odkazujeme z kódu aplikácie alebo z XML návrhu používateľského rozhrania.
Všetky potrebné zložky, s ktorými budeme pracovať, nájdeme v zjednodušenej Android štruktúre, do ktorej sa vrátime.

Súbor activity_main.xml

Okno je teda definované v súbore res/layout/activity_main.xml. V tomto rozvrhnutí sa nachádza jeden TextView zobrazujúci text "Hello World!" TextView je, ako názov napovedá, komponent pre zobrazenie textu.

Súbor strings.xml

V activity_main.xml je komponente TextView text nastavený týmto riadkom:

android:text="@string/hello_world"

Všimnite si, že text "Hello World!" tu nie je zapísaný priamo, ale ako odkaz @string, ktorý vedie na súbor res/values/strings.xml. Až tu je definované, aký text má reťazec hello_world. Prečo texty do okna vkladáme tak zložito? Odpoveď je jednoduchá – keď sa v budúcnosti rozhodneme našu aplikáciu preložiť do iného jazyka, len odkážeme na iný súbor s textami a nebudeme musieť celú aplikáciu prepisovať. Preto sa tohto štandardného spôsobu budeme držať a všetky texty aplikácie budeme mať na jednom mieste, v súbore res/values/strings.xml.

Pokiaľ sa pozrieme do onoho súboru res/values/strings.xml, nájdeme tu riadok:

<string name="hello_world">Hello World!</string>

Hodnota reťazca s názvom hello_world je teda Hello world! ;

Na preloženie aplikácie do iného jazyka by potom stačilo pridať zložku values-cs/ a do nej prekopírovať strings.xml. V ňom by sme prepísali jednotlivé texty do slovenčiny (tu na hodnotu Ahoj Světe!). Aplikácia pri spustení na zariadení, ktoré je v jazyku slovenčina, potom bude ťahať hodnoty pre jednotlivé textové položky práve z novo vytvoreného súboru.

Android Manifest

Ako posledný a najdôležitejší súbor tu máme manifest. Ten sa musí nachádzať v koreňovom adresári každej aplikácie a obsahuje informácie o našej aplikácii, ktoré odovzdá Androidu ešte predtým, ako ju spustia. Manifest je teda vstupným bodom do každej aplikácie.

Nachádzajú sa tu jednotlivé aktivity a ich nastavenia, práva aplikácie, ikona atď. Všetky oprávnenia, napr. k prístupu na internet alebo oprávnenie k obrázkom galérie, ktorá aplikácia požaduje od užívateľa povoliť, sú vývojárom definované práve v súbore AndroidManifest.xml. Ďalej môžeme v manifeste špecifikovať požiadavky aplikácie na hardvér zariadenia. Ak vytvoríme aplikáciu, ktorá vyžaduje (deklaráciou v manifeste), aby zariadenie malo fotoaparát, nebude používateľovi v obchode Google Play táto aplikácia zobrazená, pokiaľ jeho zariadenie nie je fotoaparátom vybavené. Zo začiatku tento súbor upravovať nemusíme.

Teraz už poznáme všetko potrebné na to, aby sme skúsili našu prvú aplikáciu Hello World! spustiť.

V budúcej lekcii, Android programovanie - Spustenie aplikácie (zariadenie/emulátor) , si ukážeme, ako projekt spustiť na reálnom zariadení s Androidom a dozvieme sa tiež, ako si vytvoriť virtuálne zariadenie v emulátore.


 

Predchádzajúci článok
Úvod do Android programovania v Kotlin a vývojového prostredia
Všetky články v sekcii
Tvorba mobilných aplikácií pre Android v Kotlin
Preskočiť článok
(neodporúčame)
Android programovanie - Spustenie aplikácie (zariadenie/emulátor)
Článok pre vás napísal Marek Urbańczyk
Avatar
Užívateľské hodnotenie:
1 hlasov
Autor se věnuje programování v Kotlinu, Javě. Má také zkušenosti s C#.
Aktivity