メインコンテンツまでスキップ

CursorでのSwiftおよびiOS開発

Cursorは強力なAI支援エディターですが、SwiftおよびiOS開発には独自の課題があります。JavaScriptやPythonのプロジェクトとは異なり、iOSアプリはXcodeのビルドシステム、Interface Builder、およびiOSシミュレーターに大きく依存しています。本ガイドでは、CursorでのSwift開発環境のセットアップ、Xcodeとの統合、および現在の制限事項への対処方法を説明します。

なぜCursorでSwift開発を行うのか?

XcodeはAppleプラットフォームの公式IDEであり、多くのタスクに必須です。しかし、CursorにはXcodeにない利点があります:

  • AI駆動のコード生成によるSwiftUIおよびUIKitのボイラープレートコード作成
  • インテリジェントなリファクタリングによる複数ファイル間での変更
  • 自然言語チャットによるレガシーObjective-Cや複雑なSwiftコードの理解支援
  • Composerによる複数ファイル編集および新機能のスキャフォールディング
  • 優れたテキスト編集体験(VS Codeのキーバインドおよび拡張機能対応)

最も生産性の高いワークフローは、CursorまたはXcodeではなく、CursorXcodeを併用することです。

CursorでのSwift開発環境のセットアップ

1. Swift言語サポートのインストール

CursorはVS Codeをベースにしているため、マーケットプレイスから拡張機能をインストールできます。Swift開発には以下をインストールしてください:

  1. Cursorを開く
  2. 拡張機能(Ctrl+Shift+X / Cmd+Shift+X)に移動
  3. 検索してインストール:
    • Swift by sswg.swift-lang —— シンタックスハイライト、診断、コードナビゲーションを提供
    • SwiftFormat —— 自動コードフォーマット用
    • Xcode Keymap(オプション)—— Xcodeのショートカットが好みの場合
// .vscode/extensions.json で推奨される拡張機能
{
"recommendations": [
"sswg.swift-lang",
"vknabel.vscode-swiftformat",
"apple-swift.swift-vscode"
]
}

2. XcodeプロジェクトをCursorで開く

Xcodeプロジェクトを直接Cursorで開くことができますが、いくつか注意点があります:

# プロジェクトディレクトリに移動
cd ~/Projects/MyiOSApp

# Cursorで開く
cursor .
プロジェクトファイル

Cursorは.swiftファイルを読み取ることができますが、.xcodeproj.xcworkspaceファイルを直接解析することはできません。プロジェクト構造はフラットなファイルツリーとして表示されます。Storyboard、アセットカタログ、およびプロジェクト設定については依然としてXcodeが必要です。

3. ビルドタスクの設定

CursorはネイティブにXcodeビルドをトリガーできないため、カスタムタスクを設定します:

// .vscode/tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "Build iOS App",
"type": "shell",
"command": "xcodebuild",
"args": [
"-project", "MyApp.xcodeproj",
"-scheme", "MyApp",
"-destination", "platform=iOS Simulator,name=iPhone 15",
"build"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}

ビルドは Ctrl+Shift+B(macOSではCmd+Shift+B)で実行します。

デュアルエディターワークフロー

コミュニティのフィードバックに基づくと、最も効果的なワークフローは両方のエディターを並行して実行することです:

タスクツール理由
Swiftコードの作成および編集CursorAI支援、優れた編集体験
ビルドおよび実行Xcodeネイティブシミュレーター統合
Storyboard / SwiftUIプレビューXcodeビジュアル編集が必要
アセット管理Xcode.xcassetsの処理
ブレークポイントを使ったデバッグXcode優れたLLDB統合
GitコミットどちらでもCursorにも優れたGit UIがある

推奨ワークフローステップ

  1. Xcodeでプロジェクトを作成 —— ターゲット、署名、および依存関係を設定
  2. 同じフォルダをCursorで開く —— .swiftファイルをそこで編集
  3. Cursorでコードベースのインデックス作成を有効化(右上の歯車アイコンをクリック)
  4. Cursorで編集 —— チャット、Composer、またはTabを使ったコード生成
  5. Cursorで保存 —— 変更は即座にディスクに書き込まれる
  6. Xcodeに切り替える —— ファイル変更が自動検出される;ビルドして実行
ファイル同期

両方のエディターはディスク上の同じファイルを監視しています。手動で同期する必要はありません。Cursorで保存し、Xcodeでビルドするだけです。何か問題が起きた場合は、Gitがバージョン管理を処理します。

Xcodeなしでのビルド

Xcodeの使用を最小限に抑えたい開発者の場合、xcodebuildが答えです。これはAppleのコマンドラインビルドツールで、Xcodeが行うすべてのことをサポートしています。

基本的なビルドコマンド

# シミュレーター用ビルド
xcodebuild -project MyApp.xcodeproj -scheme MyApp -destination 'platform=iOS Simulator,name=iPhone 15' build

# デバイス用ビルド
xcodebuild -project MyApp.xcodeproj -scheme MyApp -destination 'generic/platform=iOS' build

# テスト実行
xcodebuild -project MyApp.xcodeproj -scheme MyApp -destination 'platform=iOS Simulator,name=iPhone 15' test

# ビルドフォルダのクリーン
xcodebuild -project MyApp.xcodeproj -scheme MyApp clean

Swift Package Managerの使用

プロジェクトがSPMを使用している場合、Cursorはさらに効果的に機能します:

# ビルド
swift build

# テスト実行
swift test

# Xcodeプロジェクトの生成(必要な場合)
swift package generate-xcodeproj

SPMベースのプロジェクトは.xcodeprojファイルに依存しないため、より「Cursorフレンドリー」です。

Injectによるホットリロード

Krzysztof ZablockiによるInjectは、CursorでのSwift開発のコミュニティお気に入りツールです。Swiftアプリケーションのホットリロードを有効にし、Xcodeでの定常的なリビルドの必要性を減らします。

// AppDelegateまたはメインエントリーポイントに追加
#if DEBUG
import Inject
#endif

// ビューコントローラーまたはSwiftUIビュー内で
#if DEBUG
@ObservedObject var inject = Inject.observer
#endif

Injectを使用すると、Xcodeで一度ビルドし、Cursorで編集しながらコード変更が即座に反映されます。

制限事項と回避策

CursorがiOS開発でできないこと

制限事項回避策
Interface BuilderサポートなしSwiftUIを使用するか、XcodeでStoryboardを編集
iOSシミュレーター統合なしXcodeまたはxcodebuildからビルドして実行
.xcodeproj解析なしXcodeでプロジェクトファイルを管理
アセットカタログプレビューなしXcodeで画像およびカラーアセットを使用
コード署名UIなしXcodeで署名を設定
SwiftUIライブプレビューなしXcodeでプレビュー、Cursorで編集

一般的な問題

問題:CursorがUIKitのインポートを認識しない

解決策:Swift拡張機能がインストールされ、プロジェクトがインデックスされていることを確認してください。拡張機能のインストール後にCursorを再起動する必要がある場合があります。

問題:ビルドエラーがインラインで表示されない

解決策:Cursorのターミナルパネルを使用してxcodebuildを実行しエラーを確認するか、ビルドフェーズのためにXcodeに切り替えてください。

問題:Appleフレームワークの自動補完が弱い

解決策:CursorのTab自動補完はSwiftでうまく機能しますが、AppleフレームワークのドキュメントはXcodeほど深く統合されていません。特定のAPIについてはCursorチャットを使用してください。

ベストプラクティス

1. Xcodeをビルドの信頼源として維持する

コミット前に常にXcodeでアプリがビルドして実行することを確認してください。Cursorはコード作成に優れていますが、Xcodeはコンパイルするかどうかの最終的な信頼源です。

2. AI支援の変更にはGitブランチを使用する

CursorのComposerまたはAgentモードを使った大規模なリファクタリングを行う際は、まずブランチを作成してください:

git checkout -b cursor-refactor
git add .
git commit -m "Cursorリファクタリング前のチェックポイント"

これにより、AI生成の変更がビルドを破壊した場合に復元できます。

3. コードベースをインデックスする

Cursorに変更を依頼する前に、プロジェクトをインデックスしてください:

  1. Chatパネルを開く
  2. Indexボタン(歯車アイコン)をクリック
  3. インデックス作成が完了するのを待つ

これにより、Cursorが完全なプロジェクト構造を理解するため、AIの提案の質が向上します。

4. Swift用のプロンプトを構造化する

CursorにSwiftコードを生成してもらう際は、フレームワークを具体的に指定してください:

良い例:"非同期画像読み込み付きのユーザーリストを表示するSwiftUIビューを作成"

悪い例:"ユーザーリスト画面を作って"

まとめ

CursorはiOS開発者のツールキットにとって貴重な追加機能ですが、Xcodeの代替ではありません。最も効果的なアプローチはデュアルエディターワークフローです:AI支援を使ってCursorでコードを作成およびリファクタリングし、Xcodeでビルド、プレビュー、およびデバッグを行います。

主なポイント:

  • CursorでSwiftサポートを得るためにsswg.swift-lang拡張機能をインストール
  • Cursorに留まりたい場合はxcodebuildを使ったコマンドラインビルドを使用
  • 両方のエディターを同時に実行 —— ファイルシステムを介して同期される
  • 大規模なAI支援リファクタリングの前にGitブランチを使用
  • 制限事項に注意:Storyboard編集なし、シミュレーターなし、コード署名UIなし

エコシステムが進化するにつれ、より緊密な統合が利用可能になるかもしれません。現時点では、CursorのAI機能とXcodeのプラットフォームツールの組み合わせが、両方のベストを提供します。


最終更新:2025年6月