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ではなく、CursorとXcodeを併用することです。
CursorでのSwift開発環境のセットアップ
1. Swift言語サポートのインストール
CursorはVS Codeをベースにしているため、マーケットプレイスから拡張機能をインストールできます。Swift開発には以下をインストールしてください:
- Cursorを開く
- 拡張機能(Ctrl+Shift+X / Cmd+Shift+X)に移動
- 検索してインストール:
- Swift by
sswg.swift-lang—— シンタックスハイライト、診断、コードナビゲーションを提供 - SwiftFormat —— 自動コードフォーマット用
- Xcode Keymap(オプション)—— Xcodeのショートカットが好みの場合
- Swift by
// .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コードの作成および編集 | Cursor | AI支援、優れた編集体験 |
| ビルドおよび実行 | Xcode | ネイティブシミュレーター統合 |
| Storyboard / SwiftUIプレビュー | Xcode | ビジュアル編集が必要 |
| アセット管理 | Xcode | .xcassetsの処理 |
| ブレークポイントを使ったデバッグ | Xcode | 優れたLLDB統合 |
| Gitコミット | どちらでも | Cursorにも優れたGit UIがある |
推奨ワークフローステップ
- Xcodeでプロジェクトを作成 —— ターゲット、署名、および依存関係を設定
- 同じフォルダをCursorで開く ——
.swiftファイルをそこで編集 - Cursorでコードベースのインデックス作成を有効化(右上の歯車アイコンをクリック)
- Cursorで編集 —— チャット、Composer、またはTabを使ったコード生成
- Cursorで保存 —— 変更は即座にディスクに書き込まれる
- 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で編集しながらコード変更が即座に反映されます。