335

Programmierung · Mobile Apps

Mobile-Applikation realisieren

Du lernst, eine App fürs Smartphone zu planen und umzusetzen, die auf kleinen Bildschirmen gut bedienbar ist, Gerätefunktionen nutzt und auch ohne Netz funktioniert.

Fortgeschritten Fortgeschritten ca. 28 Std. SelbststudiumApplikationsentwicklung: 3. Lehrjahr · üK-WahlpflichtPlattformentwicklung: 3. Lehrjahr · üK-Wahlpflicht
#Mobile#React Native#Flutter#Android#iOS#Offline-First#Gerätefunktionen#Navigation#App-Store

Überblick

Worum geht es?

Mobile Apps haben eigene Regeln: wenig Platz, Bedienung mit dem Daumen, schwankendes Netz, begrenzter Akku und strenge Berechtigungen. Du planst Screens und Navigation für den mobilen Einsatz, setzt sie mit einem Cross-Platform-Framework oder nativ um und bindest Kamera, Standort oder Benachrichtigungen ein. Daten holst du von einer API und speicherst sie lokal, damit die App auch im Funkloch weiterläuft. Zum Schluss testest du auf echten Geräten und bereitest die Verteilung an Testpersonen vor.

Wofür brauchst du das?

Viele Lehrbetriebe bieten ihren Kunden oder Mitarbeitenden eine App: Servicetechniker erfassen Rapporte vor Ort, Pflegende scannen Medikamente, Kunden verfolgen Lieferungen. Wer weiss, worauf es auf dem Smartphone ankommt, baut Apps, die im Feld wirklich genutzt werden. Das Modul baut auf Frontend (294), Backend (295) und Benutzerschnittstellen (322) auf.

Das solltest du schon können

  • Ein Frontend mit Komponenten, Zustand und API-Aufrufen umsetzen (Modul 294)
  • Benutzerschnittstellen benutzerzentriert entwerfen und Wireframes erstellen (Modul 322)
  • Eine REST-API verstehen und mit Postman testen (Modul 295)
  • JavaScript/TypeScript, Dart oder Kotlin auf Grundniveau beherrschen

Typische Tools & Technologien

React Native / ExpoFlutter / DartKotlin / Jetpack ComposeAndroid StudioXcode / TestFlightSQLite / AsyncStorageFirebase

Lernziele

Was musst du können?

Das sind die Fähigkeiten, die am Ende des Moduls sitzen sollten. Jedes Ziel mit einem Beispiel aus dem Lehrbetrieb.

  1. 1

    Screens und Navigation für die mobile Nutzung planen

    Kompetenz A

    Du denkst vom Einsatzort her: Wer nutzt die App, mit welcher Hand, unter welchen Bedingungen? Daraus leitest du wenige, klar fokussierte Screens und eine einfache Navigation ab. Wichtige Aktionen liegen im Daumenbereich.

    Situation

    Ein Sanitärbetrieb in Winterthur will, dass Monteure auf der Baustelle Arbeitsrapporte per App erfassen, oft mit Handschuhen und in schlechtem Licht.

    Deine Aufgabe

    Entwirf die wichtigsten Screens und die Navigation.

    Gutes Ergebnis

    Vier Screens: Tagesaufträge, Auftragsdetail, Rapport erfassen, Fotos. Tab-Navigation unten, grosse Buttons mit mindestens 48 dp, hoher Kontrast. Der Hauptbutton 'Rapport abschliessen' sitzt unten rechts im Daumenbereich.

    Mobile FirstStack- und Tab-NavigationTouch-ZielePlattform-Richtlinien (Material, HIG)
  2. 2

    Den passenden technischen Ansatz wählen und begründen

    Kompetenz A

    Du vergleichst native Entwicklung, Cross-Platform-Frameworks und Web-Apps (PWA) nach Kriterien wie Gerätezugriff, Teamwissen, Wartung und Kosten und triffst eine nachvollziehbare Entscheidung.

    Situation

    Eine Stiftung für betreutes Wohnen braucht eine App für 60 Betreuende, die Hälfte mit iPhone, die Hälfte mit Android. Das IT-Team kennt TypeScript und React.

    Deine Aufgabe

    Empfiehl einen Ansatz mit Begründung.

    Gutes Ergebnis

    React Native mit Expo: eine Codebasis für beide Plattformen, vorhandenes React-Wissen nutzbar, Kamera und Push über Expo-Module. Eine PWA wurde verworfen, weil Push-Benachrichtigungen auf älteren iPhones im Betrieb nicht zuverlässig sind.

    Native AppCross-PlatformPWAEntscheidungsmatrix
  3. 3

    Responsive Oberflächen mit Komponenten und Zustand umsetzen

    Kompetenz B

    Du baust die Screens aus wiederverwendbaren Komponenten, verwaltest den Zustand sauber und sorgst dafür, dass Layouts auf kleinen und grossen Geräten, im Hoch- und Querformat und mit grösserer Schrift funktionieren.

    Situation

    Die Rapport-App bricht auf einem iPhone SE: Buttons verschwinden unter der Tastatur, und bei grosser Systemschrift überlappen sich Texte.

    Deine Aufgabe

    Mach die Erfassungsmaske auf allen Testgeräten bedienbar.

    Gutes Ergebnis

    ScrollView mit KeyboardAvoidingView, flexible Layouts statt fixer Höhen, Textgrössen über die Systemeinstellung skaliert. Getestet auf iPhone SE, Pixel 8 und einem Tablet.

    KomponenteState / PropsFlexboxSafe AreaDynamische Schriftgrösse
  4. 4

    Kamera, Standort und Benachrichtigungen einbinden

    Kompetenz C

    Du nutzt Gerätefunktionen über die Schnittstellen des Frameworks, fragst Berechtigungen zum richtigen Zeitpunkt mit einer verständlichen Begründung an und reagierst sauber, wenn jemand ablehnt.

    Situation

    Ein Entsorgungsunternehmen im Kanton Aargau will, dass Fahrer überfüllte Sammelstellen mit Foto und Standort melden.

    Deine Aufgabe

    Baue die Meldefunktion inklusive Berechtigungen ein.

    Gutes Ergebnis

    Erst beim Tippen auf 'Meldung erfassen' fragt die App nach Kamera und Standort, mit kurzem Erklärungstext. Lehnt jemand den Standort ab, kann die Sammelstelle aus einer Liste gewählt werden. Fotos werden vor dem Upload auf 1600 px verkleinert.

    Berechtigung (Permission)Kamera-APIGeolocationPush-BenachrichtigungGraceful Degradation
  5. 5

    Daten lokal speichern und mit dem Server synchronisieren

    Kompetenz D

    Die App holt Daten über eine API, speichert sie lokal und funktioniert auch ohne Verbindung weiter. Neue Einträge landen in einer Warteschlange und werden automatisch übertragen, sobald wieder Netz da ist.

    Situation

    Die Monteure arbeiten oft in Kellern ohne Empfang. Rapporte gehen verloren, wenn das Absenden fehlschlägt.

    Deine Aufgabe

    Sorge dafür, dass kein Rapport verloren geht.

    Gutes Ergebnis

    Rapporte werden zuerst in SQLite gespeichert und mit Status 'ausstehend' markiert. Ein Synchronisationsdienst sendet sie bei Netz mit eindeutiger ID, damit der Server Duplikate erkennt. Ein Symbol zeigt die Anzahl noch nicht übertragener Rapporte.

    Offline-FirstLokale DatenbankSync-QueueNetzwerkstatusKonfliktbehandlung
  6. 6

    Die App auf echten Geräten testen und an Testpersonen verteilen

    Kompetenz E

    Du testest nicht nur im Emulator, sondern auf echten Geräten mit unterschiedlichen Bildschirmen und Betriebssystemversionen. Danach erstellst du einen Build und verteilst ihn über TestFlight, Google Play Internal Testing oder Expo an Testpersonen.

    Situation

    Vor dem Rollout bei 25 Monteuren will die Geschäftsleitung eine Pilotphase mit fünf Personen.

    Deine Aufgabe

    Bereite Testplan und Verteilung vor.

    Gutes Ergebnis

    Testplan mit 15 Szenarien, darunter Flugmodus, Kamera abgelehnt und App im Hintergrund. Builds über TestFlight und Google Play Internal Testing, Rückmeldungen über ein kurzes Formular. Zwei Fehler werden vor dem Rollout behoben.

    Emulator vs. GerätBuild / SignierungTestFlightInternal TestingCrash-Reporting

Selbsteinschätzung

Wo stehst du?

Die Kompetenzmatrix zerlegt das Modul in Themenstränge und drei Stufen. Für den Kompetenznachweis solltest du überall mindestens Stufe 2 erreichen. Dein Stand bleibt in diesem Browser gespeichert und färbt Lernweg und Übungen ein.

Tippe auf eine Aussage, um deinen Stand zu setzen: offen unsicher sitzt
A

Mobile Konzeption und Technologiewahl

Ziel 1Ziel 2

Grundlagen

Fortgeschritten

Erweitert

B

Oberfläche und Zustand

Ziel 3

Grundlagen

Fortgeschritten

Erweitert

C

Gerätefunktionen

Ziel 4

Grundlagen

Fortgeschritten

Erweitert

D

Offline und Synchronisation

Ziel 5

Grundlagen

Fortgeschritten

Erweitert

E

Testen und Verteilen

Ziel 6

Grundlagen

Fortgeschritten

Erweitert

Praxisfall

Die Rapport-App für die Baustelle

Dario ist im 3. Lehrjahr als Informatiker Applikationsentwicklung bei der Valbau AG in Landquart, einer Bauunternehmung mit 180 Mitarbeitenden. Die Poliere schreiben ihre Tagesrapporte auf Papier und tippen sie abends im Büro ab, was pro Tag rund 45 Minuten kostet. Dario erhält den Auftrag, eine App zu entwickeln, mit der Rapporte direkt auf der Baustelle erfasst werden.

  1. Kapitel 1

    Ein Morgen auf der Baustelle

    Dario begleitet einen Polier einen Vormittag lang auf eine Baustelle in Schiers. Er sieht, dass dieser mit Arbeitshandschuhen tippt, oft in grellem Sonnenlicht steht und das Handy meist mit einer Hand hält. Daraus leitet Dario grosse Schaltflächen, hohen Kontrast und Hauptaktionen im Daumenbereich ab. Er skizziert vier Screens, nämlich Baustellenliste, Rapport, Fotos und Senden, verbunden über eine Tab-Navigation.

    Ziel 1

  2. Kapitel 2

    Flutter oder React Native?

    Die Firma setzt eine Mischung aus iPhones und robusten Android-Geräten ein, und das interne Team programmiert bereits in TypeScript. Dario vergleicht nativ, Flutter und React Native in einer gewichteten Entscheidungsmatrix mit Kriterien wie Gerätezugriff, Teamwissen und Wartungsaufwand. React Native mit Expo gewinnt mit 4.2 zu 3.6 Punkten vor Flutter, vor allem wegen des vorhandenen Know-hows. Kamera und Standort sind über Expo-Module abgedeckt, was er mit einem kleinen Spike bestätigt.

    Ziel 2

  3. Kapitel 3

    Formular mit Handschuhen

    Dario lädt die Baustellenliste aus der bestehenden REST-API und ergänzt Pull-to-Refresh, Ladeanzeige und eine Fehlermeldung bei fehlendem Netz. Im Rapportformular verdeckt die Tastatur das Feld "Bemerkungen", und der Speichern-Button ist nicht mehr erreichbar. Mit KeyboardAvoidingView und einer ScrollView löst er das Problem. Ein Test mit grosser Systemschrift zeigt zudem abgeschnittene Labels, die er auf mehrere Zeilen umbrechen lässt.

    Ziel 3

  4. Kapitel 4

    Fotos und Standort

    Mängel sollen mit Foto und Standort dokumentiert werden, doch die Originalfotos sind je 6 MB gross. Dario verkleinert sie vor dem Upload auf 1600 Pixel Breite und landet bei rund 400 KB pro Bild. Als ein Polier die Standortberechtigung ablehnt, stürzt die App ab. Dario fragt die Berechtigung jetzt erst beim ersten Foto mit einer kurzen Erklärung an und bietet bei Ablehnung eine manuelle Baustellenwahl an.

    Ziel 4

  5. Kapitel 5

    Kein Netz im Tunnel

    Auf einer Tunnelbaustelle ohne Empfang geht der erste echte Rapport verloren. Dario speichert Rapporte nun in SQLite, legt sie in eine Warteschlange und überträgt sie automatisch, sobald wieder Netz da ist, jeweils mit einer eindeutigen ID gegen Doppelte. Seinen Testplan mit Flugmodus, App-Wechsel und Rotation arbeitet er auf vier Geräten ab und verteilt danach einen Build über TestFlight und Internal Testing an sechs Poliere. Ein Absturzbericht zeigt einen Fehler bei leerer Stundenliste, den er in Version 1.0.2 behebt.

    Ziel 5Ziel 6

Lernweg

Wie lernst du das?

  1. 1

    Mobil denken

    ca. 4 Std.

    Du analysierst Nutzungssituationen und skizzierst eine App, bevor du ein Framework öffnest.

    • Drei Apps auf deinem Handy analysieren: Navigation, Daumenbereich, Berechtigungen
    • Für ein Szenario aus deinem Lehrbetrieb Wireframes in Figma erstellen
    • Eine Entscheidungsmatrix nativ, Cross-Platform und PWA ausfüllen

    Trainiert Kompetenz A1A2

    Lernziel12

  2. 2

    Erste App lauffähig machen

    ca. 5 Std.

    Du richtest die Entwicklungsumgebung ein und bringst eine erste App mit Navigation auf dein eigenes Gerät.

    • Expo, Flutter oder Android Studio installieren und eine Beispiel-App starten
    • Stack- und Tab-Navigation mit drei Screens aufbauen
    • Die App über Expo Go oder USB-Debugging auf dem eigenen Handy testen

    Trainiert Kompetenz B1A1E1

    Lernziel31

  3. 3

    Oberfläche und Daten

    ca. 5 Std.

    Du baust Listen und Formulare und holst Daten von einer API.

    • Eine Liste mit Pull-to-Refresh aus einer REST-API füllen
    • Ein Formular mit Validierung und Tastaturbehandlung bauen
    • Das Layout im Querformat und mit grosser Systemschrift prüfen

    Trainiert Kompetenz B2B3

    Lernziel3

  4. 4

    Gerätefunktionen nutzen

    ca. 5 Std.

    Du bindest Kamera, Standort und Benachrichtigungen ein und gehst bewusst mit Berechtigungen um.

    • Ein Foto aufnehmen, verkleinern und hochladen
    • Den Standort abfragen und auf einer Karte anzeigen
    • Den Fall 'Berechtigung abgelehnt' für jede Funktion sauber behandeln

    Trainiert Kompetenz C1C2

    Lernziel4

  5. 5

    Offline zuverlässig

    ca. 5 Std.

    Du machst die App robust gegen Funklöcher.

    • Daten lokal in SQLite oder AsyncStorage zwischenspeichern
    • Eine Warteschlange für ausstehende Einträge mit automatischer Übertragung bauen
    • Im Flugmodus Einträge erfassen und nach dem Einschalten die Synchronisation prüfen

    Trainiert Kompetenz D1D2

    Lernziel5

  6. 6

    Testen und ausliefern

    ca. 4 Std.

    Du testest auf mehreren Geräten und verteilst einen Build an Testpersonen.

    • Einen Testplan mit Sonderfällen wie Flugmodus und App-Wechsel erstellen und abarbeiten
    • Einen signierten Build erzeugen und über TestFlight oder Internal Testing verteilen
    • Rückmeldungen von zwei Testpersonen einholen und umsetzen

    Trainiert Kompetenz E2E3

    Lernziel6

Üben

Übungen aus der Praxis

Menüplan der Kantine

Einstieg Einstieg

Die Kantine eines Logistikzentrums in Dintikon veröffentlicht den Wochenmenüplan bisher als PDF am Anschlagbrett. Mitarbeitende wollen ihn auf dem Handy sehen.

Weist nach B1D1

  1. Zwei Screens bauen: Wochenübersicht und Menüdetail mit Preis und Allergenen
  2. Die Daten aus einer bereitgestellten JSON-API laden
  3. Den zuletzt geladenen Plan lokal speichern und ohne Netz anzeigen
Tipp anzeigen

Zeig beim Start sofort den gespeicherten Plan an und lade im Hintergrund den neuen. So wartet niemand auf einen Ladekreisel.

Lösungsskizze anzeigen

Stack-Navigation von Liste zu Detail. Beim Start lokalen Cache lesen und anzeigen, dann API abfragen, Cache aktualisieren und Liste neu rendern. Bei Netzfehler bleibt der Cache sichtbar mit Hinweis 'Stand vom …'.

Schadenmeldung mit Foto und Standort

Fortgeschritten Fortgeschritten

Der Werkhof einer Gemeinde im Zürcher Oberland möchte, dass Bürgerinnen und Bürger Schäden wie Schlaglöcher oder defekte Strassenlampen per App melden.

Weist nach A2B2C2

  1. Screens und Navigation in Figma skizzieren und begründen
  2. Foto aufnehmen und Standort automatisch erfassen
  3. Den Fall abdecken, dass Kamera oder Standort abgelehnt werden
  4. Meldung mit Kategorie und Bemerkung an eine API senden
Tipp anzeigen

Frage Berechtigungen erst, wenn die Person die Funktion wirklich nutzen will, nicht beim App-Start.

Lösungsskizze anzeigen

Ablauf: Kategorie wählen, Foto, Standort bestätigen oder auf Karte setzen, Bemerkung, Senden. Berechtigungen kontextbezogen mit Erklärtext. Bei Ablehnung: Foto aus Galerie oder Standort per Adresseingabe. Foto verkleinern, als Multipart senden, Erfolgsbestätigung mit Meldungsnummer anzeigen.

Inventur-App mit Barcode-Scanner

Anspruchsvoll Anspruchsvoll

Ein Baumarkt in Emmen macht zweimal jährlich Inventur. 20 Mitarbeitende zählen gleichzeitig, oft in Lagerbereichen ohne WLAN.

Weist nach A3C2D3E3

  1. Technischen Ansatz wählen und in einer Entscheidungsmatrix begründen
  2. Barcodes mit der Kamera scannen und Mengen erfassen
  3. Erfassungen offline speichern und bei Netz automatisch synchronisieren, ohne Duplikate
  4. Testplan mit Sonderfällen erstellen und einen Build an drei Testpersonen verteilen
Tipp anzeigen

Überlege, was passiert, wenn zwei Personen denselben Artikel an verschiedenen Regalplätzen zählen. Das ist kein Konflikt, sondern zwei Erfassungen.

Lösungsskizze anzeigen

Cross-Platform-Framework wegen gemischter Geräte. Jede Erfassung bekommt lokal eine UUID, Regalplatz, Artikel, Menge und Zeitstempel. Eine Sync-Queue sendet bei Netz, der Server ignoriert bekannte UUIDs. Testplan mit Flugmodus, App-Abbruch während Sync, schlechtem Licht beim Scannen. Verteilung über TestFlight und Internal Testing.

Selbstcheck

Kannst du das beantworten?

Nenne zwei Vorteile und einen Nachteil eines Cross-Platform-Frameworks.

Vorteile: eine Codebasis für iOS und Android, schnellere Entwicklung. Nachteil: Neue Plattformfunktionen sind manchmal erst verzögert oder nur über native Module nutzbar.

Wann solltest du eine Berechtigung wie die Kamera anfragen?

Erst dann, wenn die Person die Funktion wirklich nutzt, mit einer kurzen Erklärung, wofür sie gebraucht wird.

Was bedeutet Offline-First?

Die App arbeitet primär mit lokalen Daten und synchronisiert im Hintergrund mit dem Server. Ohne Netz bleibt sie bedienbar.

Wie verhinderst du doppelte Einträge, wenn ein Upload wiederholt wird?

Jeder Eintrag bekommt auf dem Gerät eine eindeutige ID. Der Server erkennt bereits bekannte IDs und legt sie nicht nochmals an.

Wie gross sollte ein Touch-Ziel mindestens sein?

Rund 44 pt auf iOS bzw. 48 dp auf Android, damit es zuverlässig mit dem Finger getroffen wird.

Warum reicht ein Test im Emulator nicht?

Kamera, Sensoren, Leistung, echte Netzschwankungen und Herstellerbesonderheiten verhalten sich auf echten Geräten anders.

Wozu dient TestFlight?

Um iOS-Testversionen vor der Veröffentlichung im App Store an ausgewählte Testpersonen zu verteilen.

Prüfung

Stolpersteine & Prüfungstipps

Typische Stolpersteine

  • Alle Berechtigungen gleich beim ersten Start abfragen. Viele Personen lehnen dann einfach alles ab.
  • Nur auf dem eigenen, neuen Smartphone testen und kleine oder ältere Geräte vergessen.
  • Fotos in voller Auflösung hochladen und damit Datenvolumen und Akku der Benutzenden verbrauchen.
  • Bei fehlendem Netz einfach eine Fehlermeldung zeigen und die eingegebenen Daten verwerfen.
  • API-Schlüssel fix in die App einbauen. Eine App lässt sich entpacken und auslesen.

Tipps für den Kompetenznachweis

  • Bring ein echtes Gerät mit installierter App zur Präsentation mit und habe einen Screen-Recording als Backup.
  • Zeig mindestens einen Sonderfall live: Flugmodus, abgelehnte Berechtigung oder Querformat.
  • Begründe deine Framework-Wahl mit Kriterien aus dem konkreten Auftrag, nicht mit persönlicher Vorliebe.
  • Halte den Funktionsumfang klein und poliere dafür die Bedienung. Eine runde App mit vier Screens schlägt eine halbfertige mit zwölf.

Glossar

Begriffe kurz erklärt

Native App
App, die mit den Werkzeugen und Sprachen einer Plattform entwickelt wird, z.B. Kotlin für Android oder Swift für iOS.
Cross-Platform
Entwicklungsansatz, bei dem eine Codebasis für mehrere Plattformen genutzt wird, z.B. React Native oder Flutter.
PWA
Progressive Web App: Webanwendung, die sich installieren lässt und teilweise offline funktioniert.
Permission
Erlaubnis der Benutzerin, dass die App auf eine Gerätefunktion wie Kamera oder Standort zugreifen darf.
Offline-First
Gestaltungsprinzip, bei dem die App lokal funktioniert und im Hintergrund synchronisiert.
Safe Area
Bildschirmbereich, der nicht von Notch, Statusleiste oder Home-Indikator verdeckt wird.
Build
Fertig paketierte, signierte Version der App, die auf Geräten installiert werden kann.

Mit KI-Tutor

Jeder Kurs hat einen persönlichen KI-Tutor

  • Erklärt in deinem Tempo
  • Debuggt mit dir
  • Fachgespräch wie im QV
  • Unbegrenzt neue Übungen

Denkanstösse statt fertiger Lösungen. In der Gratis-Lektion zum Ausprobieren.

KI-Tutor · Modul 164Nur Tipps

Mein JOIN liefert plötzlich doppelte Zeilen. Was mache ich falsch?
Gute Frage! Schau dir die Spalte an, über die du verbindest: Ist sie in beiden Tabellen eindeutig? Was passiert mit einer Kundin, die zwei Bestellungen hat?
Ah, dann kommt sie zweimal vor …
Genau. Willst du die Bestellungen zählen oder nur die Kundinnen sehen? Je nachdem hilft dir GROUP BY oder DISTINCT.

Tutavio

So helfen wir dir bei Modul 335

  • Wir helfen dir beim Einrichten von Expo, Flutter oder Android Studio und bringen die App auf dein eigenes Gerät, wenn USB-Debugging oder Emulator streiken.
  • Wir prüfen deine Wireframes und Screens auf Daumenbereich, Touch-Ziele und Lesbarkeit unter realen Bedingungen.
  • Wir bauen mit dir die Offline-Synchronisation auf und testen gemeinsam Flugmodus- und Abbruchszenarien.
  • Vor der ÜK-Abgabe gehen wir deinen Testplan durch und üben die Live-Vorführung inklusive Sonderfällen.

Unverbindlich anfragen. Wir melden uns innert 24 Stunden.

Tutor:in für Modul 335 finden

Passende Module

Diese Seite ist eine eigene Lernhilfe von Tutavio und keine offizielle Modulbeschreibung. Nummer, Titel und Einordnung stammen aus den öffentlichen Bildungsplänen. Die verbindliche Modulidentifikation findest du im Modulbaukasten von ICT-Berufsbildung Schweiz.

Gratis-LektionNachhilfe