Swift開発のためのCursor環境設定
XcodeのPlaygroundやSwift Playgroundを使ってプログラミング言語Swiftによるアプリ開発に慣れようとしていましたが、正直言って使いにくかったです。
特にSwift Playgroundはチュートリアルが正常に動作しておらず、四苦八苦で試行錯誤しながら前に進める必要がありました。App Storeのレビューを読むと、プログラミングにまだ慣れていない人の中には混乱して途中で挫折してしまった人もいたようです。
PythonやNode.jsを使ったアプリ開発にはAIコードエディタのCursorを使っていますが、拡張機能による言語サポートが非常に強力で、AIによるコード補完も比較的的確なので、快適にプログラミングを行うことができます。
そこで、CursorでSwiftアプリ開発ができるように環境を整えてみました。当記事は、その手順の備忘録です。
なお、Swift自体はWindows用やLinux用のツールも提供されていますが、当記事のターゲットのプラットフォームはiOSとmacOSです。
ツールのインストールにはHomebrewが必要です。予めインストールしておいてください。
Homebrewでツールをインストールする
Section titled “Homebrewでツールをインストールする”xcode-build-server
Section titled “xcode-build-server”Swift公式サイトのドキュメントによれば、AppleのSourceKit-LSPを使ってCursorの拡張機能からSwiftの言語サポートを利用できるようになっているそうですが、xcode-build-serverの説明によれば、SourceKit-LSPはXcodeプロジェクトをサポートしていないが他のビルドシステムと統合するためのビルドサーバープロトコルを提供しており、このツールは他のビルドシステムからそれを利用できるようにするものらしいです。
brew install xcode-build-serverxcbeautify
Section titled “xcbeautify”xcbeautifyは、xcodebuildの出力を見やすくします。
brew install xcbeautifySwiftFormat
Section titled “SwiftFormat”SwiftFormatは、Swiftのコードを書式整形します。
brew install swiftformatCursorに拡張機能をインストールする
Section titled “Cursorに拡張機能をインストールする”Swift for Visual Studio code
Section titled “Swift for Visual Studio code”Cursorを起動して拡張機能のマーケットプレイスを開き、Swift(発行元はswiftlang)を検索してインストールします。
Sweetpad
Section titled “Sweetpad”Cursorを起動して拡張機能のマーケットプレイスを開き、SweetPad(発行元はsweetpad)を検索してインストールします。
プロジェクトの作成はXcodeを使う
Section titled “プロジェクトの作成はXcodeを使う”コマンドパレット(Cmd + Shift + P)でSwift: Create New Project...を選択するとSwiftのプロジェクトを作成できますが、.xcodeprojではなくPackage.swiftというファイルが作られてしまいます。
SweetPadによればXcodeGenのようなCLIもあるそうですが、Xcodeで明示的にiOS向けのプロジェクトを作るのが間違いないでしょう。
Xcodeでプロジェクトを作成したら、プロジェクトのフォルダー(.xcodeprojの親フォルダー)をCursorで開き、Cmd +Shift + Pでコマンドパレットを開いて、Swift: Generate Build Server Config (buildServer.json)を選択します。
ここで、以下のエラーが発生しました。
xcode-select: error: tool 'xcodebuild' requires Xcode, but activedeveloper directory '/Library/Developer/CommandLineTools' is a command line tools instanceエラーの意味をCursorに調べてもらったところ、「xcodebuildはフル版のXcodeに含まれるツールだが、今は「Command Line Tools」だけが有効になっている」という意味とのこと。Homebrewなどでツールをインストールする際、xcode-select --installでCommand Line Toolsを入れていたことが原因のようです。
以下のコマンドを実行してXcode本体に切り替えると、Swift: Generate Build Server Config (buildServer.json)が正常に動作しました。
sudo xcode-select -s /Applications/Xcode.app/Contents/DeveloperコマンドパレットからSweetPad: Build & Run (Launch)を選択してiOSアプリをシミュレータで実行しようとすると、別のエラーが発生して動作しません。しかし、CursorのAgentが解決してくれました。選択したiPhoneのシミュレータが適切では無かったようです。
キーワードの上にマウスカーソルを持っていくと説明が表示されますし、コードの自動補完も文脈に合わせて正しく表示されますし、AIが自動的に意図を汲んでコードを提案してくれますし、Xcodeより使いやすくて最高です✨
デバッグ設定を整える
Section titled “デバッグ設定を整える”SweetPadのドキュメントに従って、プロジェクトのフォルダーに.vscodeフォルダーを作成し、以下のファイルを作成します。
{ "version": "2.0.0", "tasks": [ { "type": "sweetpad", "action": "launch", "problemMatcher": ["$sweetpad-watch"], // ! Required for debugging "label": "sweetpad: launch", "detail": "Build and launch the app", "isBackground": true // ! Required for debugging } ]}{ "version": "0.2.0", "configurations": [ { "type": "sweetpad-lldb", "request": "attach", "name": "Attach to running app (SweetPad)", "preLaunchTask": "sweetpad: launch" } ]}{ "lldb.library": "/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/LLDB"}これでF5キーを押すと、iOSシミュレータが起動してアプリをデバッグすることができます。
デバイス実機でデバッグするときは、pymobiledevice3をインストールしてos_logやprintなどの出力をCursorにストリーミングできます。Cmd +Shift + Pでコマンドパレットを開いて、SweetPad: install pymobiledevice3を実行してください。