Cursor for iOSで iOS用Todoアプリを作成してみた

Cursor for iOSで iOS用Todoアプリを作成してみた

Cursor for iOS から依頼した iOS アプリを、デスクトップのシミュレータで動かせるか試してみました。実装依頼からビルド、起動確認までの一連の流れを記録します。
2026.08.31

はじめに

クラウド事業本部、あきやまです。

Cursor の iOS アプリ(Cursor for iOS)が公開されているので、iOS ネイティブアプリの実装から起動までの経験は全く私ですが、IOSアプリ作成に挑戦してみました。この記事では、Cursor for iOS から Todo アプリの実装を依頼し、できた成果物を手元のシミュレータで動かした記録を書きます。Xcode のインストールや初回セットアップは割愛します。

Cursor for iOS とは

Cursor には、Mac や Windows で使うデスクトップ版があります。
2026年に、同じエージェントを iPhone から操作するネイティブアプリが公開されました。
このアプリが Cursor for iOS です。

公開時点ではパブリックベータで、有料プラン向けです。
App Store からインストール可能です。できることは、デスクトップ版のエージェント操作を iPhone に寄せたものです。
リポジトリを選んでエージェントを起動し、進捗を追い、差分を見て、PR をマージできます。
実行先は次の2つです。

  • Cloud Agent:クラウド上の隔離された環境で動くエージェント
  • Remote Control:自分の Mac 上で動いているエージェントを、外出先から続ける操作

Cloud Agentの場合、Cursor側で実行環境を用意してくれるのでWebアプリケーションのデモ作成や動作検証も可能です。
今回はCloud Agent を利用してて開発を開始したのですが、Cloud Agentの実行環境ではXcodeが準備できていなかったため最終的にはローカルPCの環境でビルドやシミュレータ起動を行いました。

環境

項目
OS macOS 26.5.2(arm64)
Xcode 26.6(Build 17F113)
シミュレータ iPhone 17 / iOS 26.5
対象アプリ SwiftUI の Todo アプリ(デプロイターゲット iOS 17.0)
バンドル ID com.example.TodoApp

Xcode 本体は入っている前提です。
Command Line Tools だけでは xcodebuild でアプリをビルドできません。

結論

Cursor for iOS から依頼して実装された iOS アプリを、デスクトップの Cursor 経由でシミュレータに入れて、画面操作まで確認できました。

確認したこと 結果
Cursor for iOS からリポジトリを開き、実装を依頼できる できた
できた .xcodeprojxcodebuild でビルドできる できた(1件直した)
iPhone シミュレータへインストールして起動できる できた
タスク追加など、アプリの基本操作 できた
実機、TestFlight、App Store 未実施

検証の範囲は「エージェントが書いた iOS アプリが、手元のシミュレータで動くか」です。
Xcode の MCP 連携や、Cursor for iOS 上でのビルド実行は見ていません。

やってみた

Cursor for iOS からリポジトリを開く

iPhone の Cursor アプリで、対象リポジトリ を開きました。事前に今回利用するリポジトリだけ作成済みです。
初回は、Github、Gitlabなどとの接続が求められました。

IMG_2830

IMG_2831

実装を依頼する

デスクトップの Cursor と同じく、自然言語で作業を依頼する形になっています。
同じ画面から、Cloud Agent に音声入力で次の内容を送りました。

全然関係ないですが音声入力だとTodo ってトゥードゥになるんですね。

トゥードゥアプリを実装してください。実装するにあたって必要な要件についてをまず整理してください。

IMG_2862

依頼時点の接続は Cloud です。
実装そのものはクラウド側のエージェントが進め、成果物がこのリポジトリに入っています。

できたアプリは SwiftUI の Todo です。
タスクの追加、完了切り替え、削除、フィルター、並び替え、UserDefaults への保存まで入っています。

シミュレータへデプロイする

ここからの作業はシミュレータを利用するためMacで行っています。

実装結果が実機相当の画面で動くかを見るため、デスクトップの Cursor にデプロイを依頼しました。

依頼文は「本repo をdeploy してみて」だけです。
エージェントがプロジェクト構成を読み、iPhone 17 シミュレータ向けにビルドして起動するところまで進めました。

使ったコマンドは次です。

xcodebuild -project TodoApp.xcodeproj \
  -scheme TodoApp \
  -destination 'platform=iOS Simulator,name=iPhone 17,OS=26.5' \
  -derivedDataPath ./build \
  -configuration Debug \
  build

README には iPhone 16 と書いてありますが、この環境のランタイムは iOS 26.5 で、用意されていた端末は iPhone 17 系列でした。
そのため起動先は iPhone 17 にしています。

ビルド成果物を入れて起動するコマンドは次です。

xcrun simctl install booted \
  ./build/Build/Products/Debug-iphonesimulator/TodoApp.app

xcrun simctl launch booted com.example.TodoApp

xcrun simctl launch はプロセス ID を返しました。
シミュレータ上に Todo アプリが前面に出ています。

ビルドエラーを直す

最初のビルドは失敗しました。

TodoApp/ViewModels/TodoStore.swift:66:15: error: no exact matches in call to instance method 'removeAll'
        todos.removeAll(\.isCompleted)

removeAll はラベルなしの呼び出しでは KeyPath を受け取れません。
where: を付けると、KeyPath を述語として使えます。

TodoApp/ViewModels/TodoStore.swift
func deleteCompleted() {
    todos.removeAll(where: \.isCompleted)
    normalizeSortOrder()
    save()
}

この1行を直したあと、同じ xcodebuild は成功しました。
エージェントがログを読んで修正し、再ビルドまで続けています。

Xcode の GUI を開いてエラーを転記する作業はしていません。

画面操作を確認する

起動後、入力欄からタスクを2件追加しました。

スクリーンショット 2026-08-31 22.44.43

確認できた操作は次です。

  • 画面タイトルが Todo であること
  • 「新しいタスクを入力」からタスクを追加できること
  • 「テスト1」「テスト2」が一覧に出ること
  • 件数が「2 件の未完了」になること
  • 「すべて / 未完了 / 完了」のフィルターが出ていること

空のプロジェクトを手動で足していく作業はしていません。
Cursor for iOS 側で依頼した実装が、シミュレータ上で操作できる状態まで届きました。

注意点・制約

今回のビルドは xcodebuildsimctl です。
Cursor 公式が案内している Xcode 26.3 以降の MCP(xcrun mcpbridge)は使っていません。

シミュレータ向けの署名はローカル実行用です。
Apple Developer チームの設定はないので、実機や TestFlight には出せません。

Cursor for iOS 単体では、この Mac のシミュレータを直接起動していません。
実装の依頼は iPhone 上、ビルドと起動はデスクトップ側、という分担です。

ハマりどころは、KeyPath を渡す removeAll の書き方でした。
新しい Xcode ではラベルなしだと型が合わず、removeAll(where:) に直す必要があります。

参考

この記事をシェアする

DevelopersIO 2026

関連記事