Einstieg
Dauer: 20 Minuten
- Verschiedenes Lernmaterial vorstellen
Ziel: Übersicht der Lernressourcen zu Android geben
Learning by doing
Einerseits ist die Android-Programmierung sehr umfangreich und befindet sich in ständiger Weiterentwicklung. Andererseits haben wir in der Vorlesung relativ wenig Zeit, um Android kennenzulernen. Daher werden grundlegende Themen schrittweise und kompakt vorgeführt, indem wir zusammen eine kleine Android-App programmieren werden.
Zur Vertiefung der besprochenen Themen wird auf passende in der Android-Dokumentation verwiesen.
Im Web sind einige veraltete Informationen zur Android- Programmierung zu finden. Daher sollte bei eigenen Recherchen z.B. auf das Erstellungsdatum der gefundenen Artikel geachtet werden (⟶ z.B. nicht älter als 2 Jahre).
Jedes Jahr vor Beginn der Vorlesung sollten die folgenden Links überprüft und ggf. angepasst bzw. erweitert werden.
Google empfiehlt für neue Projekte den Einsatz von Kotlin mit Compose.
Im September 2024 wurden nur folgende offizielle Ressourcen zum Lernen des inzwischen nicht mehr empfohlenen Entwicklungsansatzes mit XML-Layout gefunden:
- https://developer.android.com/develop/ui/views/layout/declaring-layout (z.T. noch mit Java-Beispielen)
- Sammlung von Präsentationsfolien auf https://developer.android.com/teach
Für die Android-Entwicklung mit Java wurde keine offizielle Ressource gefunden.
Vielleicht ist es mit ChatGPT oder anderen KI-Tools möglich, die Java-basierte Entwicklung von Android-Apps mit XML-Layouts zu lernen.
Empfohlen wird jedoch, sich auf Kotlin mit Compose zu konzentrieren.
Lernressourcen von Google
Zunächst werden nützliche Bestandteile der „offiziellen“ Android-Dokumentation von Google vorgestellt.
Vorbemerkung
Google stellt sehr viel Lernmaterial zur Android-Entwicklung bereit. Dies hat in der Regel eine hohe Qualität, ist aber sehr unübersichtlich und inkonsistent, weil sich die Android-Entwicklung in den letzten Jahr stark verändert hat (Kotlin vs. Java, mit oder ohne Compose, usw.) und auch in Zukunft wandeln wird (u.a. mit mehr KI-Tools)…
Der Dozent kann leider nur einen Überblick geben und teilweise Ansätze zeigen — mehr ist in den jährlichen Vorbereitungen zur Vorlesung nicht zu bewerkstelligen.
Veranschaulichung der Problematik im September 2024:
Ein neues Android-Projekt mit dem Template „Empty Activity“ erstellt
ein Projekt mit einer MainActivity
, die folgenden Code in onCreate
enthält:
enableEdgeToEdge()
setContent {
MyApplicationTheme {
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
Greeting(
name = "Android",
modifier = Modifier.padding(innerPadding)
)
}
}
}
Im ersten Tutorial (bzw. Codelab) der offiziellen Dokumentation Create your first Android app (Schritt 4 Update the text) sieht der entsprechende jedoch Code so aus:
super.onCreate(savedInstanceState)
setContent {
GreetingCardTheme {
// A surface container using the 'background' color from the theme
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
Greeting("Android")
}
}
}
Nach ein paar Recherchen stellt sich heraus, dass enableEdgeToEdge
und Scaffold
für die kommende Android-Version 15 benötigt werden
(siehe Android-Guides):
Important: Edge-to-edge is enforced on Android 15 and higher once your app targets SDK 35. […] The Material 3 Scaffold component can reduce the work required to be compatible with the Android 15 edge-to-edge enforcement. See Create a scaffold component to hold the UI together.
Diese Änderung ist also schon im Template „Empty Activity“ enthalten, aber nicht im ersten Codelab, das für den Einstieg in die Android-Entwicklung empfohlen wird.
In der offiziellen Entwickler-Dokumentation zu Android unter developer.android.com sind im Prinzip alle nützliche Informationen zur nativen Entwicklung von Android-Apps zu finden — allerdings ist diese Webseite auch ziemlich unübersichtlich. Es folgen ein paar Hinweise, die die Verwendung der Dokumentation erleichtern sollen.
Kurse und Tutorials (Codelabs)
Google stellt ganze Online-Kurse und Lernpfade für die Android-Programmierung bereit:
- Einsteigerkurs zu Android: https://developer.android.com/courses/android-basics-compose/course
- Einsteigerkurs zu Compose: https://developer.android.com/courses/jetpack-compose/course
Die beiden obigen Kurse überschneiden sich etwas inhaltlich, aber sie sind beide empfehlenswert, da sie sich auch gut ergänzen.
- Weitere Kurse: https://developer.android.com/courses
Codelabs sind kurze Tutorials zu bestimmten Themen: https://developer.android.com/get-started/codelabs
Kurse benötigen natürlich mehr Zeit als die kompakten Codelabs. Beide bieten sowohl einführendes als auch weiterführendes Lernmaterial.
Core Areas und Developer Centers
Zu bestimmten Themenbereichen oder Schwerpunkten gibt es „Core Areas“ und „Developer Centers“.
- Core Areas: https://developer.android.com/develop#core-areas
- Beispiel eines Developer Centers: https://developer.android.com/media
Weitere Developer Centers und Themensammlungen finden sich im Navigationsmenü der Developer Docs.
Quick Guides
Im September 2024 sind die „Quick Guides“ in der Android-Dokumentation noch im Beta-Stadium. Sie sollen in Form von Videos oder „HowTos“ eine schnelle Einführung in bestimmte Themen geben (z.B. das Erstellen einer Liste):
https://developer.android.com/quick-guides
Beispiel-Apps (Samples)
Google stellt einige Beispiel-Apps inklusive Quellcode
bereit. Die zugehörigen Android-Studio-Projekten können
von GitHub heruntergeladen bzw. geklont werden. Außerdem
können Samples direkt in Android Studio mit
File -> New -> Import Sample…
eingebunden werden.
- Best practices in der modernen Android-Entwicklung werden als „real-world sample“ offiziell von Google in der „Now-in-Android“-App umgesetzt. Der Code dazu ist hier zu finden: https://github.com/android/nowinandroid
- Mehrere Beispiel-Apps zu Compose auf GitHub
- Liste mit mehreren Apps in der Android-Dokumentation: https://developer.android.com/samples (mit Such- und Filterfunktion)
- Platform Samples auf GitHub — Sammlung von Beispiel-Apps zu verschiedenen APIs (Camera, Location, UI, usw.)
- Weitere Android-Projekte auf GitHub: https://github.com/android und https://github.com/googlesamples (evtl. nach Kotlin filtern)
Komplette Android-Studio-Projekte Beispiel-Apps zeigen konkret im Code, wie bestimmte Aspekte umgesetzt werden, sodass diese im eigenen Projekt übernommen werden können.
Auch bei den Samples ist natürlich auf Aktualität zu achten.
Referenzen der APIs
Die technische API-Dokumentation liegt unter developer.android.com/reference. Hier können Details zur konkreten Verwendung bestimmter Klassen und Methoden im Code gefunden werden.
Die Referenzen sind hauptsächlich dann nützlich, wenn bei der Programmierung mit bestimmten APIs deren korrekte Verwendung sichergestellt werden soll.
Guides
Im Bereich „Guides“ der Android-Dokumentation unter developer.android.com/guide finden sich verschiedene Themen.
September 2024: Nur Teile der Guides werden noch direkt in den Developer-Docs verlinkt. Es wirkt so, als würden die Guides schrittweise durch die Core Areas ersetzt.
Weiteres Lernmaterial
Im Web gibt es jede Menge Material unterschiedlichster Art. Ein paar weitere Empfehlungen:
- Eine Art Android-Glossar zum Nachschlagen einzelne Begriffe oder Konzepte: https://developers.google.com/android/for-all/vocab-words/
- Offizieller YouTube-Channel: https://www.youtube.com/user/androiddevelopers
- Android Dev Blog: https://android-developers.googleblog.com
- Es gibt viele Online-Kurse, z.B. bei Udacity
- Studierende der DHBW Lörrach haben Zugang zu LinkedIn Learning über Moodle (dort unter „Top-Angebote“ in der oberen Navigationsleiste zu finden) ⟶ auf Aktualität der Kurse achten…
Nochmals sei erwähnt, dass hierbei auf Aktualität zu achten ist.
Java? Kotlin!
Es ist scheinbar noch möglich, Android-Apps mit Java und XML-Layouts zu entwickeln, denn in Android Studio kann im Dialog für neue Projekte immer noch Java für manche Templates als Programmiersprache gewählt werden (z.B. mit dem Template „Empty Views Activity“).
Für die Prüfungsleistung ist Java zwar erlaubt, aber weil dies nicht mehr offiziell empfohlen wird und es keine gute Dokumentation mehr gibt, wird davon abgeraten.