Amazon Q Developerで理想の家計簿アプリを作ってみた

こんにちは、エンジニアの落合です。

先日のJr.Champions MeetupでKiroを使って家計簿アプリを作ったLTを見て大いに刺激を受けました。

その勢いのままAmazon Q Developer を使って、自分でも家計簿アプリを作ってみました!

 

はじめに

KiroのLTを見たのにAmazon Q Developerでやるのには理由がありまして、未だKiro利用待機列(ウェイトリスト)から抜け出せていないからです……。

利用できるようになったらすぐに触ってみようと思っています。

 

それはともかく、スプレッドシートで家計簿を管理している身としては先述のLTに衝撃を受けました。

Kiroはまだ使えないけど、この機会にまだ使ったことがなかったAmazon Q Developerに手を出してみようと思い立ち、早速PCを立ち上げてcanvaを開きました。

 

家族会議で家計簿アプリの有用性をプレゼンするためです。

熱弁の甲斐あってか、無事にアプリ開発の賛同を得たのでAmazon Q Developerのインストールからはじめることになりました。

 

Amazon Q Developerインストール

基本的に公式ドキュメントを見てインストールを進めました。

特に詰まった箇所はなかったので、詳細は割愛します。

無事にAmazon Q DeveloperのCLIを起動できました。

試しに「家計簿アプリを作りたいです!」と入力してみたところ、画像のような質問項目が出力されました。

これを埋めて回答しただけで技術スタックの候補や今後の手順の一覧を出力してくれました。すごい!

 

実装した機能とこだわり

今回の家計簿アプリには以下の機能を実装しました。

最初はver1.0として上から4つ目までの実装を想定していましたが、想像以上にサクサク開発が進んだため気がついたら機能をたくさん盛ってしまっていました。

  • 収支入力
  • カテゴリ管理
  • グラフ表示(収支の可視化)
  • 収支履歴の管理
  • 認証機能
  • レシート画像からの自動入力
  • 割り勘機能(複数人での支出分担)

UIはシンプルで直感的な操作ができるように設計しました。

開発・運用コストを極力抑えることを意識して無料枠内で完結する構成にこだわった結果、運用コストを0円にすることができました!

 

使用技術・構成

今回開発した家計簿アプリの構成は以下の通りです。

  • 言語:Python
  • ホスティング:Streamlit Cloud
  • DB:Neon
  • 画像認識:Google Cloud Vision API

上にも書きましたが、今回は運用コストを抑えるためにAWSなどのクラウドサービスを使わず、できる限り無料で完結する構成にこだわりました。

Streamlit Cloudは、PythonのフレームワークであるStreamlitで記述したアプリケーションをデプロイできるホスティングサービスです。GitHubにコードを上げるだけで、自動的にWebアプリケーションとして公開されます。今回は無料プランを利用しています。

NeonはサーバーレスでPostgresDBを提供しているDBaaS(Database as a Service)です。Web上でテーブルの確認ができたり、DBのブランチを切り分けたりできます。とても便利です。こちらも無料プランを利用しています。

画像認識には以前から気になっていたGoogle Cloud Vision APIを利用してみました。精度はそこそこですが、レシート認識程度であれば手直しありで問題なく使えています。こちらは無料枠を利用しています。

 

コストについて

今回の開発・運用にかかった費用は、完全に0円です。
Streamlit Cloudの無料枠を活用し、Google Cloud Vision APIも無料枠内で収まる範囲で利用しています。

今後の運用に関しても、基本的にはコストがかからない見通しです。

ただし、レシートの枚数が極端に多くなった場合や何度も読み取りを行う場合にはVision APIの利用料金が発生する可能性があります。

現時点ではその心配はなく、日常的な利用には十分な無料枠内で運用可能である見通しです。

 

完成したアプリのお披露目

実際にAmazon Q Developerに作ってもらったアプリです。

・ログイン画面

ユーザーを選択してパスワードを入力します。

 

・収支入力画面

手動入力かレシート画像認識での自動入力か選択できます。

 

・サイドバー

それぞれのページに移動できるようになっています。

 

・収支履歴画面

収支を入力すると表示されるようになっています。

1件以上項目がある場合、サイドバーに概要も表示されるようになります。

 

おわりに

Amazon Q Developerを使ってみて、まず驚いたのは開発のスピード感です。

対話形式で要件を伝えるだけで、設計からコード生成、コマンド実行まですべて行ってくれるので、わずか3時間ほどでデプロイまで完了しました。

 

特に便利だったのは、必要なコマンドを自動で実行してくれる点です。

ライブラリのインストールやGitHubへのpushなど、手間のかかる作業をAIが代行してくれることで開発に集中できました。

一方で、画像認証機能の実装には少し手間取りました。

また、Amazon Qが「修正しました」と言いながら実際には修正していないケースもあり、AIの提案を鵜呑みにせず、コードやログの確認が重要だと感じました。

短時間で欲しかった機能を実現できたことは非常に魅力的で、今後もAmazon Qを積極的に活用していきたいと思っています!

この記事が気に入ったら
いいね ! しよう

Twitter で

【採用情報】一緒に働く仲間を募集しています

採用情報
ページトップへ