Skip to content
··2分で読めます

誰も教えてくれない:AIが「完了」と言ってからが本当の仕事の始まり

Swiftを知らずに初めてのiOSアプリを作っています。Claude Codeがある夜でアプリ全体をスキャフォールドしました。そしてSimulatorを開いたとき、本当の仕事が始まりました。

Xcodeを一度も開いたことがありません。

Swiftを知りません。SwiftUIも知りません。@Observableマクロが何をするかも、なぜAVAudioSessionにカテゴリが必要かも知りません。2日前に StoreKitが何か聞かれたら、家具アプリだと答えたでしょう。

それでも私はネイティブiOSアプリを構築しています——そして、AIが生成したコードは約60%まで連れて行ってくれることを発見しました。残りの40%、コードベースがプロダクトになる部分は、完全に人間の仕事です。 それが「AIでXを構築した」という投稿が決して触れない部分です。

アプリはDIALØGUE——私のAIポッドキャストジェネレーター——のためです。ウェブラッパーではありません。React Nativeでもありません。Apple Sign-In・アプリ内購入・ロック画面コントロール付きの音声プレーヤー・7言語のローカライゼーションを持つ本物のSwiftUIアプリです。

なぜ今?

2月3日、AppleはXcode 26.3がエージェントコーディングをサポートすると発表しました——AnthropicのClaude Agent SDKを組み込んで。単なるオートコンプリートではありません。ステップバイステップの提案でもありません。プロジェクト構造を探索し・Appleのドキュメントを検索し・Xcodeのプレビューをキャプチャして構築中のものを見て・ビルドと修正を通じて自律的にイテレートできる完全な自律エージェントです。

Claude CodeがMCP経由でXcodeと通信できるようになりました。Simulatorを見ることができます。ビルドの警告とエラーメッセージを読めます。UIが実際にどう見えるかを見て、変更が必要かどうかを判断できます。

それが私にとって計算を変えました。ネイティブiOSアプリについては何ヶ月も考えていましたが、Swiftを知らないからずっと後回しにしていました。XcodeにClaude Agentがあれば、問いが「Swiftを十分速く学べるか?」から「欲しいものを十分明確に説明できるか?」に変わりました。

まだ完成していません。まだ最終的なポリッシュ段階にいます。まだ機能しないものを見つけ、まだSwiftを読んで学んでいます——Claudeが書いてくれたコードから。でも今までのストーリーは——14日間のDIALØGUE再構築と同様に——同じ不快な教訓を強化しました。


Claude Codeが一晩で実際に何を構築したか?

gitの履歴はこんな感じです:

フェーズ何が起きたかコミット
設計書+実装計画アーキテクチャの決定・12のタスク2
Claudeが「アプリ全体を構築」スキャフォールド → 認証 → ライブラリ → 詳細 → スタジオ → StoreKit → アクセシビリティ6
人間がSimulatorを開く修正・テスト・リデザイン・修正・テスト・リデザイン12以上(まだ増え中)

最初のフェーズ——Claude Codeがアプリ全体をスキャフォールドする——は本当に印象的でした。ある夜に空のXcodeプロジェクトから始まって、コンパイルできるアプリへと:

  • Apple Sign-In・Google OAuth・メール/パスワード認証・MFA
  • 5ステップのポッドキャスト作成ウィザード
  • 検索とプルトゥリフレッシュ付きのポッドキャストライブラリ
  • AVPlayerによる音声再生
  • サーバーサイド検証付きのStoreKit 2アプリ内購入
  • スタジオ(定期放送管理)
  • 7言語のローカライゼーション
  • ブログWebビューとアクセシビリティラベル

69のSwiftファイル。7,568行のコード。私が書いたのは約ゼロ行。

これはすべてのAIブログ投稿が終わるところです。 勝利のスクリーンショット。「こんなもの作った」の瞬間。あり得ないタイムラインのコミット数と行数。

でも、私にはアプリがありませんでした。コンパイルできるコードベースがありました。


アプリを実際に使ったとき何が壊れたか?

タップして回りました。何かが読み込まれました。いくつかの画面は大丈夫に見えました。「実際に機能するかも」と思いました。

それからポッドキャストを作ろうとしました。

「完了」ボタンが作業内容を捨てた

スクリプトエディターでは、音声を生成する前に個々の会話行を編集できます。「完了」ボタンがあります。行を編集して「完了」をタップすると……編集内容が消えました。

ボタンは保存する前に編集モードを終了していました。コードでは正しく見えました——editMode = false——でも順序が間違っていた。保存して、それから終了。

これはユーザーが電話を投げたくなるバグの種類です。そしてAIがそれを書いた——なぜなら、ロジックは技術的に有効だからです——ただし逆方向に。

実データがアプリをクラッシュさせた

プロダクションバックエンドで生成されたポッドキャストに移動しました。クラッシュ。research_factsフィールドがオブジェクトの配列({fact, source, reference, confidence})として返ってきましたが、Swiftモデルは文字列の配列を期待していました。同じパターンが至るところに——ステータスの列挙型は大文字小文字を区別していた(completedCOMPLETE)。だからすべてのステータスバッジが「Unknown」を表示していました。

Claudeは設計書が言ったものを構築しました。プロダクションデータベースは同意しませんでした。これはテストデータではなく実データがあってはじめて発見できる種類のものです。

RealtimeのWebSocketがつながらなかった

ウェブでは、Supabase Realtimeは素晴らしく機能します。iOSでは、WebSocket接続がサイレントに失敗していました。エラーも・クラッシュも。ただ……アップデートなし。

フィックスはベルトアンドサスペンダーのアプローチでした:Realtimeサブスクリプションを保持しながら、必ず実行される5秒のポーリングフォールバックを追加。エレガントではありませんが信頼できる。モバイルネットワークは予測不可能で、ユーザーはステータスがどうやって更新されるかは気にしません——ただ更新されることだけを。

アプリ全体がシステムカラーを使っていた

すべての画面がデフォルトのiOSブルーとグレーでした。ライトモード。ウェブアプリには慎重に設計されたダークモードの美学があります——チャコールの上のアンバーとゴールド、「スタジオウォームス」と呼んでいるもの。Claudeはすべての画面を丁寧に構築していましたが、システムカラーで。

24のビューファイルすべてを触る必要がありました。すべてのColor.accentColorTheme.brandPrimaryに置き換える。ルートで.preferredColorScheme(.dark)を強制する。

これはバグではありません。AIはまったく合理的なことをしました。でも「合理的」と「良い」は別物です。

DIALØGUE iOSアプリのポッドキャスト詳細ページ、スタジオウォームスダークテーマ、アンバーラジアルグローヘッダーと統合された音声コントロール付き
スタジオウォームスパス後のポッドキャスト詳細ページ——アンバーグロー・ダークテーマ・統合再生。これはClaudeのオリジナルスキャフォールドには存在しませんでした。

アウトラインレビューは「承認」と書かれたボタンだった

ポッドキャスト生成フローにはインタラクティブな段階があります:AIがアウトラインを生成し、あなたが先に進む前にレビューします。ウェブでは、各セグメントの説明・トーキングポイント・リサーチソースを表示する展開可能なカードインターフェースです。

iOSでは、Claudeは「承認」と書かれたボタンを構築しました。それだけです。アウトラインのコンテンツなし。何を承認しているかを見る方法なし。スクリプトレビューも同様——ボタンだけで、エディターではない。

音声が再生されなかった

音声プレーヤーは正しく見えました。再生ボタン・プログレスバー・ロック画面コントロール。でも再生ボタンをタップしても何も起きませんでした。URL解決チェーンが壊れていました——署名付きダウンロードURLは開発環境で失敗し、フォールバックURLはSimulatorが解決できない内部Dockerホスト名を使っていました。

音声を修正して統合された再生コントロールでポッドキャスト詳細ページをリデザインした後、すべてのタブの下部にある持続的なミニプレーヤーバーは冗長になりました。削除しました。機能するけれどあるべきではないコードを削除すること——それは純粋に人間の判断です。


AI生成コードと本物のプロダクトはどう違うか?

AI生成コードはアーキテクチャ的には健全ですが、体験的には空洞です。 不満を言っているわけではありません——Claude Codeがしたことは素晴らしい。「Swiftを知らない」から一晩で認証・IAP・音声再生・7言語ローカライゼーション付きのコンパイルできるアプリへ?私には何ヶ月もかかったでしょう。

でも、ブログ投稿・ツイート・デモビデオには——AIがアプリを書いてあなたはそれをレビューするだけ、という話があります。出荷する。完了。

それは起きたことではありません。実際に何が起きたか:

  1. Claudeはアーキテクチャ的に健全なスキャフォールドを構築しました。 Supabaseダイレクト(カスタムAPIレイヤーなし)にする決定は、iOSアプリがウェブアプリと同じバックエンドと話すことを意味しました。認証・データベース・リアルタイム・ストレージ——すべて再利用。新しいサーバーサイドコンポーネントは1つだけ必要でした(verify-ios-purchase Edge Function)。そのアーキテクチャの選択は素晴らしく、膨大な時間を節約しました。

  2. Claudeは難しい部分を正しく処理しました。 CryptoKit経由の暗号化ノンス付きApple Sign-In。サーバーサイド検証付きのStoreKit 2購入フロー。バックグラウンド再生のためのAVAudioSession設定。これらだけでドキュメントから理解するのに何日もかかったでしょう。

  3. Claudeはプロダクト部分を間違えました。 バグとしてではなく——「これがコードベースの見た目だ、アプリの感じ方ではない」という意味で間違えた。

Claudeが構築したもの実際に必要だったもの
「承認」と書かれたボタンリサーチソース付きの展開可能なアウトラインレビュアー
すべての画面にシステムカラーブランドトークン・強制ダークモードの24ファイル
ドキュメントされたスキーマのJSONデコーダデータベースが実際に返すもののカスタムデコーダ
Realtimeサブスクリプション(ウェブパターン)Realtime+ポーリングフォールバック(モバイルパターン)
機能する作成ウィザード電話の画面に収まる作成ウィザード
DIALØGUEのiOS作成ウィザード、ダークテーマでスピードとピッチスライダー付きのボイスカスタマイゼーション表示
人間の介入後の作成ウィザード——スピード/ピッチスライダー付きボイスカスタマイゼーション・折りたためるセクション・すべてが電話の画面に収まる。

左の列は正しいコードです。右の列はプロダクトです。


次世代へのAIについて何を伝えるべきか?

数週間前に書きました——ティーンエイジャーの娘がいて、彼女の未来について何を伝えればいいかわからないと。実行スキルがどう自動化されていて、「批判的に考えられる」というフロアがどんどん上がっているかについて。

このiOSアプリを構築することでそれがより鮮明になりました——でも予想していた方向ではありませんでした。

実装スキル——Swiftの構文・SwiftUIのレイアウト・StoreKit API——は必要ありませんでした。Claudeがすべてを処理しました。「コードを学ぶ」が「プログラミング言語の構文とAPIを学ぶ」を意味するなら、そのアドバイスは年単位ではなく月単位の賞味期限があります。

でも、私が必要としたのは:プロダクトのテイスト・デザインの判断力・コードレビューを信頼するのではなく実際にSimulatorを開いてアプリを使う規律です。

これらは単なる「テイスト」ではありません。批判的思考を必要とします——本物の批判的思考、バズワードバージョンではなく。コンパイルし・テストに通り・AIが自信を持って完了と言うものを見て、*「いいえ。これは正しくない。なぜか見せます」*と言える種類のもの。

これはアウトソースできない部分です。今のところは、もしかしたら永遠に。AIはソリューションを生成するのが卓越しています。ログに現れない方法で解決策が間違っているときを知るのが苦手です。プロダクトを使いません。電話を持ちません。「完了」ボタンが作業内容を食べてしまうフラストレーションを感じません。誰かがステアリングしなければなりません。誰かがループの中に留まらなければなりません。誰かが「これは機能するけど良くない」と言う直感チェックを提供しなければなりません。

もしかしたら、これが娘に言えることかもしれません。「コードを学べ」ではなく——その窓は閉まりつつあります。「ただ批判的に考えることを学べ」でもなく、それは曖昧すぎる。もっと具体的なもの:

Simulatorを開く人になれ。

ユーザーより先に何が間違っているかに気づいて、実データで実際のものをテストする人になれ。素晴らしいプロダクトと酷いプロダクトを使い、その違いを理解することでテイストを磨け。技術的には正しいけれど体験的には壊れているものに対して、非常に自信たっぷりに聞こえるAIが反論しているときでも、押し返す自信を持て。

ループの中の人間は形式的なものではありません。それがプロダクト全体です。

まだ十分かどうか自信がありません。でも今のところ私が言えた最も具体的なことです。


iOSアプリの現状は?

アプリはまだ開発中です。AIブログ投稿が存在しないふりをするフェーズ——ポリッシュフェーズ——にいます。すべてのビューに対して実際のプロダクションデータをテストしています。アプリを実際に使ってはじめて表面化するエッジケースを見つけています。

過去2日間のgitログはfix:コミットの方がfeat:コミットより多いです。それは正しい感じがします。機能は簡単な部分でした。修正がプロダクトです。

現在の状態:

機能する残っているもの
認証(Apple・Google・メール・MFA)PDFアップロード(ドキュメントピッカー+Supabase Storage)
完全なカスタマイゼーション付き5ステップ作成ウィザードオフラインMP3ダウンロード
アウトライン/スクリプトレビュー付きポッドキャスト詳細プッシュ通知(v1.1に延期)
ロック画面コントロール付き音声再生TestFlightベータ配布
StoreKit 2アプリ内購入App Store申請
スタジオ(定期放送)
7言語ローカライゼーション
スタジオウォームスデザインシステム

アプリがApp Storeに掲載されたときフォローアップを書きます。または却下されたとき。Appleのことを考えると、却下のストーリーの方が面白いかもしれません。


AIの開発速度はどれくらい加速しているのか?

私を悩ませ続けているテーブルを更新します:

プロジェクト複雑さ構築時間
DIALØGUE v1MVPポッドキャストジェネレーター〜6ヶ月
STRAŦUM10 AIエージェント・11フレームワーク・マルチテナント75日
サイトリデザインWordPressフロントエンドオーバーホール3日
DIALØGUE v2完全なウェブアプリ再構築14日
ブログ移行WordPress → Next.js・490記事・Sydney RAG4日
DIALØGUE iOSネイティブiOSアプリ、初めてSwiftを使用まだ進行中——でもスキャフォールドは一晩で

頭の中に新しいカラムを追加しました:「Claudeの時間」対「私の時間」。比率は変わり続けています。Claudeの部分が短くなっています。私の部分はほぼ同じままです。(4日間でブログバックエンドを再構築したときも同じパターンに気づきました——移行は速かったけど、続く8日間の複利的な改良がサイトが本当にまとまったところです。)

そして、ツールはどんどん良くなっています。AppleとAnthropicが2月3日にXcode + Claude Agent SDK統合を発表したとき、それはただのプレスリリースではありませんでした。可能なことを根本的に変えました。Claudeは今やSimulatorを見て・ビルドエラーを読んで・プレビューをキャプチャして・視覚的にイテレートできます——iOSの開発を人間にとって難しくする正確なループが、AIにとってネイティブになりつつあります。

その発表から2週間後、Swiftを知らずにiOSアプリを作り始めました。これは偶然ではありません。

次にこれをやる人は、それについてのブログ投稿を書く必要はないでしょう。ただ……普通のことになるでしょう。これが内側から見た加速の様子です——各マイルストーンは目標到達距離が客観的に増え続けているにもかかわらず、最後のものより注目に値しないように感じられます。

それが誰も教えてくれないことです。AIは速くなっています。人間の仕事はまだそうではありません。今のところは。


よくある質問

Swiftを知らなくてもAIでiOSアプリを本当に作れるの?

はい——Claude Codeが一晩で69のSwiftファイルと7,568行のコードをスキャフォールドしました。Apple Sign-In・StoreKit 2アプリ内購入・音声再生・7言語ローカライゼーションを含めて。でも「作る」はその文で多くの重荷を背負っています。AIはコンパイルするコードベースを生成します;それを実際に出荷するプロダクトにするには広範な人間によるテスト・デザイン判断・実データデバッグが必要です。

Xcode 26.3とClaude Agent SDKが何を変えるか?

2026年2月3日に発表されたXcode + Claude Agent SDK統合により、AIエージェントがプロジェクト構造を探索し・Appleのドキュメントを検索し・Xcodeのプレビューをキャプチャし・Simulatorを見て・ビルドエラーを読んで・自律的にイテレートできるようになります。これはSwiftを知らない開発者にとって何が可能かを根本的に変えます——問いが「言語を学べるか?」から「欲しいものを説明できるか?」に変わります。

AI構築のアプリで人間の作業が実際に必要なのは何パーセントか?

私の経験では、AIが約60%まで連れて行ってくれます——アーキテクチャ・ボイラープレート・難しいAPI統合。残りの40%はプロダクトの仕事:実データで表面化するバグの修正・機能するけど正しい感じがしないUIのリデザイン・何を残して何を削除するかについての判断。その40%がプロダクトが実際に生きているところです。

AIコーディングエージェントで構築するとき最も重要なスキルは何か?

プロダクトのテイスト・デザインの判断力・批判的思考。実装スキル(構文・API・フレームワーク)はAIによってますます処理されます。アウトソースできないのは、実データで実際のものをテストし・何が間違っているかに気づき・技術的には正しいけれど体験的には壊れているものに対して押し返す能力です。

DIALØGUEのiOSアプリはApp Storeで利用可能ですか?

まだです——まだ開発中で、最終的なポリッシュフェーズにあります。機能は動いていますが、まだプロダクションデータに対してテストし・アプリを実際に使ってはじめて表面化するエッジケースを見つけています。App Storeに掲載されたとき(または却下されたとき)フォローアップを書きます。


まだ作り続けています。まだ完成していません。まだ娘に何を言えばいいか考えています。


よろしくお願いします、Chandler

続きを読む

私の歩み
つながる
言語
設定