Android-Programmierung (AP)

Belegbar Sommersemester, Wintersemester
ECTS-Punkte 10 (ca. 300 Stunden)
Fachgebiet Theoretische Informatik

Ziel des Moduls

Mit der rasanten Verbreitung mobiler Geräte wächst der Markt für mobile Anwendungen und die Nachfrage nach entsprechenden Anwendungsprogrammen. Dieses Modul versetzt Sie in die Lage, selbstständig Applikationen für Mobilgeräte zu spezifizieren und zu programmieren.

Sie lernen zunächst die allgemeinen Grundlagen zur Realisierung mobiler Anwendungen auf verschiedenen Plattformen kennen. Hierauf aufbauend wird am Beispiel der Plattform Android eine typische Entwicklungsumgebung vorgestellt. Anhand vieler praktischer Beispiele lernen Sie die nötigen Programmiertechniken und besten Vorgehensweisen zur Programmierung effizienter Applikationen kennen. Darüber hinaus trägt das Modul dem raschen Wandel des Bereichs mobile Anwendungen Rechnung, indem es Sie in die Lage versetzt, die Bedeutung von Neueinführungen einzuschätzen und sich anhand der Dokumentationen der Hersteller selbstständig in neue Gebiete einzuarbeiten.

Inhalt des Moduls
  • Einführung in Mobilgeräte
  • Software für Mobilgeräte - Ein Überblick

Android:

  • Basistechniken
  • Grafische Benutzeroberflächen
  • Pesistente Datenspeicherung
  • Komponenten und Nebenläufigkeit
  • Kommunikation und Kooperation
  • Sensoren und ortsabhängige Dienste
  • Sicherheit und Datenschutz
  • Vertrieb und Kommerzialisierung
Inhalt im Detail

Einführung in Mobilgeräte

  • Charakteristische Eigenschaften von Mobilgeräten
  • "Ecosystems": Hersteller, Geräte, Betriebssysteme, Programmiersprachen
  • Internet-Quellen (Dokumentationen, Foren, Tutorien) und weiterführende Literatur

Software für Mobilgeräte - Ein Überblick

  • Schritte der Programmentwicklung und -ausführung
  • Die zentrale Rolle des Betriebssystems: Schnittstellen und Laufzeitsystem
  • Betriebssysteme für Mobilgeräte: Android, iOS, Windows Phone
  • Programmiersprachen und -schnittstellen (Kurzübersicht): Java für Android , Objective-C und SWIFT für iOS, C# für Windows Phone
  • Vergleich

Android: Basistechniken

  • Werkzeuge zur Entwicklung und Ausführung von Applikationen: Android SDK und Android Studio
  • Struktur von Applikationen
  • Grundlegende Komponenten: Activities, Services

Android: Grafische Benutzeroberflächen

  • XML zur GUI-Spezifikation vs. Java für ausführbaren Code
  • Basiskomponenten: Views und Layouts
  • Auswahlangebote (u.a. Menus und Action Bar), Benachrichtigungen und Dialoge
  • Berührungen und Gesten
  • Grafiken, Animationen und Multimedia
  • Fragments
  • Styles und Themes
  • Alternative Ressourcen

Android: Persistente Datenspeicherung

  • Übersicht über die Daten- und Speicherorganisation
  • Dateisysteme
  • SQLite-Datenbank
  • Content Provider
  • Shared Preferences / User Preferences 

Android: Komponenten und Nebenläufigkeit

  • Applikations-Komponenten und Intents
  • Services: local und remote
  • Nebenläufigkeit mit Tasks und Threads
  • Aspekte der Nebenläufigkeit bei der GUI-Steuerung (insbesondere AsyncTask)

Android: Kommunikation und Kooperation

  • Übersicht über verfügbare Kommunikationswege
  • Bluetooth (auch zur Kommunikation mit PCs unter Java SE)
  • Internetzugriff (u.a. Sockets, Web Services)
  • Sprachtelefonie und SMS 

Android: Sensoren und ortsabhängige Dienste

  • Arten von Sensoren und Zugriff darauf
  • Ortsbestimmung
  • Nutzung von Landkarten (u.a. Google Maps)

Android: Sicherheit und Datenschutz

  • Sicherheitsarchitektur und Probleme damit
  • Datenschutz
  • Dekompilierung und Analyse von Applikationen

Android: Vertrieb und Kommerzialisierung

  • Anpassung von Applikationen an unterschiedliche Plattformen und Umgebungen
  • Veröffentlichung (inbesondere im Google Play Store)
  • Integration von Werbung
Umfang des Moduls
  • Leittext mit Einführung in die jeweilige Thematik
  • Lehrmaterial mit kommentierten Quellcode-Auszügen und vollständig ausführbaren Android-Programmen inkl. Quelltexten
  • Übungsaufgaben
  • Präsenzpraktikum (1 Woche)
Empfohlene Vorkenntnisse

Sie müssen sichere Programmierkenntnisse in Java besitzen; praktische Erfahrungen mit einer Programmentwicklungsumgebung, wie z.B. Eclipse, sind dabei wünschenswert. Zudem müssen Sie englische Texte lesen können, um die Android-Online-Dokumentation zu verstehen.

Wünschenswert, aber nicht zwingend erforderlich, sind weiterhin Grundkenntnisse in der nebenläufigen Programmierung (insbesondere Java-Threading), über Internet-Protokolle (insbesondere Konzepte wie Sockets und Web Services) sowie relationale Datenbanken (insbesondere SQL).

Kursdauer
1 Semester

Kosten
zur Kostenübersicht Einzelmodule

Abschluss
Das Modul ist verwendbar für die Abschlüsse: