2020年8月17日月曜日

Amazon Honeycodeでノーコードな家計簿アプリをつくった

要約

  • Amazon Honeycodeでコードを書かずに家計簿アプリをつくりました。
  • 部品をポチポチしながらテーブルからデータを読み出すだけでWeb+スマホアプリが作れます。
  • マニュアルが英語、保守性、保存できるデータ量に課題がありますが、これからの機能拡張と改善に期待したいです。
Honeycodeで作ったスマホ家計簿アプリ


はじめに - 家計簿の話


僕は今2人暮らしです。
お互いが必要な物を買うとGoogle スプレッドシートの家計簿に金額をつけています。
月末にワリカンするため、平均値と合計値を出して、少ない方が多い方に振り込んでいます。

僕たちはこれを2年間やってきたわけですが、デメリットが3つあります。
  1. スマホから入力しづらく、つけ忘れが発生する
  2. 月初めにシートを新しく作る必要がある
  3. 振り込み忘れが発生する

今まで使っていた家計簿

今月で使用3年目を迎えるため、これを機にアプリを作ってみることにしました。

Amazon Honeycodeを選んだ理由


アプリを作るにはいくつも方法があります。たとえばFlutterとか。
ただし、すぐに使えるように1日以内で作りたいです。
そこで、ちょうどはれんちさんにオススメされたHoneycodeで作ることにしました。

Amazon Honeycodeの概要については次の記事が詳しいです。

あとで知りましたが、honeycodeみたいなサービスはいくつもあるらしいです。

どう作った?


次の要領でやりました。
  1. やりたいこと&(理想的な)画面ラフ作成
  2. データ構造の決定
  3. (現実的な)画面作成
  4. 2と3を行ったり来たりして完成

1. やりたいこと&(理想的な)画面ラフ作成


まずは、やりたいことを考えていきます。
  • 家計簿に登録したい
  • 今月いくら使ったか見たい
  • 振り込みは済んでいるのかを見たい
などなど。この時に画面のラフがあるとイメージが湧きます。

2. データ構造の決定


次にデータ構造を考えます。

Honeycodeは、データ構造(表計算)と画面(View)の組み合わせで作ります。
データ構造は本番以降の変更が難しいです。しっかり考える必要があります。
ノーコードアプリの開発者は主にエンジニアではない人だと思います。
ですので、ここは本職の方またはデータ構造の専門家に見てもらった方が良いと思います。

今回は次のようにデータ構造を考えました。

家計簿アプリのデータ構造と画面



データ構造が確定したら実際にテーブルを作っていきます。この時、テストデータを入れておくと次の画面作成でイメージが膨らむので便利です。

テーブル例


3. 画面作成


honeycodeはデフォルトでアプリ例がいくつかあります。それらの例とやりたいことを比べて参考にしました。
最初に画面を作る時にはウィザードが立ち上がります。データを並べるだけならばウィザードだけで十分だと思います。

次の画面は僕たちが作成した画面です。ウィザードで出てくる要らない部品は消し、必要な部品を足しています。例えば「今月の出費」の直下にある合計と平均を表示する部分は自分で作っています。

画面作成

部品はたくさんありますが、ほとんどの場合は下の3つで足ります。

- Data & Display
    - Data cell ... データを表示する。関数を使って絞り込める。なぜか入力も受け付けられる。
    - Content box ... 表示を出す。この中にData Cellを入れることが多い。
    - Button ... ボタン。ボタンを押したらどうなるかはActionで定義する。

関数はExcelの関数とほぼ一緒です。Honeycodeには便利な関数が追加されているので1つだけ紹介します。僕はこれだけで十分でした。

テーブルのデータをフィルタしたい時に使う。リストされた行が返ってくる。

書き方
=FILTER(table, "condition", [condition_parameters, ...])

例 月初から月末までのデータをフィルタしたい

=FILTER(payment,"payment[date]>=% AND payment[date]<% ORDER BY payment[date] DESC",DATE(YEAR(TODAY()),MONTH(TODAY()),1),DATE(YEAR(TODAY()),MONTH(TODAY())+1,0))


%には3つ目以降のデータが入ります。
ご覧の通りSQLみたいな条件が書けます。これが非常に便利です。

他にも様々な関数がありますので、迷った場合は見てください。ただし英語です。

困ったとき


フォーラムがあります。英語です。悩んでいることは、ほとんどの場合は解決されているか、未実装です。


リリース


2020/08/15(土)時点ではプロジェクトメンバー以外がアプリに触ることはできないようです。ですので、触りたい人はプロジェクトメンバーになる必要があります。

Webアプリは開発画面からアクセスします。
スマホアプリでは専用のアプリをダウンロードします。

課題


作っていた時に感じたHoneycodeの課題感です。
  • 英語しかない
    • 今後改善されると思います。google翻訳に頼りましょう。
  • 通貨計算がドルしかない
    • ユーロもポンドもない。まだベータですので今後に期待です。
  • 簡単にグラフが描けない
  • 無料では1テーブルに2500行までしか入らない
    • 有料でも無限になることはありません。
    • もし大量にデータがあった場合は処理が遅くなるのか、は測定していないのでわかりません。
    • データの追加よりも更新の頻度が多いなら問題ないでしょう。
  • プロジェクトチームが20人まで
    • 無料でも有料でも同じです。
    • 企業で使われる想定だと思うので、チームメンバーでなくても触れるようにするか、チームメンバーを増やすかしていただきたいです。
  • 保守が難しくなる可能性が高そう
    • 場合によりますが、コードがないことも起因するのか保守が独特な感じがします。
    • ロジックを分散して書きすぎると、どこにロジックがあるか分からず、保守性が落ちると思います。
      • できる限り、テーブル側にロジックを持たせて、画面では簡単な表示にした方が良い印象です。
    • またテストを書き残せないので、例えば「テストテーブルを作って本当に動くか確かめてみよう」は本番稼働後には難しいと思います。
      • 事前にたくさんテストしましょう。

さいごに


Google スプレッドシートで管理していた時よりも楽に家計簿をつけられています。
スマホから簡単に操作できる点が素晴らしいです。
数年後にはリプレースしようとは考えていますが、現状ではベターな選択肢の1つだと思います。
なにより、実現することないソフトウェアよりも動くソフトウェアを作る観点でみると、ITリソースが足りていない状況では素晴らしい力になると思いました。

0 件のコメント:

コメントを投稿