every Tech Blog

株式会社エブリーのTech Blogです。

Cursor × iOS開発 私はこうやってます

Cursor✖️iOS開発 私はこうやってます

はじめに

こんにちは。開発部でiOSエンジニアをしている野口です。

皆さんAI開発においてエディターは何を使っていますか?

弊社ではCursorがエンジニア、PdM全員に配布されています。

iOS開発においてはXcodeを使用しますが、XcodeのAI対応が遅いです。(Xcode26のベータ版を試しましたが、個人的にはCursorには遠く及ばない感じだったのでしばらくはCursorにお世話になるかなと思っています。)

iOSでもAI開発を進めるべく、以下の記事に影響を受けて、私のCursor × iOS開発方法を紹介します。

基本的な環境構築

まず、CursorでiOS開発を行うための基本的な環境を整えます。

1. 拡張のインストール

Cursorの拡張機能から以下をインストールします。

2. コード補完

コード補完のために、以下のコマンドでxcode-build-serverをインストールします。

brew install xcode-build-server

Cursorでコマンドパレットを開き(Cmd+Shift+P)、「SweetPad: Generate Build Server Config (buildServer.json)」を実行します。

実行したい対象のアプリ(例: SampleApp)を選択します。

選択すると以下のようなbuildServer.jsonファイルが生成されます。

{
    "name": "xcode build server",
    "version": "0.2",
    "bspVersion": "2.0",
    "languages": [
        "c",
        "cpp",
        "objective-c",
        "objective-cpp",
        "swift"
    ],
    "argv": [
        "/opt/homebrew/bin/xcode-build-server"
    ],
    "workspace": "/Users/username/Repository/SampleApp/SampleApp.xcodeproj/project.xcworkspace",
    "build_root": "/Users/username/Library/Developer/Xcode/DerivedData/SampleApp-fptwmkhevrascshgcosiyntwfinh",
    "scheme": "SampleApp",
    "kind": "xcode"
}

生成されてからためしに、VStackなど、SwiftUIやUIKitのコードを入力してみて、サジェストされるか確認してみてください。サジェストされればコード補完の設定は完了です。

CursorでiOS開発する際の課題

基本的な環境構築が完了したところで、実際にCursorでiOS開発を進める際に直面する課題について説明します。

CursorでiOS開発を行う場合、以下が必要になります(ローカル環境での開発のみを想定してます)

  • Swift言語, SwiftUIなどのツールの補完
  • ビルド&ラン

その環境設定をサポートしてくれるのがSweetPadになります。Cursorの公式でもSweetPadの使用が紹介されています。

言語やツール補完に関してはSweetPadの設定で問題なく動作しますが、ビルド&ランをするとビルド時間がネックになっていました。

弊社アプリ「ヘルシカ」での計測ですが、1回あたり1分以上かかります。Xcodeビルドした場合、10~20秒ほどになります。

どうやら、SweetPadのビルドで使用されているxcodebuildと、Xcodeのビルドは異なるようでそれによってビルド時間に差があるようです。

この課題を解決するため、私はCursorでのコーディングXcodeでのビルドを組み合わせるハイブリッドな開発スタイルを採用しています。

3. osascriptを使用したXcodeビルド連携の設定

ここからCursorからXcodeのビルドをスムーズに行うための設定を行います。

macOSの作業自動化ツールであるosascriptを活用します。

具体的には、Cursorが開いている状態でCmd+Rを押すと、以下の動作が自動で実行されるように設定します。

  • Xcodeを開く。
  • Xcodeでビルド&ランする (Cmd+Rを送信)。
  • Cursorに戻る。

設定手順は以下の通りです。

.vscode/tasks.jsonの作成

プロジェクト直下に.vscodeフォルダを作成し、その中にtasks.jsonファイルを作成します。このファイルにosascriptを実行するタスクを設定します。

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "xcode.run",
            "type": "shell",
            "command": "osascript",
            "args": [
                "-e", "tell application \"Xcode\" to activate",
                "-e", "tell application \"System Events\" to keystroke \"r\" using {command down}",
                "-e", "tell application \"Cursor\" to activate",
            ],
            "problemMatcher": []
        },
    ]
}

各コマンドの説明:

  • "-e", "tell application \"Xcode\" to activate":Xcodeを開く
  • "-e", "tell application \"System Events\" to keystroke \"r\" using {command down}":Cmd+R(ビルド&ラン)を押す
  • "-e", "tell application \"Cursor\" to activate":Cursorを開く

この設定により、Xcodeのアクティベート、Cmd+Rによるビルド&ラン、そしてCursorへの戻りが自動化されます。

keybindings.jsonの設定

tasks.jsonに設定したタスクをショートカットで呼べるようにします。

Cursorを開いた状態でCmd+Shift+Pを押し、「キーボードショートカットを開く」を検索してkeybindings.jsonを開きます。

そこに以下の設定を追加し、Cmd+Rで上記のxcode.runタスクが実行されるようにします。

[
    {
        "key": "cmd+r",
        "command": "workbench.action.tasks.runTask",
        "args": "xcode.run"
    }
]

これで設定は完了です!Cmd+Rを押すだけで、Xcodeが起動してビルド&ランされ、その後自動でCursorに戻るようになります。エディタの行き来の手間が大幅に削減されますね!

開発体験の向上:Cursorの見た目をXcodeに!

ここまでの設定で基本的な開発環境は整いましたが、XcodeとCursorを行き来する際の見た目の違いが気になることがあります。

個人的な感覚ですが、Xcodeで編集した後にCursorで同じコードを見ると、なんだか別のコードを編集している感覚になってしまい、集中が途切れてしまうことがありました。

そこで、Cursorの見た目をXcodeに近づけるために拡張機能からXcode Theme (mateocerquetella.xcode-12-theme)を導入しました。

Xcode Theme」を利用することで、DarkやLightなどの設定が可能になります。私は普段XcodeのDarkモードを使用しているので、それに一番近いXcode Default (Dark Customized Version)を使用しています。

ぜひお好みのテーマを見つけてみてください。

実際の開発ワークフロー(2025年7月時点)

環境構築が完了したところで、私が実際に行っている開発ワークフローをご紹介します。上記の設定を活用することで、私は現在ほぼCursorで開発を行っています。 主にCursorとXcodeを以下のように使い分けています。

  • Cursor: Agentモードを活用し、コーディングのほとんどを行う
  • Xcode: 主にビルドと実行や画像追加などの作業

開発の流れ

開発は、大きく「調査」「実装」「ビルド&ラン」の3つのフェーズで進めています。

1. 調査

  • Cursorの優れた検索機能を使って、おおよそのコードの場所を尋ね、どこに該当のコードがあるかを把握します。
  • 「こんなコードありますか?」といった曖昧な質問でも、Cursorはかなりの情報を見つけ出してくれます。

2. 実装

  • 実装したい機能のおおまかな設計方針を考え、それをCursorに投げかけます。
  • もし何も思いつかない場合は、とりあえず漠然としたアイデアでもCursorに投げてみることから始めます。
  • Cursorが意図通りに実装してくれれば、そのコードを取り込んで次のステップに進みます。

3. ビルド&ラン

  • コードの編集が一段落したら、Cmd+RでXcodeビルド&ランをします
  • ビルドエラーが発生した場合は、Xcodeで直接対応します(Cursor側にはエラーは表示されません)。

懸念点と今後の課題

ビルドエラーの表示について

ビルドエラーについてですが、Cursor側でXcodeのログを収集し、エラーを表示できるように設定することも可能です。そのために、XCLogParserを利用します。スクリプトを設定することでXcodeのログを収集できるようにします。スクリプトは以下の記事のもを参考に使用させていただいてます。

参考記事

しかし、私の環境ではエラーが解消されたにもかかわらず、Cursorのエラーが残り続けることがあり、これがストレスだったので、現在はこの機能の使用を中止しています。ビルドエラーはXcode側で確認して修正する運用に落ち着いています。

加筆(2025/10/02時点)

ビルドエラーの表示についてこちらのブログで解消したので合わせて見ていただけると嬉しいです。

tech.every.tv

まとめ

本記事では、CursorとXcodeを組み合わせたiOS開発手法について、環境構築から実際の開発ワークフローまでをご紹介しました。

AI開発が主流になる中で、XcodeのAI対応が追いついていない現状では、CursorのAI機能とXcodeの高速ビルドを組み合わせるのが最も効率的なアプローチだと感じています。

少し設定は必要ですが、今回ご紹介した方法で、あなたもCursorを活用した快適なiOS開発を始められるはずです!ぜひご自身の環境に合わせて試してみてください。