Android-Apps programmieren
Seit 2011 unterrichte ich Android-Programmierung an der Münchener Volkshochschule (MVHS) und privat. Die Idee dazu kam bereits 2009, als ich bei MVHS den ersten Kurs zu OS X gab. Die Umsetzung musste zwei Jahre auf sich warten, um sowohl das notwendige Wissen, als auch die Unterlagen zum Kurs auszuarbeiten (damals noch für Eclipse und Android 1.6/2.0).
Zu den Stoßzeiten des Android-Booms liefen zwei Kurse parallel mit jeweils max. möglichen 10 Teilnehmern. Diese Zeiten sind zwar vorbei, die Android-Entwicklung erfreut sich aber weiterhin großer Beliebtheit.
Nun ist die dritte, überarbeitete, Auflage erschienen. Viele Themen wurden aktualisiert und erweitert. Die neu Auflage bezieht sich auf Android Studio 4.x.
Sie können das Buch sowohl direkt bei mitp-Verlag, aber auch bei Amazon bestellen (analog auf Papier, oder digital als E-Book). Als Vorgeschmack können Sie die Leseprobe unten herunterladen und lesen.
Themen im Buch
- Entwicklungsumgebung Android Studio
- Layouterstellung mit XML
- ROOM und SQLite Datenbank unter Android
- Hintergrundoperationen
- Benachrichtigungen
- Berechtigungen
- Navigation und ActionBar
- Storage Access Framework (SAF)
- Dialoge
- Internetzugriff und REST-Dienste
- Unit Testing und UI Testing
- Emulatoren
Leseprobe
Leseprobe "Android-Apps programmieren"Korrekturen / Ergänzungen
In Android Studio Version 2022.3 (Giraffe) wurden einige der Vorlagen entfernt und einige aktualisiert.
Die in dem Buch verwendete Vorlage "Empty Activity" ist nun nur in der Kotlin Version verfügbar. Um mit dem Buch fortzufahren und Java zu nutzen, wählen Sie die Vorlage "Empty View Activity" und die Sprache Java. Im Video unten sind die Schritte gezeigt.
Das Julian Day ist in der Tabelle fälschlicherweise als Tage seit dem 24.09.4714 v.Chr.
abgedruckt. Korrekt ist der 24.11.4714 v.Chr.
(wie auf Seite 138 korrekt definiert).
Nachzulesen unter:
Konfiguration annotationProcessor
hinzufügen
In dem Dialog zum Hinzufügen von Abhängigkeiten (Dependencies) erscheint in der Auswahlbox für Configuration
nur eine kleine Auswahl an Möglichkeiten. Der geforderte Wert annotationProcessor
ist zum Beispiele nicht in der Liste.
Trotzdem ist die Eingabe möglich. Entweder man gibt den kompletten Wert manuell ein (in der Auswahlbox können die Werte manuell eingegeben werden), oder man lässt die Autovervollständigung für sich arbeiten (siehe Screenshot).
Room 2.3 Java 8 Abhängigkeit
Die Version 2.3.0 von Room bringt eine neue Abhängigkeit herein, die explizit Features von Java 1.8 erfordern. Zu diesem Zeitpunkt ist unser Projekt dafür noch nicht konfiguriert. Das machen wir erst auf der Seite 161. Führen Sie diese Änderungen durch, um mit der Version 2.3 arbeiten zu können (siehe auch Screenshot).
Die Methode Calendar getTime(DataType dataType);
kann aus dem Interface und Implementierung entfernt werden, da diese nirgendwo genutzt wird.
In der Methode updateDate
muss der Aufruf updateUi()
außerhalb der if
Anweisung passieren. Es sollte also statt:
@Override
public void updateDate(DateType dateType, int year, int month, int day) {
if (dateType == DateType.START) {
_workTime.startTime.set(year, month, day);
} else {
if (_workTime.endTime == null) {
_workTime.endTime = Calendar.getInstance();
}
_workTime.endTime.set(year, month, day);
updateUi();
}
}
dann folgendes stehen:
@Override
public void updateDate(DateType dateType, int year, int month, int day) {
if (dateType == DateType.START) {
_workTime.startTime.set(year, month, day);
} else {
if (_workTime.endTime == null) {
_workTime.endTime = Calendar.getInstance();
}
_workTime.endTime.set(year, month, day);
}
updateUi();
}
Es fehlt der Hinweis zu dem Ordner mit dem Quellcode: