Agil användbarhetsutveckling för handhållna enheter Per Lind perli379@student.liu.se per.lind@inspireit.se
Laboration Pass 1: Tors. 4:e feb 13-17 Pass 2: Tors. 18:e feb 13-17 Uppgift: Skapa en app för att lista data som ska lagras i en lokal databas. Appen ska ha en adaptiv layout anpassad för tablets och mobiler. Android Studio (version 1.0-1.5) Git
Laboration Krav för godkänt: Kunna visa lista och detaljvy i både mobil och tablet (Master/Detail pattern) Lägga till, redigera och ta bort poster Sortering av listan Eget Material Design-tema (räcker att välja egna färger) Spara (sorterings-)inställningar persistent Ha minst en dialog Ha minst en action button
Laboration Extra Uppgifter Ersätt ListView med RecyclerView Animering av views Transitions Share action i detaljvyn Filtrering av poster (ev. ha sökfunktion) Egen view layout för ListView (ev. med CardView) Mera material design widgets (t.ex. Toolbar och Snackbar)
Laboration Code Templates Master Detail Flow Pattern dual-pane mode på stora skärmar (1 activity) single-pane på små skärmar (2 activities) http://developer.android.com/training/implementing-navigation/descendant.html
Android Studio Gradle - nytt byggsystem (build.gradle filer) Det finns ett grafisktgränssnitt för att konfigurera byggalternativ File Project Structure (module) app En R.java fil skapas så man kan referera resurser i sin javakod. Skapar en apk-fil, android paket som kan installeras på enhet. http://developer.android.com/sdk/installing/studio-build.html
Android Studio Projektstruktur Separation av kod och resurser. Resurser sparas som xml-filer i undermappar till res/ foldern.
Resurser Qualifiers: bestämmer vilka resurser som ska användas. Använder postfix med qualifiers separerade med bindestreck. drawables/ drawables-mdpi/,...-hdpi/,...-xhdpi/,...-xxhdpi/ layout/ layout-land/ layout-sw600dp-land-sv/ values/ values-se/ sw<n>dp (smallest width i dp) sv, en, fr, etc. (språk) mm. land (landscape-mode)
Storleksmått dp (density-independent pixels) sp (scale-independent pixels) 160dpi (mdpi) 1 dp = 1 px 320dpi (xhdpi) 1 dp = 2 px 480dpi (xxhdpi) 1 dp = 3 px 48dp = 9mm (standardstorlek för klickbara UI element är mellan 7-10mm) Sp används för font, det tar hänsyn till Androidenhetens teckenstorlek som finns under Tillgänglighet Syn (t.ex. att man vill använda större text).
Skapa en layout Användargränssnitt byggs upp av Views och ViewGroups Måste ha width och height, godtagbara värden: match_parent (samma storlek som parent) wrap_content (minsta möjliga storlek) specifik längd i dp
Android Manifestet Manifestet kommunicerar med systemet och håller reda på appens komponenter. Kan ge appen permissions till skyddade API:er.
Android API:et - Activity Activity Representerar en skärmvy i appens användargränssnitt Implementerar callback-metoder för event kopplade till dess livscykel oncreate: initiera koden, sätter layouten onsaveinstancestate: UI kan förlora state efter onpause och vid rotering av skärmen
Android API:et - Activity Activity Back Stack: Navigering bakåt Navigering uppåt http://developer.android.com/design/patterns/navigation.html
Android API:et - Fragment Fragment Representerar en del av användargränssnitt i en Activity Måste placeras inuti en Activity Hanteras i med hjälp av FragmentManager API:et
Android API:et - ListView ListView AdapterView som visar poster som kommer från en associerad ListAdapter. Data ListAdapter AdapterView (Cursor CursorAdapter ListView) ListActivity och ListFragment Bekvämlighetsklasser för att visa en lista. Layouten måste innehålla en ListView med id @android:id/list
Hantering av data Lagring av data SharedPreferences (privata key-value par) Internal Storage (spara privat data på enhetens internminne) External Storage (spara publik data på extern lagringsenhet) SQLite (lokal privat databas)
Versionshantering Git (versionshanterings system) Att skapa ett git repo i Android Studio VCS Import Into Version Control create git repository... Får då den nya fliken Version Control där man kan göra vanliga git-kommandon: init, add, commit, log, revert, diff, push, pull, branch, merge
Inför laborationen Inför laborationen läs kapitlet Getting started http://developer.android.com/training/index.html (alltså fram till Building Apps with Content Sharing)