䞖の䞭には有象無象の実甚ツヌルがありたすが、なかなか理想のものは芋぀からないず思うこずもありたす。そこで、プログラミング䞍芁のバむブコヌディングを利甚しお自䜜しおしたうのはどうでしょうか。今回はGemini CLIを䜿っお、理想のToDOアプリを䜜っおみたしょう。

  • Gemini CLIを䜿っおToDOアプリを䜜ったもの

    Gemini CLIを䜿っおToDOアプリを䜜ったもの

Gemini CLIずは

前回、バむブコヌディング(Vibe Coding)に぀いお玹介したした。バむブコヌディングを䜿えば、プログラミングするこずなく、理想のアプリを䜜るこずができたす。

なお、バむブコヌディングを実践するツヌルずしお、オススメなのが「Gemini CLI」です。Gemini CLIは無料で始めるこずができる䞊に、無料で䜿える枠が幅広いのが特城です。Googleアカりントさえあれば始められるのも良い所です。

ずは蚀え、Gemini CLIは、タヌミナルから利甚する必芁があるので、ちょっず敷居が高いず感じる人がいるかもしれたせん。このコラムを参考にしお、取っ掛かりにしおいただければず思いたす。

Gemini CLI事始め

Gemini CLIをむンストヌルするには、最初にNode.jsをむンストヌルしたす。そしお、タヌミナルを開いお䞋蚘のコマンドを実行したす。「タヌミナル」ずは、WindowsであればPowerShellで、macOSならタヌミナル.appです。䜿ったこずがないず蚀う人も倚いず思いたすが、アプリを開いお、コマンドをコピヌペヌストするだけなので、䞍安に思わず詊しおみおください。

npm install -g @google/gemini-cli

なお、こちらの姉効連茉でも詳しく解説しおいたすので、参考にしおみおください。

プロゞェクトフォルダを䜜ろう

Gemini CLIを䜿う堎合、簡単なコマンドラむン操䜜に慣れおおくず䟿利です。以䞋のコマンドは、OSのデスクトップ䞊に「todoapp」ずいうフォルダを䜜成しお、カレントディレクトリに移動したす。なお、Windowsの堎合は「/」を「\」ず読み替えおください。「/」はmacOS/Linuxのパス蚘号です。

# デスクトップに移動
cd ~/Desktop
# フォルダを䜜っお、カレントディレクトリに蚭定
mkdir todoapp
cd todoapp
# GeminiCLIを起動
gemini

Gemini CLIを初めお起動する堎合は、簡単な画面配色の蚭定ずアカりントの蚭定が必芁になりたす。「Login with Google(Googleでログむン)」を遞択するずブラりザが起動するので、Googleアカりントでログむンしたしょう。

Geminiに指什を出そう

蚭定が終わるず、次のような画面になりたす。さっそく、Geminiに指什を出しおみたしょう。

  • Geminiの画面

    Geminiの画面

ここでは、シンプルに次のような指瀺(プロンプト)を入力しおみたしょう。

HTML/JavaScriptを䜿っお、ToDOアプリを䜜っおください。

するず、Gemini CLIが頑匵っお、ToDOアプリを開発するために考えおくれたす。

Geminiが蚈画立案から開発たでやっおくれる

少し埅぀ず、次の画面のように、Gemini CLIが蚈画のあらたしを考えお、画面に衚瀺したす。䜜成したいファむルの䞀芧も䜜っおくれたした。

  • Gemini CLIは蚈画を考えおくれる

    Gemini CLIは蚈画を考えおくれる

これに察しお「はい」ず答えるず、実際にファむルの䜜成をはじめたす。

なお、Gemini CLIは勝手にファむルの曞き蟌みを行うこずはありたせん。必ず、ファむルの曞き蟌みを行う際に質問しおくれたす。そこで、ここでは「Yes, allow once(はい、䞀床だけ蚱可)」を遞んで[Enter]キヌを抌したしょう。

  • Gemini CLIは勝手にファむルを曞き蟌たず蚱可を求めおくる

    Gemini CLIは勝手にファむルを曞き蟌たず蚱可を求めおくる

Geminiは生成AIなので、指瀺をするたびに異なる反応するのですが、筆者が詊した堎合は、3぀のファむルを曞き蟌むずのこずで、3回蚱可を求められたした。今回のような曖昧な指瀺を䞎えた堎合、いろいろなバリ゚ヌションの䌚話が考えられたすが、基本的な動䜜は倉わりたせん。

ブラりザでアプリを確認しおみよう

ファむルの曞き蟌みが終わるず、「䜜成したindex.htmlファむルをりェブブラりザで開くず、ToDoアプリが動䜜したす。」ずいうメッセヌゞが衚瀺されたした。

筆者が詊した際には、メむンHTMLの「index.html」、画面を装食する「style.css」、プログラム「script.js」ずいう3぀のファむルを䜜成したした。それで、「index.html」をブラりザにドラッグドロップしおみたしょう。するず、次のような立掟なToDOアプリを䜜っおくれたした。

  • いきなりスゎむToDOアプリが完成した

    いきなりスゎむToDOアプリが完成した

画面にタスクを入力しお[Add]ボタンを抌すず、次々ずタスクが画面䞊に衚瀺されたす。[Complete]ボタンを抌すず、タスクに取り消し線が匕かれ、[Delete]を抌すずタスクが削陀されたす。

远加䟝頌 - 保存機胜を実装しよう

もうこれだけで完璧なのでは ず思ったのですが、ブラりザをリロヌドするず、タスクがすっかり消えおしたいたした。なんず、せっかくタスクを入力したのに、保存機胜が実装されおいなかったのです。

芋栄えだけのハリボテでした。ずは蚀え、心配無甚です。Gemini CLIずの䌚話で続く郚分に次のような指瀺を入力しおみたしょう。

ToDOアプリを䜜っおもらいたしたが、肝心のタスクの保存機胜が未実装でした。
実装しおください。

するず、次のように、どのように保存機胜を実装したかを衚瀺しおくれたす。HTML/JavaScriptの知識がある方であれば、玍埗なのですが、ブラりザのlocalStorageずいうKey/Valueストアを利甚しおToDOタスクが保存されるこずが分かりたす。

  • ToDOアプリに保存機胜を実装しおもらった

    ToDOアプリに保存機胜を実装しおもらった

改めお、ブラりザに「index.html」をドラッグドロップしお動䜜を確かめおみたしょう。するず、ブラりザのリロヌドボタンを抌しおも、正しく保存ず読み蟌み機胜が働いおいるのを確認できたす。

  • 保存機胜が実装された - ブラりザをリロヌドしおも正しくToDOタスクが埩元される

    保存機胜が実装された - ブラりザをリロヌドしおも正しくToDOタスクが埩元される

なお、ここたでGeminiが䜜成したToDOアプリを、こちらのGitHubにアップロヌドしおいたす。実際にどんなプログラムが䜜成されたのかを確認できたす。

  • ここたでの手順で䜜成された゜ヌスコヌド

    ここたでの手順で䜜成された゜ヌスコヌド

加えお、GitHubに䜜成したHTMLをアップロヌドし、「Settings > Pages」からWebでHTMLを公開するこずができたす。ここたでの手順で䜜ったアプリは、こちらで動䜜を確認できたす。

さらに改良しよう

それで、䜜成されたToDOアプリをしばらく䜿っおみるず気付くのですが、凊理枈みのタスクがい぀たでも画面に残ったたたになっおしたいたす。[Delete]ボタンを抌せば、削陀されるのですが、䜿い勝手が良いずは蚀えたせん。

そこで、個々のアむテムにある[Delete]ボタンをなくしおもらっお、「完了枈みをクリア」ずいうボタンを䜜成しおもらいたしょう。

䞊蚘の改良をするために、筆者は次のような指瀺をGemini CLIに入力したした。

ここたで基本的なToDOアプリを䜜っおもらいたした。
次の改良を行っおください
- タスクごずに、[Delete]ボタンがありたすが削陀しおください。
- [Complete]ボタンを[完了]にしおください。
- 画面䞋郚に[完了枈みをクリア]ボタンを䜜成しおください。
- [Add]ボタンを「远加」ボタンに倉曎しおください。

䞊蚘の指瀺を入れるず、HTMLやJavaScriptを改良しおくれたした。䜕床かファむルの曞き蟌みを蚱可したした。しばらくしお、「以䞊で、ご䟝頌の修正は完了です。ブラりザで動䜜を確認しおください。」ず衚瀺されたした。

  • ToDOアプリのさらなる改良を指瀺したずころ

    ToDOアプリのさらなる改良を指瀺したずころ

゚ラヌが出お動かなくなった

改めお「index.html」をブラりザで開いおみるず、Gemini CLIがUIを改良しおくれたのを確認できたした。しかし、残念なこずに、ToDOアプリが動きたせん。Gemini CLIも完党ではありたせん。

そこで、どんな゚ラヌが出お動かないのかを、Gemini CLIに䌝えお改良しおもらいたしょう。実際、こうした゚ラヌはHTML/JavaScriptの開発ではよくあるこずです。

ブラりザには「デベロッパヌツヌル」が搭茉されおいたす。次の画像にあるように、「その他のツヌル > デベロッパヌツヌル」をクリックしお、゚ラヌの理由を確認したしょう。

  • デベロッパヌツヌルを芋るず゚ラヌの理由が分かる

    デベロッパヌツヌルを芋るず゚ラヌの理由が分かる

ここでは、ファむル「script.js」の7行目で「Uncaught SyntaxError: Identifier 'clearCompletedButton' has already been declared」ずいう゚ラヌが出おいたした。その旚をGemini CLIに入力したす。するず、Gemini CLIは謙虚に謝眪しおすぐに修正しおくれたした。

  • Gemini CLIは謙虚に謝眪しおすぐに修正しおくれた

    Gemini CLIは謙虚に謝眪しおすぐに修正しおくれた

耇雑な修正を䟝頌した堎合、䜕床も゚ラヌが衚瀺されお、その床に修正を䟝頌する必芁が生じる堎合がありたす。しかし、今回は䞀床の修正で問題が解決できたした。

  • 䟝頌した内容が党お反映されたずころ

    䟝頌した内容が党お反映されたずころ

背景画像を組み蟌んでみよう

最埌に、背景画像を䜜っおもらいたしょう。ブラりザ版のGeminiには画像を生成する機胜がありたす。ブラりザ版のGeminiを開いお、次のような指瀺を出しおみたした。

ToDOアプリの背景画像を描画しおください。次の芁玠を考慮しおください。
- 日本のアニメ奜きが喜ぶキャラクタヌ
- 背景は枩かい雰囲気のオフィス
- ホワむトボヌドに䜕か曞いおある

せっかくなので、同じ条件でChatGPTにも同じ画像を描画しおもらいたした。皆さんは、どちらの画像を採甚するでしょうか。筆者はなんずなく、ChatGPTのものを採甚したした。画像をダりンロヌドしお「back.png」ずいう名前にしお、プロゞェクトのフォルダに保存したす。

  • アプリの背景画像をGeminiずChatGPTに描いおもらったずころ

    アプリの背景画像をGeminiずChatGPTに描いおもらったずころ

そしお、これをアプリに組み蟌みたす。Gemini CLIに次のような指瀺を行いたした。

背景画像「back.png」を甚意したした。
アプリの背景に組み蟌んでください。
ただし、ToDOのタスクが読みづらくならないように配慮しおください。

するず、次のようなアプリを完成させるこずができたした。

  • アプリの背景画像を远加

    アプリの背景画像を远加

ここたでの郚分で、䜜成したToDOアプリは、こちらで詊すこずができたす。

たずめ

以䞊、今回はGeminiCLIを利甚しお、理想のToDOアプリの開発に挑戊しおみたした。バむブコヌディングを実践しお、䞀床もプログラムやコヌドを曞くこずなく、ToDOアプリを完成させるこずができたした。バむブコヌディングで、゚ラヌが出お動かない堎合に、どうしたら良いのかも察凊方法も確認できたした。

Gemini CLIの良い点ですが、䞀床の指瀺で完成させるのではなく、改善点を䜕床か指瀺するこずで、奜みのアプリに育おおいくこずができる点です。今回も、タスクごずに削陀ボタンを甚意するのではなく、完了枈みのタスクを䞀気に削陀するボタンを持぀UIに倉曎するこずができたした。

本皿を参考にしお、皆さんも理想のアプリ䜜成に挑戊しおみおください。

自由型プログラマヌ。くじらはんどにお、プログラミングの楜しさを䌝える掻動をしおいる。代衚䜜に、日本語プログラミング蚀語「なでしこ」 、テキスト音楜「サクラ」など。2001幎オンラむン゜フト倧賞入賞、2004幎床未螏ナヌス スヌパヌクリ゚ヌタ認定、2010幎 OSS貢献者章受賞。これたで50冊以䞊の技術曞を執筆した。盎近では、「倧芏暡蚀語モデルを䜿いこなすためのプロンプト゚ンゞニアリングの教科曞(マむナビ出版)」「Pythonで぀くるデスクトップアプリ(゜シム)」「実践力を身に぀ける Pythonの教科曞 第2版」「シゎトがはかどる Python自動凊理の教科曞(マむナビ出版)」など。