- モバイルアプリから、端末に保存されているデータにアクセスする方法を学びます
- アプリのユーザ間でデータを共有するため、クラウドにデータを保存してアクセスするさまざまな方法について学びます
このレッスンのアクティビティ:
データの長期保存
前回のユニットでは、変数やリストを使ってアプリに情報を保存する方法を学びました。
ただアプリを閉じると、アプリのメモリに保存されていた変数の値はすべて消えてしまいます。
しかし、アプリの実行と実行の間に情報を記録しておきたい場合があるでしょう。 長期ストレージには以下の2つがあります:
ローカルストレージ
アプリを実行するたびに取得される情報をモバイル端末に保存します。
例えば、ユーザーアドレスやゲームのハイスコアなどがあります。
クラウドストレージ
ウェブ(クラウド)上に情報を保存し、すべてのアプリユーザーがその情報にアクセスできるようにします。
例えば、ゲームのリーダーボードやチャットメッセージなどがあります。
ローカルストレージ
ユーザーがアプリを閉じると、すべての変数変数の値はデバイスのメモリから消去されます。
実行の合間にアプリのデータを保存したい場合は TinyDB コンポーネント
TinyDBは、共有する必要のないユーザーの個人情報を保存するために使用できる。
例えば、ユーザーはアプリを使うたびに名前、年齢、住所を入力するのではなく、一度だけ入力したい。 もう一つの例は、健康習慣のようなものを長期にわたって追跡することだ。
TinyDBはTiny Databaseの略。A データベースとは、組織化されたデータの集まりである。プログラマーであるあなたが、どのように整理するかを決めるのです。
TinyDBは、DesignerのStorageドロワーにあります。
TinyDBは目に見えないコンポーネントなので、プロジェクトに追加しても画面に表示されることはありません。
TinyDBのデータにアクセスするには、各データ項目に タグを与えます。変数の値を設定したり取得したりするのと同じように、タグの値を保存したり取得したりします。これを タグと値のペア.
TinyDB.StoreValueは、TinyDB に新しい値を格納します。格納するタグと値を指定する必要があります。
TinyDB.GetValue は現在の値を取得します。
valueIfTagNotThereは、そのタグが以前に何も格納されていなかった場合に必要となる。
クラウドストレージ
クラウドストレージを使えば、アプリのユーザーなら誰でもデータにアクセスして共有できる。
App Inventorには、3つの有効なクラウド・ストレージ・オプションがある。
CloudDBは、MIT App Inventorが提供するコンポーネントおよびデータベース・サービスです。
CloudDBはTinyDBと同じように機能する。タグと値のペアを使用してデータを保存し、アクセスします。
CloudDBはStorageドロワーからアクセスします。非可視コンポーネントなので、追加してもスクリーンには表示されません。
データの保存はTinyDBと同じように機能する。
StoreValueは新しい値をCloudDBに保存します。格納するタグと値を指定する必要があります。
さまざまなタイプのデータを保存できる。例えば、これらのブロックでは、highScoreは数値、chatはメッセージのリストです。
データの取得はTinyDBと似ているが、追加のステップがある。データベースはクラウド上にあるため、アプリは値の取得を要求し、応答を待つ必要がある。そのため、データベースがデータで応答したときにシグナルを送るイベント・ハンドラ・ブロックが必要になる。
valueIfTagNotThereは、タグの正しいデータ型でなければならない。たとえば、数値やリストなどです。
値 がトリガーされます。アプリ内に複数のタグがある場合、値を使用する前に正しいタグをチェックするifブロックが必要です。データの取得はTinyDBと似ているが、追加のステップがある。データベースはクラウド上にあるため、アプリは値の取得を要求し、応答を待つ必要がある。そのため、データベースがデータで応答したときにシグナルを送るイベント・ハンドラ・ブロックが必要になる。
valueIfTagNotThereは、タグの正しいデータ型でなければならない。たとえば、数値やリストなどです。
GotValueは、データベースが情報を応答するとトリガーされます。アプリ内に複数のタグがある場合は、値を使用する前に正しいタグをチェックするifブロックが必要です。
スプレッドシート スプレッドシートコンポーネントを使うと、Google シートから読み書きできるようになります。Google Developer Account を設定し、次の手順を踏む必要があります。 いくつかのステップを実行する必要があります。
Spreadsheetコンポーネントは、Storageドロワーで使用できます。これは非可視コンポーネントなので、アプリに追加してもスクリーンには表示されません。
アプリがスプレッドシートのセル、行、列を読み書きできるようにするために、多くのブロックが用意されている。アプリからアクセスしたい表データがある場合には、良い選択肢です。また、Google Sheetsのデータを表示したり編集したりすることもできるので、特にアプリをテストするときに便利です。
Tip
ベストプラクティス 常にデータのバックアップをどこかに保存しておくこと!データを削除したり、誤って変更してしまうことはとても簡単です!
App InventorではTag-Valueペアという用語を学びますが、これは実際のコーディングでもよく使われます!これで、専門家が使う用語がわかっただろう!
生徒への質問 クラウドデータはどこに保存されていると思いますか?google、youtube、tiktokなどのウェブサイトにアップロードしますが、その後どこに保存されますか?クラウドはどこにありますか?グーグルのような企業は、クラウドにデータを保存するためだけに、巨大なビルにコンピュータを設置しています。だから冗談はこうだ:「クラウドに保存されているのではなく、他の誰かのコンピューターに保存されているだけなのだ。アマゾンのデータストレージ
メンターTipsは、AmeriCorpsから提供されたものです。
アクティビティ:試合のスコアを保存する
ハイスコアを保存するクイッククイズゲームを更新する
- App Inventor ギャラリーでスタータープロジェクトを開きます。
ビデオのリンクが間違っています!スタータープロジェクトのリンクは https://bit.ly/appinventor-quick-quizです。 - それをApp Inventorにロードして、自分のコピーを編集できるようにする。
- 以下のビデオに従って、Googleシートをアプリにリンクし、選手のハイスコアを保存・更新してください。
チャレンジ
Quick Quizゲームで個人のハイスコアの読みとり、書き込みと更新をコーディングしました。では以下のチャレンジはできますか?
- 全プレイヤーのハイスコアを読み、全プレイヤーの最高得点を見つけましょう
- その情報をユーザーに報告しましょう
- Labelを使用する
- またはAlertメッセージに追加する
振り返り
アプリにデータを保存する場合、このレッスンで学んだ情報が必要になります。プロジェクトのために自分のアプリをコーディングし始めたら、以下の質問を考えてみてください。
・アプリ内
・ユーザーのモバイル・デバイス内
・ 共有のためにクラウド内
主な用語のおさらい
- データベース- 整理された情報のコレクション
- クラウドストレージ- インターネットに接続されたあらゆるデバイスがアクセスできるように、ウェブ上に保存された情報。
- タグと値のペア- データベースに情報を保存してアクセスする方法
追加リソース
App Inventorでクラウド・ストレージを検討するための資料とチュートリアルはこちらです。
- チャットアプリ チャットアプリCloudD
- 作成する ログインアプリCloudDBを使用するログインアプリを作成する
- Firebase を App Inventor に接続する