10/08/2016

Mobiles Software Engineering

Am Beispiel einer mobilen Plattform (Android, iOS oder Windows Mobile) werden mit diesen Kursen die für die Entwicklung mobiler Applikationen notwendigen Grundkenntnisse vermittelt. Er beginnt mit den Besonderheiten mobiler Plattformen, thematisiert dann wichtige Themen wie Netzwerkkommunikation, Multithreading und die Ansteuerung der Sensorik und schließt mit aktuellen Themen wie Cross Plattform Development. Weiterhin wird in diesen Kursen vermittelt, wie sowohl die Gerätekamera sowie Gerätesensoren bei der Entwicklung von mobilen Anwendungen eingebunden werden. Darüberhinaus werden Herausforderungen und Risiken der “Cross-Plattform Entwicklung” erläutert und mögliche Strategien und Technologien vermittelt, um diese Risiken gezielt zu adressieren. Ein besonder Aspekt ist dabei das Testen mobiler Anwendungen.

Die Teilnehmenden

  • kennen die Unterschiede und Besonderheiten der SW-Entwicklung für mobile Systeme und können diese erläutern
  • können Architektur und technische Eigenschaften einer Plattform erläutern und unterscheiden
  • können selbständig mobile Softwaresysteme zur Lösung von konkreten Problemen für die gewählte Plattform entwickeln
  • kennen die Besonderheiten beim Einsatz von Kamera und Sensorik in mobilen Anwendungen und können diese erläutern
  • kennen Herausforderungen und Risiken der Cross Plattform Entwicklung
  • kennen Herausforderungen beim Testen mobiler Anwendungen und können Vorgehensweisen zur Risikominimierung erläutern

1. Grundlagen des Mobile Software Development

  • Besonderheiten mobiler Systeme und deren Auswirkung auf die Softwareentwicklung
  • Plattformspezifische Programmiersprachen, Systemarchitekturen und Entwicklungswerkzeuge
  • Entwurf, Programmierung und Test einer einfachen mobilen Anwendung
  • Einführung in die wichtigsten GUI-Elemente der einzelnen Plattformen

2. Netzwerke in mobilen Umgebungen

  • Grundlagen der Netzwerktechnik (Schwerpunkt: synchrone/asynchrone HTTP-Kommunikation)

3. Multithreading

  • Grundlagen der Entwicklung nebenläufiger Anwendungen
  • Synchronisierungsmechanismen für die Auflösung/Vermeidung von Ressourcenkonflikten
  • Besonderheiten der nebenläufigen Ausführung bei mobilen Anwendungen (z. B. Webservices)

4. Positionsbestimmung

  • Merkmale unterschiedlicher Technologien zur Positionsbestimmung (Mobilfunk, WiFi, GPS)
  •  „Best-Practices“ der kontextabhängigen/situationsgerechten Positionsbestimmung
  • Konfiguration der Zugriffsrechte, Genauigkeit, Update-Intervalle; Integration von Kartendiensten

5. Sensorik

  • Funktionsweise und Ansteuerung verbreiteter Sensoren (Gyroskop, Beschleunigungssensor…)

6. Kamera und Video

  • Grundlegende Funktionsweise der Kamera-/Video-Schnittstelle
  • Einsatzmöglichkeiten an Praxisbeispielen (Barcode-Scanner, Augmented Reality)

7. Cross-Plattform Development

  • Vor- und Nachteile des Cross-Plattform Development
  • Übersicht über den aktuellen Stand der Technik
  • Diskussion über Technologien und Trends

1. Entwicklungsgrundlagen für die Plattform Android

  • Grundlagen der objektorientierten Programmierung
  • Grundlagen der Programmiersprache Java
  • Eclipse als Entwicklungsumgebung für Android

2. Entwicklungswerkzeuge und Architekturkomponenten der Plattform Android

  • Mobile Plattformen in Abgrenzung zu Desktop-/Server-Systemen
  • Systemarchitektur der Plattform Android
  • Entwicklungswerkzeuge
  • Komponenten der Anwendungsarchitektur

3. User Interface

  • Interaktion mit dem User Interface
  • Fortgeschrittene User Interfaces
  • Custom UI Components

4. Multi-Threading auf Plattform Android

  • Threading im Allgemeinen
  • Multi-Threading auf der Plattform Android

5. Netzwerke auf der Plattform Android

  • Mobiler Netzzugang
  • Häufige Anwendungsfälle
  • HTTP-Kommunikation
  • Formate zur Datenübertragung
  • Netzwerkkommunikation mit Android

6. Google Cloud Messaging

  • Push-Benachrichtigungsdienste im Allgemeinen
  • Push-Dienste auf der Plattform Android

7. Testen im Allgemeinen und speziell auf der Plattform Android

  • Testen mit Bordmitteln
  • Testen mit Drittanbietertechnologie
  • Performanzanalyse

8. Einführung in das Cross Platform Development

  • Vor- und Nachteile des Cross Platform Development
  • Cross Platform im Detail
  • Technologien und Trends

9. Persistenz auf der Plattform Android

  • Persistenz von Daten
  • Allgemeines
  • Shared Preferences
  • Dateibasiert
  • SQLite
  • Encryption
  • Erfahrungen in der objektorientierten Programmierung (Java, C#)
  • Ggf. Erfahrungen mit der Programmierung von Webanwendungen