1. ゆるITエンジニア道場
  2. #9 AIで100日間アプリ開発を続..
2025-06-13 21:54

#9 AIで100日間アプリ開発を続けた話がバズった!ので裏側を紹介

Cursor で100日間アプリを作り続けた中で、全然うまくいかなかったこと という記事がXでバズったので、どんなことを考えてチャレンジを過ごしていたのかについて語ります!

00:01
こんにちは、Riddleです。
こんにちは、ひびのです。
皆さん、ちょっと聞いてください。
はい、何でしょう。
今日、僕のXのツイートがバズりまして、
何でバズったかというと、
私、LMMを使って100日間毎日アプリを作るってことをやってるんですよ。
で、それの記事を書いたんですけど、
これ注意しないとまずいよ、みたいな。
その記事がめちゃくちゃバズって、
テラブックマークでもテクノロジーカテゴリーでトップになったり、
総合でも今2位にいるんで、
ちょっとこの機会を逃す場合と思ってポッドキャストを撮ってます。
素晴らしい。おめでとうございます。
はい、で、今日は、
何でそもそもこの企画をやろうと思ったんだっけ、みたいなところとか、
実際にその何に困ったとか、
こういう学びあったよ、みたいなところを
ちょっと話せればいいかなと思っています。
ちなみに、
まだ、あの、はい。
どうぞ。
まだ60日目ぐらいなんで、
実際に100日やってないんですけど、
ちょっとそこはご愛嬌ということを許してください。
はい、で、そもそも何で始めたか、みたいな話なんですけど、
これはですね、大塚亜美さんっていう当時大学生の方が、
学校の授業でチャットGPTを使ってゲームアプリを作っていたら、
それを表示が面白がってくれて、
100日間毎日チャットGPTを使ったアプリを作ったっていう本があるんですけれども、
ちょっとその本を読んで、
自分も何かしたいなと思ったんですよね。
はい、話題になりましたもんね、あの本。
はい。で、せっかくだから自分もなんかプロのソフトウェアエンジニアとして
何かできることないかなと探したときに、
バックエンドでいろんな技術あるけど、
使ったことないもの結構あるし、
作ったことないものもいっぱいあるよね、
ってところで掛け合わせて、
何が自分だったら何ができるんだろう、
みたいなところで始めたのが最初です。
おお。
ちなみにじゃあ100日バックエンドチャレンジをやるということは、
100個お題を持っていらっしゃるということですよね。
お題は何も別に持ってなくて、
毎回即興で考えたり、
AIに考えてもらったりって感じですね。
うーん、なるほどなるほど。
なので最初はもう本当に単純に
ToDoアプリを作ってもらいました。
このときは確かCopilot Agentだったかな、
に作ってもらったんですけど、
めちゃくちゃ失敗しましたね。
なんでかっていうと、
GoとNext.jsで使ってやってたんですけど、
Goでクリーンアーキテクチャを結構仕事では使っていたので、
クリーンアーキテクチャを使い、
オープンAPIでスキーマ作って、
API定義してもらった後に、
そこでコードジェネレートでAPIクラウドを作って、
Next.js側から呼び出して、
で画面作ってもらうみたいな感じでやってたんですけど、
これがマジで全然うまくいかなかったんですよね。
具体的にはどううまくいかなかったんですか?
これちょっと分かっている人にだけ伝わるかもしれないんですけど、
Goで結構オープンAPIを使ったりとか、
スキーマ駆動開発みたいなことをやると、
03:00
あいまいまにGoをジェネレートみたいな、
ファイルを生成するコマンドを叩かなきゃいけないんですよ。
そうですね。
ってことは、人の場合は手順が分かってて、
それやればいいっていう感じなんですけど、
AIにそれを指示して作らせると、
なんかうまくいかないんです。
何がうまくいかないかっていうと、
コードを生成してくれはするんだけど、
APIを作った後にハンドラーを作って、
ハンドラーの中を埋めて、
その後ハンドラーの中のユースケースとか
ドメインを定義してリポジトリ用みたいなことを
ずーっとやってると途中でバグってきて、
全然違うことをしだしたり、
何だったらDay1やってるはずなのに、
Day2の新しいことをやり始めたりとか、
マジで意味わかんない挙動をしてきて、
本当まともに動くものが全然できなかったんですよ。
なので結果的にできたToDoアプリも、
自分で絶対に時間かけて作った方が
高クオリティなものができるなっていうレベルのものしかできなくて、
だいぶだいぶコーディングには
当日は落胆しましたね。
でもそこからDay2を始めるモチベーションを
保ったのは偉いですね。
100日やるって言っちゃったんで、
やるかーって感じがあってかかったですね。
2日目は何を作られたんですか?
2日目はSNSかな?
Xみたいなタイムライン型の…
あ、違う。ごめんなさい。これ3日目だ。
2日目はですね、ECサイトですね。
いわゆるデータベースのテーブルの設計を
ちょっとECサイトはどんな感じになるのかな
みたいなのを学ぼうと思って作ったんですが、
前日の反省を考えてですね、
もうNext1本で行くことにしました。
ちなみにその時参考にされた
ECサイトとかあるんですか?
いや、全然なんもなくて、単純にNextで
APIと画面作ってもらって
SQLiteにデータを持たせて
Prismaでアクセスするっていうことだけ決めて、
あとはもう完全に自由にやってくれる感じで
やってましたね。
なるほど。じゃあ、例えば
ECサイトを作ってくれみたいな指示を出して
LLMがどんなECサイトのスキーマを生成するか
っていうところを見たかったって感じですね。
そうです、そうです。
こだわったポイントとしては、
商品画像とかどこから持ってくるのがめんどくさいんで、
SVGをいい感じに組み合わせて作ってくれるように
LLMに依頼して、商品を100個ぐらい登録したけど
全部違うSVGで動的に生成された
商品画像みたいな感じで作ったっていうのが
2、2日目でしたね。
面白いですね、それは。
すごい上手くいったんで、
1日2時間だけやるって決めてたんですけど、
多分1時間ぐらいで完成したんで、
調子に乗って金額とかAmazonって
動的に変わったりするじゃないですか。
昨日は安かったけど、今日は高いみたいな。
はい、ありますね。
なので、バックグラウンドで勝手に金額を
ちょこちょこ入れ替えるアルゴリズムを
作って動かしてもらって、
06:00
その結果を商品の一覧ページじゃなくて
商品の詳細ページみたいなところに飛ぶと
価格の上下している様子が
グラフィカルに見えるみたいな機能も
追加してもらったりして、
それも本当にちょっと依頼するだけで
作ってくれたんで、
これがViveコーディングなのかっていうのを
2日目にしてやっと知りましたね。
面白いですね。
そしてViveコーディングの面白さに
たどり着いたわけですね、Day2にして。
この辺からカーソル、
まあちょっと人によってはカーソルって
言ったりもすると思いますけど、
今回はカーソルでいきますが、
使って当時はたぶん
Geminiの2.5か2.0の
プレビューみたいなやつを使ってたかな
ちょっとどっちかあんま覚えてないんですけど
それでXのタイムライン型の
SNSを作ったりしてましたね。
3日目のSNSですね。
この日はサーバーサイドイベントだったかな
ちょっと名前詳細に覚えてないんですけど
SSEって呼ばれる
バックエンド側の技術で
クライアントに対して
イベントを発火して
更新を通知するみたいな
そういう技術があるんですけど
それ使ってSNS作れないかな
みたいので作ってもらったりしたんですけど
これはちょっとバックエンドの処理が
結構複雑だったので
そこをうまく組んでもらって
作るっていうのに苦労しましたね。
ちなみにその
SSEを使うっていうところは
リドルさんが選定したんですか
それともLLMが?
はい、これ私ですね。
なるほど。
なんかイスコンの14ってやつに
イベント出た時に
ちょうどSSEを問うてくる問題がありまして
その時知らなかったんで
それだけ知らないということだけ覚えてたんで
じゃあ実際に使ってみようみたいな
モヤモヤをこの3日目でLLMに
果たしてもらったみたいな感じですね。
実際その
知らなかったSSEについて
バイブコーディングを通じて
理解はできたんですか?
ざっくりここで何かイベントを
エミットして
ここで受け取ってるんだな
みたいなことは何となく分かったんで
自分でそれをもう一回
書いてくださいって言われたら
書けないんですけど
何となく動きとしては
こういう感じなのかな
みたいなところは
分かったって感じですね。
いいですね。
実装の流れをその場で
自分で眺められるのもいいですもんね。
そうですね。
これをきっかけに
知らんことを作ってもらって
学ぼうみたいな意識が
結構より強くなりまして
その後は全然自分が知らなかった分野のものを
結構作ったりしてもらいました。
4日目だと何を作られたんですか?
4日目何かは見ないとは
方言なんですけど
その後なんか
例えばTCPIPを作ってもらったりとか
RDBMS
リレーショナルデータベースの仕組みとかを
作ってもらったりみたいなこともしましたし
後は何だろうな
09:00
当時で言うと
API Gateway作ってもらったり
あとGoogleドキュメントって
複数人で一緒に更新できると思うんですけど
あの仕組みをちょっと作ってみたりとか
そういうこともやっていましたね。
だいぶいろんなものを作った。
そしてどんどん徐々に複雑な技術に
進歩していきますね。
そうなんですよ。
どんどん複雑になってくると
ここで初めての失敗に遭遇するんですよ。
初めての失敗が
ちっちゃいことで言うと
RDBMSのトランザクションの機能を
実装するっていうのが
失敗だったんですけど
一応RDBMSとしては作れてたんで
一旦いいかって感じでごまかしたんですけど
その後に
OSを作った時に
ニッチもサッチもいかなかったんですよね。
それはどういった点で?
よく本とかで
30日でOSを作るみたいな本があって
それを1日ずつちょっとずつやって
画面が映ったとか
なんか動くようになったみたいな感じのものがあって
自分も挑戦したことがあるって
ただ2日目ぐらいに挫折するんですよね。
それを何とかやってやろうと思って始めたんですけど
いかんせん別にOSを作る知識一切ないので
C言語で書いてもらったんですけど
別にどこでこけても何もわかんないんですよ。
そうなってくると
全部LLMに頼らないといけないんですよ。
大塚アミさんが偉いのは
大塚アミさんの場合は
自分がわからないことは
ちゃんとクリアにして調べてから
ChatGPTに指示を出して
次回に活かすみたいな感じだったんですけど
自分はそういうこと一切せずに
一切調べなかったんですね。
だからOSでこういう機構欲しいけど
エラーで失敗してて
エラーの内容はよくわかんないけど
それは調べずに
エラーの内容そのまま
もう一回カーソルに投げて
直してもらうみたいなことを
ひたすらやってる感じだったんです。
そうなってくると
沼にはまるんですよ。
ひたすら似たようなエラーと格闘しながら
OSの場合って
起動確認がめんどくさくて
通常の例えばウェブサーバーの場合だと
ホットリロードみたいな機能があるんで
すぐに画面の変化がわかったりとか
プレイライトMCPみたいなものを使えば
その画面の状態を
LLM側が認識してくれて
今こうおかしいですね
こう直しますみたいなことを
言ってくれたり
npm run devみたいなコマンドで
出てくるログとかを
そのまま呼び込んでくれるんで
LLMが
それで勝手に動いてくれるんですけど
OSの場合は
QEMUっていうエミュレーターが
別画面で急に立ち上がり出して
なんとかOSスタートみたいな画面が
出るんですけど
そこで何かエラー出しても
一切読み込んでくれないんで
それで自分でこう見て
多分こういうこと起きてますみたいなことを
12:00
書いて進めないといけなくて
それで全然進まずに失敗しましたね
LLMが作ったもの
複雑なものをどんどん積み重ねて
自分でも
手が出せない領域になってきた
っていう感じですね
そうですね
そういう意味で言うと
NEXTをずっと使ってるんですけど
未だに一行も理解してないので
知らないものを積み上げたのは
ずっとそうなんですけど
OSになるとさすがに複雑度が高すぎて
勘どころすらわからず
どうやって解決しようかなみたいなので
東方にくれたって感じですね
ちなみにOSを作るってなると
多分何だろう
位置を出す側も最低限
OSの構成だったりとか
あとどういう手順で
なんとなく作ればいけるんじゃないかな
みたいなところをある程度
把握しなきゃいけないと思うんですよ
そこもLLMに最初任せてたんですか
それともリドルさんが
ざっとさらってから進めたんですか
僕はOSの作り方知らないので
全部LLMですね
なるほど
保管するという意味で
OSを作るみたいな前の記事があったり
作り方みたいな本というか
GitHubのリポジトリがあったりするので
そういうものを先に参照してもらって
LLMに
ある程度学んでもらって
似たようなことやりたいな
みたいな指示を出したりしましたね
完全にLLM駆動OS開発ですね
そうです
当時Geminiの2.5を使ってたんですけど
その辺の仕様の立て方というか
手順の進め方は
ChatGPTのO3の方がだいぶ良かったので
O3に作ってもらったやつを
Gemini 2.5にレビューさせたり
2.5で作ってもらったものを
O3にレビューさせたりみたいな感じで
手順はちゃんと
自分が全く分からなくても
LLM的にOKと言えるものを
ちゃんと作ってもらってやってました
複数LLMのレビューを通った
手順で進めたってことですね
そうですね
なのでOS作ってて
途中で詰まった時は
いろんなLLMを切り替えて
何とか先に進めようともしてました
それでいうと
複数LLMの中で
OSを作るのに向いてたLLMってありました?
当時は結局
最終的にうまくいってないんで
どれも向いてなかったっていうのが
答えになるんですが
その後
40日後ぐらいかな
クロードソネットの4を使った時に
特に詰まらずに作れたんですね
すごいですね
特に詰まらずに
ちょっと言い過ぎかもしれないですけど
ある程度自分で
事実的に解決して
作れたので
そういう意味では
クロードソネットの4が
一番向いてますね
なるほどなるほど
晴れてクロードソネットのおかげで
OSチャレンジもクリアできた
そうなんですよ
そんな感じで
他にも失敗してた
15:01
OIDCのプロバイダーって言われる
認証認可の技術でよく使われる
OOSとかOIDCみたいなものの
プロバイダーも
当時作ったりしてたんですけど
それもうまくいかなかったのが
クロードソネットのおかげで
うまく行かれましたし
まさかのクロードソネットの登場が
ブレイクする
そうなんですよ
ちなみに
OSって割とソフトウェアエンジニアが
作るものの中で
最高峰みたいな
イメージがあって
OS作ったら
もう満足しちゃいませんか?
だから自分がとりあえず
一通り全部作ってみよう
みたいなところがあったので
まだ作ってないものに関しては
あるからまだ満足してない
という方が近いかもしれないです
これで言うと
OS作って以降のネタ出しって
結構困りませんか?
ネタ出し自体は結構
AIに依頼してまして
自分はルールファイルで
今まで何を作ったかって
管理してるんですけど
それをベースに
AIに次何作ると勉強になるかな
って聞くといろいろ教えてくれるので
そこから興味あるものとか
聞いたことあるけど裏側知らないよね
みたいなもの結構まだあるので
それで結構成り立ったりしてますね
なるほど
学びがつきないですね
そうなんです
でも一応OS作って
ファイルシステムを作って
IPからTCP、TLS、HTTP作って
データベース作って
あとプロキシとか
ネットワーク系のもの作ったりとか
いろいろしたので
割と普段使うものに関しては
一通りAIが作ってくれたという
実績は解除したんで
次何やろうかなって割と
やっぱり最終日に向かうにつれて
次AIを作るべきじゃないですか
いやそうですね
ラグは作ったんですよ
ただLLMは作ってなくて
LLMにLLMを作らせるって
確かに面白いよ
最終日やろうかな
最終回リドルさんがLLMを作る
いや僕が作んないですよ
LLMが作るんですよ
リドルさんが支持したLLMが
でもそれだけで
記事のネタにもなりますもんね
そうですね
作れるのかな
全然分かんないけど
LLMでLLMを作ってみました
まだ見たことがない気がします
確かに
どうなんだろうやってるのかな
クロードのチームとかは
クロードを使って
クロードを作ってるんですよね
そんなこと
そうですよね
オープンAIのCodeXのチームも
開発者向けのツールとして
内製されていたものを
読み出したみたいな感じらしいですね
いろいろやってみたんですけど
意外にこれ簡単なのかなと思ったやつが
めちゃくちゃ大変だったりしたのも発見で
18:01
これ簡単
実は別に簡単じゃねえ
って気もするんですけど
マージャンを作ってもらった時は
大変でしたね
それはどういった点で
そもそもマージャンのルールが複雑すぎて
これをLLMが全部実装するのに
めちゃくちゃ時間かかるし
ひめさんマージャンやります?
僕やらないです
何ならルールを教えてもらったことはあるけど
結局そんなに理解できなかったっていうのが
正直なところですね
あれルールの嵐なんですよね
何だったらローカルルールとかもあるんで
結構難しいんですけど
AIにそれを一からやってもらうと思うと
果てしない時間がかかるし間違えてくるし
だから意外にこれいけるのかなって思ったやつと
実際に作れる作れないが
なんか合わないんですよねまだ
そういう意味でも
自分の中での想像と
実際にそれを作るところを見たときの
ギャップを埋められるっていうのは
すごくいい経験ですね
そうですね
まだこれからバイブコーディング始める方も
多くいらっしゃると思いますし
バイブコーディングしたことあるけど
自分が実際に使っている
プロダクトのコードベースの
更新みたいなところに使っている人
というのが大半だと思うので
小さくなんかMockを作ってみるというか
お試しでいろいろ作ってみるっていうのは
とてもいいチャレンジだと思います
自分は一見にしかないですね
そうそう
なので100日チャレンジって
実際に100日かけてるわけじゃないですよね
というのもLLMというか
カーソルだったり
他のクロードコードでもそうですけど
基本的には並列に動かせるので
一気に3日分とか全然進められちゃいますし
自分の頭さえ追いつけば
それで1日目が2日かかったのを
取り戻してるんですね
そうです
すごい波に乗ったときは
1日で10個とか作れちゃって
所詮
AIが呼び出して
AIが書いてもらってるだけなんで
自分のマシンのリソースは
まあまあそこまでは使ってないし
カーソルの場合だと
定額で働かせ放題なんで
一応レートリミットみたいなのありますけど
まあまあ頑張ってればいい
だから今
何かする前に
カーソルのエージェント動かして
例えば家事しに行くとか
育児しに行くとか
ゲームやるとか
そういう感じで動かしたりしてるんで
割と
そんなに普通の100日チャレンジよりは
重みがないというか
疲れないですよ
うーん
いいですね
そのくせいろんな技術では
1回やったことあるって状態になるんで
めちゃめちゃコスパとタイパのいい
これは企画だと思います
100日続けた先には何があるんですか
とりあえず
とりあえず面白いことをやったという
21:01
称号が一個手に入るので
こういうことをやった人として
みんなに覚えてもらえるということと
あとはバイブコーディングについて
人並みには語れるようになったはずなので
こういうことできるんだよとか
こういうことできないんだよ
ということは伝えられますし
次回自分でチームを持つときとかも
この辺までは人に頼むけど
この辺はAIにお願いしたほうが
絶対入るよねみたいなところは
勘どころとしてあるので
そういうソフトスキルみたいなところ
っていうのは役に立ちそうですね
うーん
リドル先生の次回作に
今後期待ですね
今後も面白い企画みたいなこと
思いついたらどんどんやっていって
SNSでも発信したいと思うので
よかったらSNSのフォローとか
ポッドキャストのフォローとか
していただけると嬉しいです
ありがとうございます
ありがとうございました
21:54

コメント

スクロール