(Prof. Dr. C. Vogt,
Bereich Informatik,
Institut Nachrichtentechnik,
Fakultät 07,
TH Köln)
Link zum entsprechenden Ilias-Kurs
mit Materialien zur Veranstaltung und weiteren Informationen
Link zu Tutorials
Teilnehmer, Ziele, Voraussetzungen
Die Lehrveranstaltung richtet sich vornehmlich an Studierende des Bachelorstudiengangs Technische Informatik,
die es als Pflichtmodul der Studienrichtung "Netze und Verteilte Systeme" oder als Wahlpflichtmodul der anderen Studienrichtungen
hören können.
Studierende anderer Fachrichtungen können teilnehmen, wenn sie die nötigen fachlichen Voraussetzungen (siehe weiter unten)
haben und Plätze frei sind.
Die Veranstaltung soll mit den wesentlichen Konzepten zur Programmierung von Mobiltelefonen ("Smartphones")
vertraut machen und, am Beispiel von
Android,
praktische Programmierkenntnisse vermitteln.
Unbedingt vorausgesetzt wird die sichere Beherrschung der Programmiersprache Java.
Wünschenswert sind zudem
Kenntnisse in der Programmierung nebenläufiger Anwendungen (insbesondere Java-Threads),
Grundkenntnisse in Datennetzen (insbesondere Internet-Protokolle) und Datenbanken (insbesondere SQL)
sowie praktische Erfahrungen mit einer Java-IDE.
Themenübersicht
Charakteristische Eigenschaften von Smartphones.
"Ecosystems": Hersteller, Betriebssysteme, Programmiersprachen, Geräte.
Internet-Quellen und weiterführende Literatur.
Komponenten zur Programmentwicklung und -ausführung: Programmierschnittstelle, Laufzeitsystem, Entwicklungsumgebung.
Betriebssysteme: Android, iOS.
Programmiersprachen und -schnittstellen: Java/Kotlin für Android, Objective-C/Swift für iOS.
Werkzeuge zur Entwicklung und Ausführung von Applikationen: Android SDK und Android Studio.
Struktur von Applikationen.
Grundlegende Komponenten: Activities, Services.
XML zur GUI-Spezifikation vs. Java für ausführbaren Code.
Basiskomponenten: Views, ViewGroups, Layouts.
Auswahlangebote, Benachrichtigungen und Dialoge.
Berührungen und Gesten.
Grafiken, Animationen und Multimedia.
Spezielle GUI-Elemente und -Techniken.
Fragments.
Graphische Spezifikation von Navigationspfaden.
Übersicht über die Daten- und Speicherorganisation.
Dateisysteme.
SQLite-Datenbank.
Content Provider.
Shared Preferences.
Applikations-Komponenten und Intents.
Services (lokal und remote)
Broadcast Receiver
Nebenläufigkeit mit Tasks und Threads.
Nebenläufigkeit bei der GUI-Steuerung (AsyncTask).
Übersicht über Kommunikationswege.
Bluetooth.
Internetzugriff (insbes. Sockets, Web Services).
Telefonnetz (auch SMS).
Arten von Sensoren und Zugriff darauf.
Ortsbestimmung.
Nutzung von Landkarten.
Sicherheitsarchitektur und Probleme damit.
Datenschutz.
Reverse Engineering von Apps.
Anpassung von Apps an verschiedene Umgebungen und Plattformen.
Veröffentlichung von Apps.
Einbettung von Werbung.
Prof. Dr. Carsten Vogt, 19.3.2021