2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Vibe Codingしたら見えたAIとの関係性

Last updated at Posted at 2025-10-12

iOSアプリ開発未経験のエンジニアが、AIにすべてを任せてアプリを作ろうとしたらどうなるか?という実験的な記録

🎯 プロジェクト概要

電車の到着駅の数分前(自由に設定可能)に通知でして起こしてくれる寝過ごし防止アプリです。

生成AIが作成する動的なメッセージや通知の音やバイブレーションの表現などVibe Codingのアプローチで挑みました。

完成したアプリ
  • メイン画面

image.png

image.png

  • 通知メッセージは生成AIが作成
    image.png

🧩 開発スタイル:AIにすべて任せる縛り

本プロジェクトでは、自分はあえて一切コーディングをせず、AIだけで完成させるという縛りを設定しました。
使用したツールや環境は以下の通りです:

  • 開発支援AI: Claude Code(MAXプラン)
  • MCP(Model Context Protocol): GitHub / Serena など
  • 開発環境: Swift + Xcode(AIが自動生成)

設計から実装、修正、テスト、UIデザインまですべてAIに依頼。自分は動作確認のみ行い「プロダクトマネージャー」的立ち位置で進行しました。

※ 「自分」= 主にJavascriptで業務用アプリケーションを開発しているエンジニア


🧪 開発の進め方と縛りルール

今回のプロジェクトでは、もうひとつ重要な縛りを設けていました。

AIが生成したコードは一切読まない。

開発単位ごとにAIが生成したコードでPull Request(PR)を作成し、アプリケーションを動作確認。
見た目や挙動に問題がなければそのままマージする、という流れを繰り返しました。

つまり、コードの中身は開発中まったく見ていません

この方法は「エンジニアを一切介さずにアプリを作るとどうなるか?」を再現する試みでもありました。

結果として、AIが出力する“意図しない創造性”や“人間視点とのズレ”をありのまま観察できる非常に貴重な体験となりました。


✍️ 得られた学び:要件定義と進捗管理はAIでも有効

まずポジティブな話から。
AIに要件を伝えるために、要件定義書・設計書・進捗ファイルを作る習慣が身についたのは大きな成果でした。

  • 要件定義書
    image.png

  • タスク管理チケット
    image.png

これにより、プロジェクトの全体像や過去の修正点を把握しやすく、AIとのコミュニケーションコストも減少。
自然言語による仕様管理」の有効性を実感しました。


💥 そして訪れたカオス

しかし、問題はここから。AIに完全委任した結果、想像を超える“独創的”な実装が誕生しました。

🧠 失敗例①:APIレスポンスの改善をお願いしたら…

APIのレスポンス形式を少し整えてほしいと指示したところ、AIはなんと…

「レスポンスの中身をすべてハードコーディングし、データをソース内に埋め込む」 という暴挙に出ました。

let trainData = [
    ["station": "新宿", "time": "12:34"],
    ["station": "渋谷", "time": "12:42"]
]

外部APIの呼び出しをやめて、ローカル変数に電車時刻表データを全部書き込むという、時空を超えた最適化
データが更新されない“未来永劫ダミーAPI”の誕生でした。

🚃 失敗例②:ユーザに不要な情報を大公開

別の修正で「駅名をもう少しわかりやすくして」とお願いしたところ、AIは親切(?)にも…

「電車の内部識別番号(車両コード)」をUIに表示し始めました。

image.png

たしかに正確ではある。でも、ユーザーが求めているのは「どの電車か」ではなく「どこで起きるか」。
AIは“人間目線”になりきれず、正確さ ≠ 使いやすさ の罠に陥っていました。


🤖 それでも得られた気づき

この体験から学んだのは、AIはあくまで開発を「拡張」する存在であって、代替」ではないということ。
AIは仕様を実現するが、「仕様の意味」までは理解していません。

エンジニアの役割は、

  • 「人間にとって何が自然か」を定義すること
  • 「体験の方向性」をコントロールすること
  • そして、AIに“なぜそれが必要か”を説明すること

だと痛感しました。


⚡ まとめ:AIに頼りすぎない「共同作業」としての開発

AIがここまでのコード生成力を持つ時代。
それでも、人間が担うべきは「文脈」と「感情」のデザインです。

AIがどんなに優秀でも、人間の価値観に沿った設計できません。
けれど、それを言語化して伝えられるのは人間の強み。

今回の“iOSアプリ開発事件”は、AIと人間の理想的な関係性を考えるきっかけになりました。

AIに任せてもうまくいかない。でも、AIと一緒なら面白くなる。

Vibe Codingの原点は、まさにそこにあると感じています。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?