v0×ClineではじめるAI駆動iOSアプリ開発
はじめに
v0とClineを(無理矢理)使ってSwiftでiOSアプリを開発する方法について説明します。
簡単なTODOアプリのようなものを作りながらどのようにAIにコーディングさせているか紹介していきます。
本記事では、v0でベースとなるUIを生成しClineで細かな修正を行なう形で実装しています。
なぜv0を使っているかというと、ClineだとAuto Approveにしていても一定実装に時間がかかってしまうためです。
ターゲット
- iOSアプリ開発にはAIは使えん🥺と思ってる人
- AIでアプリ作ってみたいけどツールとか調べるのめんどくさい人
- DevinがLinuxベースだったので涙を流しているiOSエンジニア
⚠️かなり無理矢理な方法で実装しているので手作業は許せんって人にはおすすめしません
まず、v0を用いてSwiftUIのコードを生成し、UIとロジックのベースを構築します。
v0はVercelが提供するAIツールであり、テキストや画像からWebページのUIとコードを自動生成する機能を持っています。
今回使用したプロンプトは以下の通りです。
目的
持ち物チェックリストアプリをSwiftUIで実装する
前提(Next.jsで生成されないようにSwiftUIを強調)
Next.jsではなくSwiftUIを使用してください。
iOSアプリ向けのSwiftUIのコードを生成してください。
UIKitは使用せず、SwiftUIのみで実装してください。
動作確認用のサンプルデータを用意し、SwiftUIの#Previewを記載してください。
仕様
1. カテゴリ一覧画面
ユーザーが「学校」「職場」「旅行」などのカテゴリごとにリストを作成できるようにする。
カテゴリはリスト形式で一覧表示します。
2. チェックリスト画面
選択したカテゴリに応じた持ち物リストを表示します。
各アイテムにチェックボックスを付けて、持ち物の準備状況を管理できます。
チェックしたアイテムはグレーアウトします。
フローチャート
GPTにMermaid形式で生成してもらう
このプロンプトから生成された結果がこちらです。
プレビューはできないものの、しっかりとしたコードが生成されていることがわかります。
GPTと遜色ないレベルだと感じています(Sendableへの準拠を明示しないと対応してくれない点も同様です)。
ちなみに、Next.jsを使用すると、プレビュー付きでより洗練された画面が生成されます。
SwiftUIの場合、v0上でのプレビューができないため、動作確認のために手動でXcodeに追加する必要があります。
ビルド後の画面は以下のようになります。
![]() |
![]() |
最初の要件は満たしていますが、入力UIなどに一部違和感があるため、Clineで微調整を行います。
ClineはコーディングAIエージェントと呼ばれるツールです。
VSCodeの拡張機能として導入し、普段から利用しています。コードを直接編集したい場合にも使いやすく、重宝しています。
モデルはGeminiを使用していますが、コーディング力がやや足りないのでクレジットが気にならない方は色々な戻るを試してみるといいと思います。
Project IDXでの利用と大体同じであるため、Geminiのセットアップについては下記記事をご参照ください。
Clineの使い方
こんな感じで雑に指示を出すと、該当箇所のコードを探して勝手に修正してくれます。
勝手に実装してもらうためにはAuto Approveを有効にする必要があります。安全のためにコマンド実行は手動にしていて、それ以外は自動で書いてもらってます。
丁寧なプロンプトを書くともっとうまく動くので、怠惰じゃない方はタスク概要、該当箇所、要件くらいは書くと良いです。
VSCode上でClineに実装してもらったらXcodeでビルドしてシュミレーターで動作確認をしましょう。
直接Xcode上で利用することができない(2025年3月16日時点)ので少々手間ですが、都度Xcode側でReplaceを押してビルドしてください。
Clineに以下の3つの修正タスクを実装してもらい、このような状態になりました。
![]() |
![]() |
簡単なアプリではありますが、ここまで1行もコードを書くことなく実装することができました。
アプリの規模が大きくなるとこのような無理矢理開発では立ち行かなくなってくると思うので、今後XcodeにコーディングAIエージェントが搭載されることに期待です!
おわりに
以上、v0とClineを使ってSwiftでiOSアプリを開発する方法についての紹介でした。
現状、無理矢理感が否めずWebアプリ開発ほどの体験ではないのですがAIによるアプリ開発に興味がある方はぜひ試してみてください。
おすすめのAIの使い方があれば教えていただけると嬉しいです!
Discussion