LT2_E1 – Journal: Lernthema 2 - Fachschicht implementieren - Lösungsvorschlag
| Website: | Moodle, virtuelles Arbeiten und eLearning - Herzlich willkommen! |
| Kurs: | Plattformübergreifende Mobile App-Entwicklung mit React Native: Vom Konzept zur Bewegungstracker-App für iOS und Android |
| Buch: | LT2_E1 – Journal: Lernthema 2 - Fachschicht implementieren - Lösungsvorschlag |
| Gedruckt von: | Guest user |
| Datum: | Montag, 16. Februar 2026, 16:27 |
Beschreibung
Die Schülerinnen und Schüler implementieren die Fachschicht der App und nutzen dabei Sensoren sowie Ereignisverarbeitung.
1. LS 2.1: Ereignisverarbeitung
|
· Ziel: Die Schülerinnen und Schüler verstehen und implementieren die Ereignisverarbeitung (z. B. Klick auf einen Button). · Operatoren: beschreiben (AFB I), implementieren (AFB II). · Handlungsprodukt: Eine App, die auf Benutzereingaben reagiert (z. B. Button-Click). |
1.1. LS 2.1.1: Grundlagen der Ereignisverarbeitung
Journal – Lernthema 2: Fachschicht implementieren
Grundlagen der Ereignisverarbeitung
- Ein Ereignis ist eine Benutzerinteraktion oder eine automatische Änderung, auf die ein Programm reagieren kann.
- Beispiele für Ereignisse sind:
- Klick auf einen Button
- Tippen auf eine Bildschirm-Tastatur
- Ändern einer Texteingabe
- Bewegung des Geräts (z. B. Kippen oder Schütteln eines Smartphones)
- Ein Event-Handler ist eine Funktion, die auf ein bestimmtes Ereignis wartet und darauf reagiert.
- Ein Event-Listener ist ein Mechanismus, der einem bestimmten Element sagt: „Falls dieses Ereignis passiert, rufe diese Funktion auf.“
Beispiele für Ereignisverarbeitung
| Beispiel | Ereignis | Aktion |
|---|---|---|
| Klick auf einen Button in einer App | onPress-Ereignis | Die App zeigt eine Meldung an („Button wurde gedrückt!“). |
| Eingabe eines Namens in ein Formular | onChangeText-Ereignis | Die App speichert den eingegebenen Text im useState. |
| Smartphone wird geschüttelt | DeviceMotion-Ereignis | Die App setzt einen Zähler auf 0 zurück. |
Ergänzungen aus dem Austausch
- Mein Lernpartner hat noch das Beispiel „Scrollen auf einer Webseite“ genannt, das ich ergänzt habe.
- Mir war nicht bewusst, dass ein Event-Listener auch auf mehrere verschiedene Ereignisse hören kann.
2. Arbeitsauftrag 4c - Bildschirmrotation Übungsaufgabe
LS2-1-A4c-Bildschirmrotation-erfassen-Loesung - Snack
✅ Musterlösung – Bildschirmrotation-Übung (Arbeitsauftrag 4c)
📌 Codeauszug (ergänzt):
import React, { useState, useEffect } from 'react';
import { View, Text, Dimensions } from 'react-native';
export default function App() {
const [screenWidth, setScreenWidth] = useState(Dimensions.get('window').width);
const [screenHeight, setScreenHeight] = useState(Dimensions.get('window').height);
useEffect(() => {
const subscription = Dimensions.addEventListener('change', ({ window }) => {
setScreenWidth(window.width);
setScreenHeight(window.height);
});
return () => {
subscription.remove();
};
}, []);
return (
<View style={{ padding: 50 }}>
<Text>Aktuelle Bildschirmbreite: {screenWidth}px</Text>
<Text>Aktuelle Bildschirmhöhe: {screenHeight}px</Text>
</View>
);
}
✏️ Kurze Erklärung:
- Zusätzlich zur Breite wird nun auch die Höhe bei Rotation automatisch aktualisiert.
- Dafür wurde ein zweiter State
screenHeightangelegt. - In der
addEventListener-Funktion wirdsetScreenHeight(window.height)ergänzt. - Beide Werte werden im Interface mit
<Text>angezeigt.
📋 Antworten auf Reflexionsfragen:
1. Werden Breite und Höhe gleichzeitig aktualisiert?
✅ Ja, beide setState-Funktionen werden im gleichen Event-Listener gesetzt.
2. Wie ist der Code strukturiert?
✅ Klar getrennt nach useState, useEffect und return. Die Anzeige ist übersichtlich.
3. Könnte man beide Werte in ein Objekt zusammenfassen?
✅ Ja, z. B. mit const [screenSize, setScreenSize] = useState({width: ..., height: ...}), aber zwei States sind bei diesem einfachen Beispiel ebenfalls gut lesbar.
4. Wird der Event Listener nur einmal registriert und wieder entfernt?
✅ Ja, useEffect läuft nur einmal beim Start ([] als Abhängigkeit) und entfernt den Listener im return.
✅ Abgabehinweis für Schüler:innen:
→ Journal-Eintrag unter: „Bildschirmrotation-Übung“
→ Code + kurze Erklärung + Antworten auf Kontrollfragen