- Lerne, wie du Daten auf einem mobilen Gerät speicherst, um von einer mobilen App darauf zuzugreifen.
- Lerne verschiedene Optionen für die Speicherung und den Zugriff auf Daten in der Cloud kennen, um Daten zwischen App-Nutzern zu teilen
Das sind die Aktivitäten für diese Lektion:
SPEICHERUNG VON LANGZEITDATEN
In der letzten Lektion hast du gelernt, wie du Variablen und Listen verwenden kannst, um Informationen in deiner App zu speichern.
Wenn die App geschlossen wird, werden alle Variablen, die im Speicher der App gespeichert sind, gelöscht.
Es gibt jedoch Zeiten, in denen du Informationen zwischen den einzelnen Durchläufen der App speichern möchtest. Es gibt zwei Arten der Langzeitspeicherung:
Lokaler Speicher
Speichere Informationen auf dem mobilen Gerät, die jedes Mal abgerufen werden, wenn die App ausgeführt wird.
Zum Beispiel eine Benutzeradresse oder ein hoher Spielstand.
Cloud-Speicher
Speichere Informationen im Internet (Cloud), damit alle App-Nutzer/innen auf die Informationen zugreifen können.
Zum Beispiel die Spielrangliste oder Chat-Nachrichten.
LOKALES LAGER
Sobald der Nutzer eine App schließt, werden die Werte aller Variablen aus dem Speicher des Geräts gelöscht.
Wenn du die Daten für die App zwischen den Läufen speichern willst, verwendest du die TinyDB Komponente
TinyDB kann verwendet werden, um die persönlichen Daten eines Nutzers zu speichern, die nicht weitergegeben werden müssen.
Zum Beispiel möchte der/die Nutzer/in seinen/ihren Namen, sein/ihr Alter und seine/ihre Adresse einmal eingeben und nicht jedes Mal, wenn er/sie die App benutzt. Ein anderes Beispiel ist die Verfolgung gesunder Gewohnheiten im Laufe der Zeit.
TinyDB steht für Tiny Database (Winzige Datenbank). A Datenbank ist eine organisierte Sammlung von Daten. Du als Programmierer/in entscheidest, wie sie organisiert ist.
TinyDB findest du in der Schublade "Speicher" im Designer.
TinyDB ist eine nicht sichtbare Komponente, du wirst sie also nicht auf dem Bildschirm sehen, wenn du sie zu deinem Projekt hinzufügst.
Um auf Daten in TinyDB zuzugreifen, gibst du jedem Datenelement ein Tagso wie du Variablen Namen gibst. Du speicherst und holst den Wert des Tags, genauso wie du Variablenwerte setzt und holst. Dies ist bekannt als ein Tag-Werte-Paar.
TinyDB.StoreValue speichert den neuen Wert in TinyDB. Du musst das Tag und den zu speichernden Wert angeben.
TinyDB.GetValue liefert den aktuellen Wert.
valueIfTagNotThere wird benötigt, wenn zuvor nichts mit diesem Tag gespeichert wurde.
CLOUD-SPEICHER
Cloud-Speicher ermöglicht es jedem Nutzer der App, auf Daten zuzugreifen und sie zu teilen.
App Inventor hat drei praktikable Cloud-Speicheroptionen.
CloudDB ist eine Komponente und ein Datenbankdienst, der von MIT App Inventor bereitgestellt wird.
CloudDB funktioniert genau wie TinyDB. Du speicherst Daten und greifst auf sie zu, indem du Tag-Werte-Paare verwendest.
Der Zugriff auf CloudDB erfolgt über die Schublade Speicher. Sie ist eine nicht sichtbare Komponente, d.h. sie wird nicht auf dem Bildschirm angezeigt, wenn du sie hinzufügst.
Das Speichern von Daten funktioniert genauso wie bei TinyDB.
StoreValue speichert den neuen Wert in CloudDB. Du musst das Tag und den zu speichernden Wert angeben.
Du kannst verschiedene Arten von Daten speichern. In diesen Blöcken ist highScore zum Beispiel eine Zahl. chat ist eine Liste von Nachrichten.
Das Abrufen von Daten funktioniert ähnlich wie bei TinyDB, allerdings mit einem zusätzlichen Schritt. Da sich die Datenbank in der Cloud befindet, muss die App den Wert abfragen und auf eine Antwort warten. Deshalb wird ein Event-Handler-Block benötigt, der signalisiert, wenn die Datenbank mit den Daten antwortet.
GetValue teilt der Datenbank mit, dass die App Informationen haben möchte. valueIfTagNotThere sollte der richtige Datentyp für das Tag sein. Zum Beispiel eine Zahl oder eine Liste.
GotValue wird ausgelöst, sobald die Datenbank mit den Informationen antwortet. Wenn du mehrere Tags in einer App hast, brauchst du einen if-Block, um nach dem richtigen Tag zu suchen, bevor du den Wert verwendest.Das Abrufen von Daten funktioniert ähnlich wie bei TinyDB, allerdings mit einem zusätzlichen Schritt. Da sich die Datenbank in der Cloud befindet, muss die App den Wert abfragen und auf eine Antwort warten. Deshalb wird ein Event-Handler-Block benötigt, der signalisiert, wenn die Datenbank mit den Daten antwortet.
GetValue teilt der Datenbank mit, dass die App Informationen haben möchte. valueIfTagNotThere sollte der richtige Datentyp für das Tag sein. Zum Beispiel eine Zahl oder eine Liste.
GotValue wird ausgelöst, sobald die Datenbank mit den Informationen antwortet. Wenn du mehrere Tags in einer App hast, brauchst du einen if-Block, um nach dem richtigen Tag zu suchen, bevor du den Wert verwendest.
Die Tabellenkalkulation Komponente ermöglicht es dir, von einem Google Sheet zu lesen und zu schreiben. Du musst ein Google Developer-Konto einrichten und einige einige Schritte um deine App mit dem Dokument zu verknüpfen.
Die Komponente Tabellenkalkulation ist in der Schublade Speicher verfügbar. Sie ist eine nicht sichtbare Komponente, d. h. sie wird nicht auf dem Bildschirm angezeigt, wenn du sie deiner App hinzufügst.
Es gibt viele Blöcke, mit denen die App Zellen, Zeilen und Spalten in deiner Tabelle lesen und schreiben kann. Das ist eine gute Option, wenn du über Tabellendaten verfügst, auf die du mit deiner App zugreifen möchtest. Du kannst die Daten auch in Google Sheets anzeigen und bearbeiten, was vor allem beim Testen deiner App hilfreich ist.
Mentor Tipp
Beste Praktiken: Bewahre immer irgendwo ein Backup deiner Daten auf! Es ist sehr leicht, deine Daten zu löschen oder versehentlich zu ändern. Deshalb solltest du eine zusätzliche Kopie an einem sicheren Ort aufbewahren!
Auf App Inventor lernst du den Begriff Tag-Value-Paar kennen, der im echten Leben oft verwendet wird, auch wenn wir ihn Key-Value-Paar nennen! Jetzt kennst du die Begriffe, die die Experten verwenden!
Leitfragen an die Schüler/innen: Was denkst du, wo werden die Daten in der Cloud gespeichert? Du lädst sie auf eine Website wie Google, Youtube, Tiktok usw. hoch, aber wo werden sie danach gespeichert? Wo ist die Cloud? Unternehmen wie Google haben RIESIGE Gebäude mit Computern, nur um Daten in der Cloud zu speichern. Der Witz ist also: "Es ist nicht in der Cloud gespeichert, nur auf dem Computer eines anderen". Der Datenspeicher von Amazon:
Mentorentipps werden durch die Unterstützung von AmeriCorps bereitgestellt.
AKTIVITÄT: SPIELSTÄNDE SPEICHERN
Aktualisiere das Quick-Quiz-Spiel, um Highscores zu speichern
- Öffne das Starterprojekt in der App Inventor Galerie.
Der Link im Video ist falsch! Der Link zum Starterprojekt ist https://bit.ly/appinventor-quick-quiz - Lade sie in App Inventor , damit du deine eigene Kopie bearbeiten kannst.
- Folge dem Video unten, um ein Google Sheet mit deiner App zu verknüpfen und die Highscores der Spieler/innen zu speichern und zu aktualisieren.
CHALLENGE
Jetzt, wo du das Quick Quiz Spiel zum Lesen, Schreiben und Aktualisieren persönlicher Highscores programmiert hast, kannst du:
- Lies die Highscores aller Spieler und finde die höchste Punktzahl aller Spieler
- Berichte diese Informationen an den Nutzer
- mit einem Etikett
- oder füge sie der Warnmeldung hinzu
REFLEXION
Wenn du Daten für deine App speichern willst, brauchst du die Informationen, die du in dieser Lektion gelernt hast. Wenn du anfängst, deine eigene App für dein Projekt zu programmieren, solltest du dir diese Fragen stellen.
in der App,
auf dem mobilen Gerät des Nutzers,
oder in der Cloud zum Teilen
ÜBERPRÜFUNG DER SCHLÜSSELBEGRIFFE
- Datenbank - eine organisierte Sammlung von Informationen
- Cloud-Speicher - Informationen, die im Internet gespeichert werden, so dass jedes mit dem Internet verbundene Gerät auf sie zugreifen kann
- Tag-Werte-Paar - eine Möglichkeit, Informationen in einer Datenbank zu speichern und darauf zuzugreifen
ZUSÄTZLICHE RESSOURCEN
Hier findest du weitere Dokumente und Anleitungen für die Erkundung des Cloud-Speichers in App Inventor.
- Erstellen einer Chat-App die CloudD verwendet
- Erstellen einer Anmelde-App die CloudDB verwendet
- Firebase verbinden mit App Inventor