Einleitung und Vorbereitungen
  • Windows: Android Studio installieren
  • Mac: Android Studio installieren
  • Android Studio bei der ersten Verwendung einrichten
  • Ein neues Projekt für eine Android-App erstellen
  • Ein virtuelles Gerät für den Android-Emulator erzeugen
  • Die App auf dem Emulator ausführen
  • Die App auf dem Smartphone testen
Aufbau von Projekten für Android-Apps verstehen
  • Der Umgang mit Android Studio für die tägliche Arbeit
  • Die Vorgehensweise und Verwendung dieses Kurses
  • Von Java auf Kotlin durch schrittweise Anwendung umsteigen
  • Die relevanten Dateien und Verzeichnisse eines Android-Projekts
  • Abhängigkeiten und Konfigurationen der App mit gradle verwalten
  • Das Android Manifest beschreibt die App
  • Eine Android-App besteht aus Programmcode und statischen Ressourcen
  • Das Zusammenspiel von Activity und Layout
Flexible UIs mit Constraint Layout erstellen
  • Das Projekt für unsere Beispiel-App erstellen
  • Versionen der Abhängigkeiten in gradle zentral verwalten
  • Ein Zitat im Layout-Editor eintragen und formatieren
  • Layouts sind XML-Dateien
  • Breite und Höhe im ConstraintLayout festlegen
  • Horizontale und vertikale Ausrichtung mit Constraints bestimmen
  • Views in Abhängigkeit zueinander ausrichten
  • Jahr des Zitats unterhalb des Autors darstellen
  • Ein weiteres TextView-Element rechtsbündig hinzufügen
  • Button zum Blättern hinzufügen
  • Beschriftung des Buttons als String-Ressource extrahieren
  • Buttons als horizontale Chain verbinden
  • Zusätzlichen Button in die Chain aufnehmen
  • Abschließende Bemerkungen zum ConstraintLayout
  • ConstraintLayout — nützliche Links
Activity und Layout für dynamische Benutzeroberflächen
  • IDs der Views mit sprechenden Namen bezeichnen
  • Zitat im UI aus der Activity setzen
  • Platzhaltertexte für TextViews im LayoutEditor bestimmen
  • Eine Kotlin-Datenklasse für Zitate erstellen
  • Button für nächstes Zitat implementieren
  • Button für voriges Zitat implementieren
  • Code aufräumen und mit Button zum vorigen Zitat blättern können
  • TextView-Referenzen nur einmalig herstellen und lokalen Eigenschaften zuweisen
  • Buttons bei erstem und letztem Zitat ausblenden
  • Fallunterscheidung mit when für Randfälle erweitern
Data Binding, ViewModel und LiveData
  • Data Binding im Projekt verwenden und Layout-Datei konvertieren
  • Data Binding in der Activity nutzen und findViewById ersetzen
  • Quote-Objekt als gebundene Variable im Layout deklarieren
  • ViewModel und LiveData dem Projekt hinzufügen
  • Mit ViewModel den Zustand der App im Lebenszyklus erhalten
  • Durch ViewModel die UI-Logik aus der Activity herauslösen
  • Durch binding expressions die Sichtbarkeit der Buttons festlegen
  • Logik vom Layout ins ViewModel verlagern
  • Berechnung von isFirst und isLast im ViewModel implementieren
  • Werte für isFirst und isLast im ViewModel passend setzen
  • LiveData mit Transformations anstatt ObservableField verwenden
  • Mit BindingAdpater eigene Layout-Attribute mit Verhalten deklarieren
Mit ViewPager2 und RecyclerView durch die Zitate blättern
  • ViewPager2 dem Projekt hinzufügen
  • ViewPager2 im Layout einbinden
  • Funktionsweise der RecyclerView verstehen
  • Adapter und ViewHolder der RecyclerView für ViewPager2 vorbereiten
  • Verhalten des Adapters und ViewHolders implementieren
  • Dialog für neues Zitat einbauen
  • Automatisch mit LiveData zum neuen Zitat blättern
  • Mit BindingAdapter einen Hinweis bei leerer Zitatenliste anzeigen
Datenspeicherung mit Room
  • Vorbemerkungen zu Room
  • Abhängigkeiten für Room und Coroutines ergänzen
  • Quote-Klasse als Entity deklarieren
  • Dao-Interface für Datenbankzugriff definieren
  • Datenbank-Klasse für Room implementieren
  • Room-Datenbank im ViewModel verwenden
  • Ausblick