Learning Outcome
In diesem Modul erfahren Studierende die Relevanz, Herausforderungen und Techniken der Entwicklung mobiler Software. Sie können danach Apps für Smartphones entwerfen, implementieren und managen. Das Modul befähigt Studierende dazu, in weiteren Studienprojekten, der Abschlussarbeit oder im Beruf eigene mobile Anwendungen zu realisieren. Um die Lernziele zu erreichen werden Grundlagen und Konzepte in den Veranstaltungen studiert und in Teams projektorientiert angewandt. Das Modul verfolgt einen inkrementell-iterativen Ansatz von der Erstellung eines ersten Prototypen, über die Implementierung des User Interface, der Auslagerung von Operationen in den Hintergrund, der Speicherung von strukturierten Daten und dem Management mobiler Software.
Nach erfolgreicher Teilnahme am Modul können Studierende (WAS:) mobile Anwendungen entwerfen und implementieren und dabei die Herausforderungen von Mobilität bei der Gestaltung mobiler Medien sowie typische nicht-funktionale Anforderungen an mobile Informationstechnologie berücksichtigen, indem sie (WOMIT:)
- mobile Nutzungskontexte aus der Perspektive der Mensch-Computer-Interaktion analysieren,
- mobiler Benutzungsschnittstellen daran angepasst gestalten,
- Software für mobile Geräte in typischen Komponenten strukturieren und Architekturen entwerfen,
- mobile Apps auf Basis aktueller Technologien, Frameworks und Entwicklungsumgebungen implementieren,
- Nebenläufigkeit insbesondere vor dem Hintergrund interaktiver User Interfaces umsetzen,
- Paradigmen für verteilte Architekturen als Basis für Kommunikation und Datenaustausch nutzen,
- Herausforderungen hinsichtlich Kommunikation und Sicherheit kennen und adressieren,
- sowie Mechanismen für das Deployment und Ansätze für die Monetarisierung im mobilen Ökosystemen nutzen.
(WOZU:) Dies versetzt sie in die Lage, in weiteren Studienprojekten, der Abschlussarbeit oder im Beruf mobile Anwendungen und Medien mit Blick auf deren spezielle Nutzungskontexte zu konzipieren, zu entwerfen und zu entwickeln.
Inhalt
App components & architecture
- Types of apps
- App components
- Patterns MVC, MVP, MVVM
- UI components
- Declarative UIs
- Navigation patterns
- Background operations
- Storage and databases
- Concurrency and coroutines
- Foreground and background processes
App Development
- Integrated development environment
- Software development kit
- Logging and debugging
- Signing and versioning
- Using libraries
Communication
- Networks and data transmission
- Challenges and strategies
- Req-res-based architecture
- Event-based architecture
- Security and compression
- Backend requirements
- Phone calls and SMS
Sensors & gadgets
- Permissions and ethics
- Sensors and sensor events
- Using the observer pattern
- Near field communication
- Bluetooth and discovery
- Speech input and output
- Smartwatch and wearables
Management & application usage
- Mobile human-computer-interaction
- History and future
- Mobile ecosystem
- Deployment on app store
- Feedback and tracking
- Monetization
- Smartphone lifecycle
- Application lifecycle
- Context-awareness
- Usage patterns
- Localization
- Device management
Literatur
- Bollmann, Zeppenfeld: Mobile Computing. W3L Verlag, 2015.
- Android Website: https://developer.android.com
- Weitere Referenzen werden in Veranstaltung genannt
Geförderter Kompetenzerwerb
Das Modul zahlt auf folgende Handlungsfelder und Kompetenzbereiche ein. Eine ausführliche Beschreibung der konkreten Komptenzen finden Sie weiter unten.
Designing for User Experiences
Developing Interactive and Distributed Systems
Exploring Advanced Interactive Media
Enhancing Interactions on Different Scales
Designing for User Experiences
-
Anforderungen und Bedarfe
-
Konzepte
-
Haben ein ausgeprägtes konzeptionelles Denkvermögen entwickelt, um komplexe Probleme zu analysieren, innovative Lösungsansätze zu konzipieren und diese in verständliche und erfahrbare Konzepte zu überführen.
-
Kennen Grundlagen des Interaktionsdesigns wie Modellierung von Benutzerflüssen, Erstellung von Wireframes und Prototypen, etc. und können diese in konkreten Projekten anwenden.
-
Können angemessene Informationsarchitekturen entwicklen, evaluieren, iterieren und optimieren.
-
Gestaltung
-
Haben ein gutes Verständnis für visuelles Design: Farbe, Typografie, Layout, visuelle Hierarchisierung, Designsysteme etc.
-
Können visuelle Darstellung und Präsentation komplexer Daten und Informationen für verschiedene Zielgruppen konzipieren und erstellen.
-
Verfügen über Kenntnisse in der Gestaltung und Umsetzung barrierefreier und inklusiver Interaktionen, Systeme und Medienprodukte.
Developing Interactive and Distributed Systems
-
Technologie
-
Kennen State-of-the-art Technologie zur Umsetzung von software-basierten Anwendungen (insb. in den Bereichen Web, Mobile, IoT, AR/VR, AI), können konkurrierende alternative Technologien auswählen und evaluieren, sich neue technologische Möglichkeiten erschließen, diese bewerten, nutzen, und integrieren sowie zukunftsorientiert neue Möglichkeiten screenen.
-
Wissen wie Kommunikation zwischen Computern realisiert wird (bspw. req/res, pub/sub und Protokolle wie HTTP, MQTT).
-
Wissen was ein Computer ist und wie Software darauf ausgeführt wird.
-
Entwurf
-
Verstehen formale Strukturen.
-
Können abstrahieren, logisch denken und komplexe Zusammenhänge verstehen.
-
Können Aspekte realweltlicher Probleme zu identifizieren, die für eine informatische Modellierung geeignet sind, algorithmische Lösungen für diese (Teil-)Probleme bewerten und selbst so zu entwickeln, dass diese Lösungen mit einem Computer operationalisiert werden können.
-
Konzepte (bspw. Paradigmen, Architekturen, Pattern) für die web-basierte Verteilung von Komponenten (bspw. Frontend/Clients/Apps, Backend/Server/Cloud) für verteilte interaktive Anwendungen kennen und umsetzen können.
-
Implementierung
-
Kennen Entwicklungsumgebungen, Tools und entwicklungsnahe Prozesse und diese praktisch nutzen (insb. IDE, Compiler, Linker, Libraries, Debugging, Unit-Testing, Repositories für eigenen Code / git, Build Tools, Paketmanager).
-
Können (komplexe) Softwaresysteme im Team entwickeln.
-
Kennen Grundkonzepte agiler Entwicklung und agilen Arbeitens wie iterative und inkrementelle Entwicklung, selbstorganisierte Teams, Transparente Kommunikation, etc. und können diese in Projekten anwenden.
-
Können digitale Produkte und verschiedene Software-Artefakte zur Evaluation und zur Nutzung auf typischen Distributionswegen (bspw. Clickdummy, Web-Deployment, App Store) für verschiedene Zielgruppen bereit stellen (lauffähig, sicher und gebrauchstauglich).
Driving Creation Process
-
Innovation
-
Haben ein grundlegendes Verständnis wirtschaftlicher Aspekte, wie Budgetierung, Rentabilität und Geschäftsmodelle, etc
-
Management
-
Kommunikation
-
Können Ideen vermitteln, sich über Anforderungen verständigen, Feedback einholen und mit verschiedenen Interessengruppen zu interagieren und verhandeln.
-
Können effektive und transparente Kommunikation und Zusammenarbeit fördern, Konflikte erkennen, analysieren und lösen.
-
Sind in der Lage Arbeits- und Forschungsergebnisse klar und verständlich in aussagekräftigen, zielgruppengerechten Berichten, Präsentationen o.Ä. zu kommunizieren.
-
Haben die Fähigkeit effektiv in multidisziplinären Teams zu arbeiten und die verschiedenen Fachperspektiven und -sprachen zu verstehen.
Enhancing Interactions on Different Scales
-
Situated Interaction
-
Haben ein tiefes Verständnis für die Bedürfnisse, Verhaltensweisen und Erwartungen der Benutzer:innen.
-
Haben die Fähigkeit den Kontext von Interaktionen zu verstehen und darauf zu reagieren.
-
Können Sensoren und anderen Technologien integrieren, um den aktuellen Kontext, wie den physischen Standort oder die Umweltbedingungen, zu erfassen, um damit umgehen zu können.
-
Ethik und Gesellschaft
-
Selbstlernen
-
Können wissenschaftlich Arbeiten und Schreiben.
-
Können sich selbstständig neue Wissens- und Kompetenzbereiche zu Methoden, Technologien oder Domänen erschließen.
In der linken Spalte sehen Sie, welche Kompetenzen für das Modul vorausgesetzt werden (hellgrauer Balken). In der rechten Spalte sehen Sie, welche Kompetenzen Sie mit dem Modul erwerben können (farbiger Balken). Die Kompetenzen sind in Handlungsfelder und Bereiche gegliedert.
Wenn Sie auf den grauen oder farbigen Balken klicken, gelangen Sie zu einer Liste von Modulen, die auf diese Kompetenz einzahlen. Hier finden die eine Übersicht über alle Kompetenzen und die Module, die auf diese einzahlen.