nicknameの登録、削除した場合、Firebase Realtime Databaseとのデータのやり取りがうまくいかない場合がよくあった。
nicknameの登録関係のブロックを以下のように全て取り出し、相互の関係などを一覧図にまとめてみた。図にまとめてブロック・コードの見直しを行ったのは初めて。自分で作ったとは言え、全体の構造がよくわかった。MIT App Inventor2 の場合、適当にブロックを組み合わせると簡単にアプリらしきものが出来上がる。が、この手軽さゆえに、ブロックが無秩序に作成され、いわゆる「スパゲッティコード」のようになってしまう。今後もコードの見直しを行う際は、まずはブロックを一覧図にまとめた上で行うのがいいかもしれない。
今回の具体的な対応としては、タイミングをとる(次の関数の実行を遅らせる等)Clockを追加したりした。その結果、だいたい期待通り動作するようになった。
(図の中のブロックは小さすぎて識別できないので「感じ」のみ。。。)
また、背景画像を挿入してみた。(Image from Pixabay and photographed by MASTUDIO)
実行中のアプリのビデオは以下の通り。
(前回より安定性が格段に増した。)
**********************************************************************
前回までのブログ(CRUDの内Uを除くCRDを実装):
MIT App Inventor 2で遊ぶ (GlobalChat 4 -追加-)
MIT App Inventor 2で遊ぶ (GlobalChat 4)
MIT App Inventor 2で遊ぶ (GlobalChat 3)
※コメント投稿者のブログIDはブログ作成者のみに通知されます