Gemini CLIでAndroidアプリを作るのがめっちゃ簡単だった
Gemini CLIのインストール
以下に簡単にやり方を紹介しましたので、ご参考としてください。
インターネッツをさまよえば、参考になる記事や動画が出てきます。
頑張ってインストールします。
お試し用メモアプリの仕様(実験プロジェクト)
概要
このアプリは、Jetpack Compose と Room を使ったメモアプリの実験用プロジェクトです。
UI構成・状態管理・DB操作の基本を実装しつつ、今後の機能追加(タグ、手書き、スクリーンショット、音声など)にも対応できる構造を意識します。
盛り込みすぎか!?💦
HomeScreen(メモ一覧画面)
- 登録済みメモを一覧表示。
- 各メモの右に「編集(ペン)」と「削除(ゴミ箱)」アイコンを表示。
- 画面右下に「新規作成(+)」FABを配置。
AddNoteScreen(新規作成)
- Home画面の「+」ボタンで遷移。
- 入力項目:タイトル・日付・詳細。
- 「登録」ボタンを押すと Room DB に保存。
EditNoteScreen(既存メモ編集)
- Home画面の「編集」ボタンで遷移。
- 入力項目は AddNoteScreen と同じだが、初期状態として既存データを表示。
- 「変更」ボタンで Room DB のデータを更新。
削除処理
- Home画面で「削除」ボタンを押すと、確認ダイアログを表示。
- 「はい」で該当メモを Room DB から削除。
アーキテクチャ概要
- DB:Room(Entity, Dao, Repository)
- 状態管理:viewModel + uiState
- 画面構成:Jetpack Compose の
Screen
単位
Android Studioで新規プロジェクト作成
New Project>EmptyActivityを選択してNext。
Nameに「Memoco」と入力し、Finish。
プロジェクトが作成されるまでちょっと待つ。
Gemini用「概要説明」ファイルを作成
こんな感じでGeminiに大雑把に作業指示するためのファイルを作って、
プロジェクトの中に入れておく。
ターミナル作業
プロジェクトができたら、おもむろにターミナルボタンを押す!!!!
ターミナルに「gemini」とコマンドを打ってgeminiを呼び出す。
こんな画面が表示されたらGeminiCLIが起動したということです。
一番下のプロンプト入力ボックスに色々書いていくぞーーーー!
Geminiにアプリ作成を依頼する
まずは、作成した概要説明をgeminiに見せたいので、プロンプト欄に「@」と入力。
そうすると、プロジェクト直下にあるファイル一覧が表示されるので、
MemocoSpec.mdを矢印キーで選択し、Enter!
プロンプト欄に「@MemocoSpec.md]と入力されるので、再度Enter!
で、色々考えてくれて・・・・
おおっ!依存関係を追加してくれるんですね!?
この設定、面倒だったんです><
ありがとう🙇♂️
編集するけどいい?みたいなことを聞かれるので、
Yes,allow once!(今回のみよろしく!)が選択されていることを確認してEnter
次にgeminiがこのように編集しますぞ?と見せてくれます。
よければ、Yes,allow onceを選択し、enter
念のためエラーになっていないか実際のファイルを見て確認します!!!
確認するファイルはlibs.versions.tomlとbuild.gradle.ktsかな。
エラーが出ている可能性があるので、SyncNowしてみます。
Roomを使う場合、KSPとKotlinのバージョンと合わせないと実行時エラーになります。
Geminiが書くコードはバージョンが若干古いので、このタイミングで修正しておくと
いいかもと思いました。
次はRoom(DB)を構築してくれるようです。
Yes,allow once!
次に、Noteエンティティ、MpteDaoインタフェース、NoteDatabaseクラスを作成してくれるみたいです。
もちろん、Yes,allow once!
さらにNoteリポジトリを作ってくれました。
コードはちらっとしか見てないけど、順調のようです。
放置してていいのかしら^^;
NoteViewModelも作ってくれるって言っているので甘えます。
自分がコーディングするとこんなに早くここまで作れません。
調べながらとか確認しながらとかやってますので😅😅
MainActivityを更新して、NoteDatabaseとNoteRepositoryを初期化、
NoteViewModelのセットアップ。
さらにNavigation Composeを使用して画面遷移を管理をするそうです。
さすがにコードチェックしてきます!
うーん。
MainActivityにNavHost設定してるー。
Navigationは切り離しているので、なんか違和感。
HomeScreenなどがエラーになっていますが、おそらくこの後実装する予定なのでしょう。
見守ります。
次はUI作っていくようです。
Yes,allow once!
1つ1つの作業が数秒~数十秒で終わるんですが^^;;;;
そして、出来上がったようなので、アプリ起動してみましたが、
KPSの依存関係の問題で実行時エラーが発生しました。
これは自分で修正。
ビルドしなおして、実行してみます。
おお@@;普通にアプリだ。。。
一覧表示、新規作成、編集、削除一通りそろってます。
UIがダサいとか、いきなり削除するとか、一覧表示の並び順とか、
気になるポイントはありますが、完成です。
この記事を書きながらやっていたので、時間がかかっていますが、
数分でアプリ作成が終わったのではないでしょうか💦
この後、正しく画面遷移ができるか?のテストをgeminiCLIに書いてもらいましたが、
めっちゃ苦労していたようです。
アプリはサクサク作ってくれたけど、テストは苦手なのかなって思いました。
私もテスト苦手なんです🤣
Discussion