Vývoj aplikácií pre Android, 2. časť
V úvodnej časti seriálu sme sa venovali inštalácii a konfigurácii vývojového prostredia aemulátorov. Pokračujeme vytvorením jednoduchej aplikácie, na ktorej budeme demonštrovať základné princípy vývoja. Zároveň po prvom spustení projektu budete mať istotu, že vývojové prostredie, SDK aj emulátory máte správne nakonfigurované. Námetom aplikácie bude výpočet indexu telesnej hmotnosti BMI na základe zadanej výšky a hmotnosti osoby podľa vzorca:
BMI = hmotnosť v kg / (výška v m)2
Vytvorenie projektu
Projekt vo vývojovom prostredí Eclipse s nainštalovaným a správne nakonfigurovaným Android SDK vytvoríte pomocou menu File -> New -> Android Application Project. Vprvom dialógu na vytvorenie projektu zadávate názov aplikácie, ktorý sa bude zobrazovať pri spúšťaní aplikácie, názov projektu anázov balíčka. Názov balíčka je zároveň menný priestor balíčka pre vašu aplikáciu. Ak plánujete aplikáciu publikovať na Google Play, nemôžete použiť implicitnú hodnotu "com.example", určenú na cvičné príklady.
Vytvorenie nového projektu zadanie názvu
Dôležitý je výber maximálnej aminimálnej verzie SDK, čiže na akej škále verzií operačného systému Android bude možné vašu aplikáciu spustiť. Implicitne je ako aktuálna verzia nastavená najvyššia dostupná verzia. Ako najnižšia verzia je implicitne nastavený Android 2.2 (Froyo) – verzia API 8. Treba si uvedomiť, že doba životnosti mobilného telefónu je dva až tri roky, takže prístrojov so staršími verziami rapídne ubúda. Vsúčasnosti verziu 2.2 už pre nové aplikácie nemá veľmi zmysel podporovať. Nové aplikácie preto okrem niektorých výnimiek smerujte na verziu 4.0 (Ice Cream Sandwich) a vyššie. Môžete tak bez obmedzenia používať nové prvky používateľského rozhrania. Vpoli Theme si môžete vybrať farebnú schéma aplikácie. Implicitne je nastavená Holo Light with Dark Action Bar, teda svetlé pozadie pre aplikáciu atmavé pozadie pre aplikačnú lištu.
Vytváranie projektu pokračuje dialógom, v ktorom môžete zmeniť ikony pre aplikáciu. Pokiaľ vytvárate cvičnú aplikáciu na výučbu či na overenie niektorého technologického princípu, môžete ponechať implicitne nastavenú ikonu androidovej figúrky. Pri reálnej aplikácii, samozrejme, musíte navrhnúť vhodné aatraktívne ikony. Od atraktívnosti ikony totiž často závisí, či si používateľ vašu aplikáciu zGoogle Play stiahne, prípadne kúpi. Po nainštalovaní aplikácie môže atraktívna ikona asociovať dobrú aplikáciu amotivovať používateľa, aby si ju spustil.
Ikony pre novovytvorený projekt
Výber typu hlavnej aktivity
Na rozdiel od aplikácií pre desktopové operačné systémy (Windows, Linux...) v kóde aplikácie pre Android nie je žiadny exaktný vstupný bod, ktorým pri klasických aplikáciách býva statická metóda main(). Aplikácie pre Android sa skladajú z viacerých navzájom nezávislých komponentov – aktivít a služieb. Operačný systém sám určuje, kedy budú vytvorené inštancie aktivít, kedy budú odsunuté do pozadia či zničené.
Aktivita je vizuálna reprezentácia – prezentačná vrstva androidovej aplikácie. Aplikácia môže mať niekoľko aktivít.
Na vytvorenie hlavnej aktivity aplikácie sú kdispozícii štyri typy aktivít:
· Empty Activity – prázdny formulár bez navigačných prvkov
· Blank Activity – ako voliteľný prvok navigácie sa používa navigačná lišta ActionBar sovládacími prvkami
· Fullscreen Activity – využíva celú veľkosť obrazovky
· Master-Detail Follow – hodí sa pre zoznamy objektov typu master – detail. Zobrazovacia plocha je rozdelená na dva stĺpce. Vľavom stĺpci je zoznam objektov avpravom stĺpci sú zobrazené detaily viažuce sa na vybraný objekt.
Typ používateľského prostredia ešte názornejšie než názov vysvetľuje obrázok v dialógovom okne
Pre túto jednoduchú aplikáciu označte voľbu Empty Activity. Ponechajte implicitne nastavené názvy. Po spustení aplikácie bude zobrazená aktivita snázvom MainActivity. Po vytvorení projektu si všimnite, že vznikli dva súbory
· MainActivity.java – kód triedy aktivity vprogramovacom jazyku Java
· activity_main.xml – definícia používateľského rozhrania vo formáte XML
Kliknutím na zelenú šípku môžete aplikáciu po vytvorení spustiť v emulátore mobilného zariadenia. Zatiaľ len vypíše oznam „Hello World“. Vdialógu Run As vyberte možnosť Android Application.
Spustenie aplikácie
Ak ste vytvorili viac emulátorov, napríklad vnašom prípade emulátor zariadenia typu smartfón aemulátor zariadenia typu tablet, pomocou položky Run Configuration zobrazíte dialóg na výber emulátora, na ktorom chcete aplikáciu spustiť.
Konfigurácia spustenia aplikácie
Po nábehu emulátora a jeho odomknutí sa vaša aplikácia automaticky spustí.
Po vytvorení prvého projektu odporúčame hlavne začiatočníkom avývojárom migrujúcim ziných platforiem, aby sa oboznámili sumiestnením avýznamom kľúčových súborov, ktoré tvoria projekt.
Súčasti projektu, sktorými prídete najviac do kontaktu, sú vzložkách
· src – v zložke sa nachádzajú súbory skódom tried vprogramovacom jazyku Java
· res – v zložke sa nachádzajú súbory XML sdefiníciou používateľského rozhrania
· assets – zložka obsahuje súbory pribalené kaplikácii, napríklad textové či databázové súbory
· android-support-v4 – zložka obsahuje knižnice umožňujúce využívať funkcionalitu, ktoré priniesli nové verzie Androidu (typicky od verzie Android 4), aj vstarších verziách
Definičný súbor používateľského rozhrania
Po vytvorení projektu sa vhlavnom okne používateľského rozhrania vývojového prostredia Eclipse zobrazí definícia návrhu používateľského rozhrania vsúbore activity_main.xml. Súbor je v zložke /res/layout/.
Dokument XML má jeden koreňový element RelativeLayout, do ktorého sa postupne vnárajú prvky voriginálnej terminológii views, tvoriace používateľské rozhranie aplikácie.
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="${packageName}.${activityClass}" >
android:layout_height="wrap_content"
android:text="@string/hello_world" />
Význam tohto kódu najlepšie pochopíte, ak prepnete vývojové prostredie na záložku Graphical Layout do režimu zobrazenia grafického návrhu.
Vývojové prostredie po vytvorení projektu
Pri návrhu používateľského rozhrania môžete pristupovať buď deklaratívne pomocou vizuálneho návrhu, alebo imperatívne – písaním kódu XML definície používateľského rozhrania. Záleží len na vás, pre ktorý spôsob sa vktorej konkrétnej situácii rozhodnete.
Aplikačný kód
Vhornej časti hlavného okna – vľavo od záložky súboru fragment_main.xml – je záložka súboru MainActivity.java. Keby ste ho zatvorili achceli znovu otvoriť, nájdete ho cez odkaz vľavom okne Package Explorer v zložke PrvaAplikacia> src > com.example.prvaaplikacia. Vsúbore nájdete kód hlavnej aktivity.
package com.example.prvaaplikacia;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends
Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Metóda OnCreate () je volaná operačným systémom pri vstupe do akcie, takže v tejto metóde sa spravidla vykonáva inicializácia používateľského rozhrania.
Metóda setContentView preberá identifikátor layoutu alebo objekt typu View. Vnašom novo vytvorenom projekte sa preberá identifikátor hlavnej aktivity R.layout.activity_main.
Definovanie objektov vzdrojoch (resources)
Vaplikáciách sa využíva množstvo definícií objektov. Typický príklad sú textové reťazce, definície farieb, tvarov apodobne. Na ukladanie definícií slúži adresár zdrojov /res.
Odporúčanie: Dôrazne odporúčame vytvárať definície objektov vzdrojoch. Neskôr zmenou hodnoty vdefiničnom súbore sa automaticky zmení daný objekt vo všetkých layoutoch, ktoré ho využívajú.
Vprvom pokusnom zásahu do aplikácie Hello World môžete zmeniť text oznamu velemente TextView. Tu je len odkaz na definíciu textového reťazca. Definície reťazcov sú uložené v súbore res/values/string.xml.
Vzložke res sú vsamostatných zložkách definície rôznych objektov vzávislosti od charakteru aplikácie. Najčastejšie vtejto zložke nájdete vnorené podzložky:
· Layout – definícia rozmiestnenia prvkov používateľského rozhrania
· Menu – definícia štruktúry menu
· Strings – definície textových reťazcov
· Colors – definície farieb použitých vaplikácii
· Dimens – rozmery vjednotkách dip (density independent pixel)
· Drawable – definícia obrázkov (.png, .jpg, .gif) a tvarov na vykresľovanie
Ľuboslav Lacko, pokračujeme omesiac