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:

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:

Die beiden obigen Kurse überschneiden sich etwas inhaltlich, aber sie sind beide empfehlenswert, da sie sich auch gut ergänzen.

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“.

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.

💡

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:

‼️

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.