日直地獄

小学校では事件が起きる

AppSheetでパッケージ(収納)マネージャを作った。AppSheetは家庭の課題を解決するアプリを作るのにおそらく便利

AppSheetとは…Googleが(買収して)提供している、いわゆるノーコード開発ツールというやつですね。

ノーコードって、作り始めたら逆に細かいところで詰まったりして面倒になるんでしょ、スコシコードカケル人材である私には関係ないと思って過ごしておりましたが、そろそろいいかと思って触ってみた所、完全に評価を翻しました。初めてAppSheetを触ってから目的のアプリが完成するまで2時間でできました。舐めててごめんなさいという気持ちになりました。

今回AppSheetで作ったアプリケーション

収納マネージャです。年に数回しか使わないモノを段ボールに詰めて収納したものの、どの段ボールに詰めたのか、またそのダンボールがどこにあるのか、ダンボールを開けて探し回る…なんてことはないでしょうか。私は結構あります。先日、ずっと探していた子供の冬用の寝間着を発見しました。かなり遅いです。その頭の不出来を補完するアプリケーションです。出来上がりはこんな感じになります。

f:id:AirReader:20210507181204p:plain:w300f:id:AirReader:20210507181209p:plain:w300

作る際にやったこと

まずはサンプルアプリをコピーして、仕組みを理解します。
大体理解したら、問題解決のために、どのように情報を管理すると良いか、どのようなデータが必要かを考えます。今回の問題は極めて単純で、悩むところはありません。

  • 実際に収納したもの (item)
  • ものを収納する段ボール(package)
  • 収納場所(location)

の3つがあれば問題が解決できるはずです。また item - package - location という形でデータがひも付けば良いはずです。

データが決まったらSpreadsheetにシートや必要なカラムを追加していきましょう。細々したものを全部itemとして登録するのは面倒なので、itemには写真を登録できるようにしよう、などを考えてカラムを追加すると良さそうです。

f:id:AirReader:20210507180031p:plain:w500
こんな感じで適当に


そしてそれを、AppSheetにテーブルとして取り込みます。と、カラムが追加され、以下のようになるので

f:id:AirReader:20210507180222p:plain:w500
ある程度勝手に型を指定してくれたと思う…確か…

カラムに適切な型を指定してあげましょう。テーブルが作成されるとAppSheet側で勝手にデータの追加フォームを作ってくれるんですが、例えば型にImageを指定すると、自動で写真アップロードのフォームになったりするので、ここでの指定は重要です。
また、他のテーブルを参照したりすることも可能ですし、REF_ROWS関数などを使うと、例えば「あるpackageに含まれているitemのリストを表示する」ということも簡単にできます。

f:id:AirReader:20210507181802p:plain:w500
Type:Refで、ほかテーブルを参照する場合は、Columnsの鉛筆マークから設定できる

これでだいたい動くようになるので(細かいUIの設定は必要だけど、一覧ページ、詳細ページ、追加ページなどは全部勝手に作ってくれる)、ログインユーザーに絞り、ユーザーを招待したりして公開範囲の制限を設定して、デプロイする。そうすると家庭内アプリの完成です。便利ですね。

AppSheetの良いところなど

  • 家庭で管理したいよしな事は、これくらいシンプルに解体できるはず。おそらくAppSheetの射程にピッタリだと思う
  • 素早くアプリケーションが作れる。普通にアプリケーションを書くと、ストレージをどこにするやら、ライブラリ何使うかみたいなところで頭を使ったりするので結構時間がかかる。AppSheetにはその時間が不要
    • PC、スマホに対応に頭を悩ませなくて良い
  • 上記の用途なら無料でいける
  • 誰が操作したか、を残したい場合は有料になったり条件があった(今回、これで満足したので全然調べてない)