Android
Schnelle, zuverlässige und robuste native Android-Anwendungen mit Android Studio
Android ist einerseits ein quelloffenes Betriebssystem und andererseits auch eine Software-Plattform für mobile Geräte wie Smartphones, Tablet-PCs, Notebooks und Wearables. Mittlerweile hat Android maßgeblich an Einfluss gewonnen und gilt derzeit als größter Konkurrent der Apple-Plattform iOS. Wer das volle Potenzial der Hardware nutzen möchte, kommt häufig oft nicht drum herum, auf die native Entwicklungsplattform zu setzen. Nativ heißt maximale Möglichkeiten.
Grundlagen
- Vorstellung der Android-Plattform
- Projektaufbau: Activities, Manifest, Ressourcen, Quellcode
- Kompatibilität: Unterstützung verschiedener Android-Versionen, Displaygrößen, Auflösungen
- Lebenszyklus
Die Entwicklungsumgebung Android Studio
- Überblick über Werkzeuge des Android SDKs
- Erstellung von Anwendungen mit Android Studio
- Struktur eines Android-Projektes wie AndroidManifest.xml, R.java
- Debugging und Testen von Anwendungen
- Test Recording und Testberichte
- GPU-Debugger für die Entwicklung von Spielen (OpenGL ES)
- Google Cloud Test Lab für den Test auf vielen unterschiedlichen Android-Geräten
Oberfläche / GUI Programmierung
- GUI mit XML
- Anordnung von Elementen in Layout-Containern und Beeinflussung des Layouts
- Strukturieren der UI über Activities, Fragmente, Dialoge und Steuerelemente
- Drawables: XML Drawables, 9-Patch Drawables, SVG-Ressourcen
- Anpassung auf verschiedene Auflösungen und Ausrichtungen
- Animationen
- Zeichnen mit Canvas
- Listendarstellung per eigener
ListView
,RecyclerView
,Cards
Daten
- Einstellungen mit Preferences verwalten
- Speichern von Daten
- im Dateisystem
- in einer lokalen SQLite-Datenbank
- Netzwerkzugriff
Anpassung und Styling
- Entwicklung von eigenen Steuerelementen
- Definition und Verwendung von Styles
- Überschreiben von Systemstyles
Interaktion mit dem Betriebssystem
- Intents
- Zugriff auf Systemdienste
- Broadcast-Receiver und Notifications
- Hintergrundprozesse und -dienste
- Berechtigungen
Kommunikation und Sensorik
- Kommunikation per Netzwerk über HTTP sowie REST, XML, JSON
- Kommunikation per Bluetooth
- Interaktion mit Telefon und SMS
- Einbindung von Push Notifications
- Geolocation per GPS, Geofencing
- Zugriff auf weitere Sensoren: Fingerprint, Helligkeit, Kompass, Pedometer (Schrittzähler), Proximity (Abstand), Pulsmesser, UV-Intensität und Sauerstoffgehalt
Unterstützung durch Frameworks
- Dependency-Injection / Inversion of Control (IoC) u. a mit Android Annotations, Dagger
- OR-Mapper wie greenDAO
- Zugriff auf REST-Services per OkHttp, Spring, Volley
Qualitätssicherung, Wartbarkeit und Deployment
- Build-Management-Automatisierungs-Tool (Gradle-basiert) für optimierte Versionen der Apps für verschiedene Gerätetypen wie Tablets
- Abhängigkeiten und Maven
- Unit Tests
- Activity-Testing
- Signieren und Veröffentlichen
- Organisieren von Betatests
Veröffentlichung von Anwendungen
- Registrierung bei Google Play
- Verwaltung von App-Varianten
- Veröffentlichung bei Google Play
- InApp-Käufe
- App Indexing für die bessere Auffindbarkeit einer App
Sonstiges
- Android Apps mit Visual Studio
- Programmierung für Android Wearables und Android TV
- Besonderheiten bei der Entwicklung von Apps für Smartwatches
- Cross-Plattform Entwicklung – Alternativen zur nativen Entwicklung mit Phonegap, Appcelerator Titanium und Sencha
- Ausblick auf Web-Apps auf Basis von HTML5
- Kurze Übersicht über die Entwicklung von Spielen mit dem Android NDK