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`
  • 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...
  • app/build.gradle
    • Hovorí build systému ako skompilovať aplikáciu
      • Aké má dependencie, aké verzie nástrojov použiť...

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