75才からのモバイルアプリ作成

MIT App Inventorを使ったアプリ作成

MIT App Inventorで遊ぶ (Journal アプリ4 D / REST API)

2024-03-29 15:24:59 | 日記

まだ、ユーザーフレンドリーに欠ける点があるが、一応、CRUD(新規データ保存、データ取得、データ更新、データ削除)が出来るアプリとなった。「Save」「Update」「Delete」ボタンをタップした後、最新のデータがリアルタイムで表示されるようになった。しかし、タイミングが合わない場合は、「NOT FOUND」と表示されることがたまにある。

例えば、データ保存の場合、「保存」=> 「Tag(ID)リストの取得」=> 「データの取得」と3回データベースとの間にやりとり(セッションと言った方がいいのかな)があるが、データベース側で保存の処理が終了しないのに、データ取得をしようとしたりするのが原因ではないかと思う。確かなことは分からない。

ネットワークでは、多分こんなことはよく起こることだと思うので、このような場合のエラー処理を検討したい。そう言えば、今まで、まともにエラー処理は考えたことがない。(response codeが200の場合-成功-を除いて。これはチュートリアルに記述してあったので、そのまま使っているだけ)

実行画面(これは、たまたま上手く行った時のキャプチャー):

スクリーンのデザイン:

「Delete」ボタンと「Reset」ボタンを追加した。

                                     

プログラム(ブロック):

「Delete」ボタンに関係のある部分のみ

1. ボタンのオリジナルカラーである薄緑色を返してくれる procedure "originalGreenColor" を定義。procedureには2種類ある。「return」があるprocedureは、procedure の結果を返してくれる。「do」はprocedureを実行するだけ。

procedure "updateData" はボタンを初期の状態に戻すもの。

2. データを削除

    Web4 componentのターゲットとするURLにIDをセットする。

    HTTP DELETEリクエストにより同IDも持つデータを削除。

    その後、再度削除後のTagリスト(callGetTag)、そして削除後のデータ(getData)を取得しListViewに表示することになる。

    Clockを使って、800ミリ秒の余裕を設け、タイミングを調節している。

まだまだ課題はありそう。