Nakóďme si Android appku
Adam Dej
Android
Android 6.0
Inštalácia toolov
Android
Studio
Oficiálne vývojové prostredie
Android Software Development Kit
- Kompilačné nástroje
- Platformové nástroje
- adb (android debug bridge)
- Android platforma
- Voči nej sa kompilujú appky
- Emulátor a image pre neho
- ...
Android Studio
- Príjemné
- Java je ukecaná. IDE automatizovane vygeneruje.
- Žerie VEĽA RAM
- Inštaluje všetky súčasti SDK automaticky
- Netreba spúštať SDK Manager
Support Library
- Nové verzie Androidu majú nové cool featurie
- Veľa mobilov ale nedostane update
- Ale stále chceme využívať nové featurie
- ... a vizuálne designové prvky
- Support Library zavádza podporu pre nové featurie na starých zariadeniach
Čo vlastne je Android appka?
- Android je Linuxový multiuser systém
- Každá appka dostane vlastného usera
- Bezpečnosť
- Pre každú appku beží vlastná VM
- Izolácia od ostatných
-
Principle of least privivlege
- Appka môže iba to najnutnejšie čo potrebuje
Android appka
Komponenty aplikácie
- Aktivity
- Servisy
- Content Provides
- Broadcast Receivers
Spúšťanie komponentov
- Jednotlivé komponenty môžu spúštať iné
- Aj z iných aplikácií
-
Intent
- Spúšťa Aktivity, Servisy a BroatcastReceivery
- Launcher je iba nejaká aplikácia
Aké komponenty aplikácia má?
-
AndroidManifest.xml
- Deklaruje jednotlivé komponenty
- Hovorí na akej verzií Androidu appka pobeží
- Pýta si povolenia
Vytvorme si nový projekt
... po dlhom loadingu ...
Základné parametre projeku
- Meno
- Doména developera
- `example.com`, používa sa iba na vytvorenie mena balíčku
- Package
- Meno Java package-u. Zároveň unikátny identifikátor aplikácie.
- Konvencia je doména odzadu a meno appky
`sk.ksp.sustredkoExample`
- Konvencia je doména odzadu a meno appky
- Meno Java package-u. Zároveň unikátny identifikátor aplikácie.
- Minimal SDK - Minimálna podporovaná verzia Androidu
Základná štruktúra projektu
-
app/src/main/java
- Java zdrojové súbory k aplikácií
-
app/src/main/res
- "Resources" k aplikáci"
-
app/src/main/AndroidManifest.xml
- Hovorí Androidu metadáta o aplikácií
- Ktoré "aktivity" majú mať ikonky v Launcheri, aké povolenia appka potrebuje...
- Hovorí Androidu metadáta o aplikácií
-
app/build.gradle
- Hovorí build systému ako skompilovať aplikáciu
- Aké má dependencie, aké verzie nástrojov použiť...
- Hovorí build systému ako skompilovať aplikáciu
Resources aplikácie
-
layout/
- Rozpoloženia UI
-
drawable/
- Vykresliteľné veci (obrázky, ...)
-
values/
- strings.xml
-
menu/
- menus
- ...
Resources aplikácie
Pridaním kvalifikátorov vieme povedať aby daný resource sa použil iba na konkrétnych zariadeniach
Podpora viacerých zariadení
Rozšírme Hello World
Ako fungujú layouty?
Reakcia na button tap
final Button button = (Button) findViewById(R.id.button_id);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
}
});
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/self_destruct"
android:onClick="myDoSomethingMethod" />
public void myDoSomethingMethod(View view) {
// Perform action on click
}
Reakcia na button tap
Spustenie novej aktivity
Poďme vytvoriť niečo komplexnejšie
Slovník
Komponenty
- WordListActivity
- WordActivity
WordActivity
Jednoduchá aktivita ktorá zobrazí detaily k nejakému slovu
WordListActivity
Načítajme slovíčka zo súboru
Vytvorme si layout
Zobrazme slovíčka
AdapterView
Poskytuje "most" medzi listom a dátami ktoré sa v ňom majú zobraziť
WordListActivity
Načítajme slovíčka zo súboru
Vytvorme si layout
Zobrazme slovíčka
Vyhľadávanie
Reagujme na klik
Zabaliť a šup na Play Store
Ďakujem za pozornosť
Coding for Android (SK)
By Adam Dej
Coding for Android (SK)
- 355