# Cursor Agent ile Swift ve iOS Projelerinde Çalışmak

Adres: https://agentvera.dev/blog/cursor-agent-ile-swift/ · Yayın: 2026-11-01

Cursor Agent’ı Swift ve iOS projelerinde kullanma rehberi: AGENTS.md kuralları, çalışma döngüsü, test komutları ve paralel ajan ipuçları.

**Kısaca:**

- Cursor Agent, Swift ve iOS projelerinde Xcode, SwiftPM ve XCTest komutlarını doğrudan terminalde çalıştırarak kod üretir ve test eder.
- AGENTS.md dosyasına build, test ve lint komutları ile Swift/iOS kuralları yazmak ajanın doğruluğunu artırır.
- Küçük adımlarla plan alıp cursor-agent çıktısını diff üzerinden incelemek UIKit ve SwiftUI projelerinde güvenli bir döngü kurar.

Cursor Agent, `cursor-agent` komutuyla proje klasöründe başlattığınız terminal tabanlı bir kodlama ajanıdır. Swift ve iOS projelerinde `xcodebuild`, `swift build` ve `xcodebuild test` gibi komutları gerçekten çalıştırır; Swift kaynaklarını okur, düzenler ve test sonuçlarını yorumlar. Bu yazıda ajanı SwiftUI ve UIKit projelerinizde güvenli bir döngüyle kullanmanın pratik yollarını anlatıyorum; daha genel kurulum için [Cursor Agent](/ajanlar/cursor-agent/) sayfasına bakabilirsiniz.

## Neden Cursor Agent Swift ve iOS işlerine uyuyor
Cursor Agent’ın Swift/iOS tarafında asıl değeri, Xcode GUI dışında da tam bir build-test döngüsü kurabilmesidir. `swift build` ile SPM paketlerini derler, `xcodebuild -list` ile projenin scheme ve hedeflerini görür, simülatörde `xcodebuild test -destination` komutunu çalıştırır. Bu sayede yalnızca kod önerisi değil, derleyici hatalarını ve test başarısızlıklarını da okuyup düzeltebilir. Swift’in güçlü tip sistemi ve async/await gibi modern özellikleri, ajanın çıktısını hızlı doğrulamayı kolaylaştırır: hatalı bir async çağrı veya actor izolasyonu genellikle derleme aşamasında yakalanır. Ayrıca ajan dosya bazlı diff ürettiği için SwiftUI view’larındaki küçük değişiklikleri, UIKit controller’larındaki refactor’ları ve test hedeflerini aynı oturumda yönetebilirsiniz. Xcode’un aksine ajan, proje klasöründeki her Swift dosyasını okuyabilir; aynı anda birden fazla hedefi analiz edip çapraz referansları görebilir. Bu, özellikle çok modüllü veya Swift Package Manager ile bölünmüş projelerde işe yarar.

## Projeyi ajana hazırlamak: AGENTS.md ve .cursor/rules
Cursor Agent proje kökündeki AGENTS.md dosyasını öncelikli olarak okur; .cursor/rules altındaki kural dosyalarını da proje bağlamı olarak kullanır. Swift ve iOS projelerinde bu dosyaya mutlaka build, test ve lint komutlarını, klasör yapısını ve değiştirilmemesi gereken dosyaları yazın. Böylece ajan her adımda Xcode projesinin nasıl derleneceğini ve testlerin hangi simülatörde koşacağını bilir. Gerçekçi bir örnek:

```markdown
# AGENTS.md

## Komutlar
- Build: `swift build` veya `xcodebuild -scheme MyApp -destination 'platform=iOS Simulator,name=iPhone 15' build`
- Test: `xcodebuild test -scheme MyApp -destination 'platform=iOS Simulator,name=iPhone 15'`
- Lint: `swiftlint --strict`

## Klasör düzeni
- `MyApp/` uygulama kaynakları (SwiftUI view'ları ve UIKit controller'ları)
- `MyAppTests/` XCTest birim testleri
- `MyAppUITests/` XCUITest UI testleri
- `Shared/` ortak modeller ve servisler

## Kurallar
- Swift 5.9+ ile async/await kullan; DispatchQueue yalnızca zorunluysa.
- SwiftUI state yönetimi için iOS 17+ ise `@Observable`, değilse `ObservableObject` kullan.
- `project.pbxproj` dosyasını elle düzenleme; hedef eklemek için xcodegen veya Xcode kullan.
- Kod imzalama, takım ve entitlement değerlerini değiştirme; bunlar `MyApp.entitlements` ve Build Settings'te elle yönetilir.
- Her ağ veya model değişikliğinden sonra birim testleri çalıştır.
```

Ayrıca [Cursor CLI nasıl kullanılır? Adım adım rehber](/blog/cursor-cli-nasil-kullanilir/) sayfası, terminal ajanının genel akışını anlamak için iyi bir tamamlayıcıdır.

## Çalışma döngüsü: planla, küçük adımlar at, test et, diff’i incele
Ajana büyük bir görev vermek yerine, her seferinde tek bir davranışı değiştiren bir diff isteyin. Önce görevi iki-üç cümleyle tanımlayın, ajanın önce plan sunmasını isteyin; planı onayladıktan sonra uygulatın. Her adımdan sonra `git diff` ile değişiklikleri inceleyin, `xcodebuild test` veya `swift test` çalıştırın ve yalnızca yeşil testlerden sonra devam edin. Ajan bir test hatası döndürürse hatayı yeni girdi olarak verin; böylece derleyici ve test çıktısı döngünün parçası olur.

Örnek görev komutları:

- Mevcut `User` modelini async/await ile API’den çeken bir `UserService` ekle; hata durumlarını `UserServiceError` enum’u ile yönet, `URLProtocol` mock’u kullanarak XCTest testi yaz.
- SwiftUI listesinde `@Observable` kullanarak ekleme ekranını MVVM’e ayır, `@MainActor` izolasyonunu koru ve mevcut testleri güncelle.
- UIKit’teki `UICollectionView` akışını diffable data source’a geçir; eski `UICollectionViewDataSource` yöntemlerini sil, hücre kayıtlarını modern hale getir.
- `xcodebuild test` çıktısına göre başarısız olan ağ testini düzelt; zaman aşımı süresini ve hata mesajı eşlemesini güncelle.
- Uygulama hedefini Swift Package Manager’a taşı: `Package.swift` oluştur, mevcut kaynakları `Sources/` altına al ve test hedefini bağla.

Bu döngüde ajanın her adımda `xcodebuild` çıktısını okumasını isteyin; böylece sorunlar erken yakalanır. Özellikle SwiftUI preview’ları CLI ortamında çalışmadığından, görsel doğrulamayı Xcode’da siz yapın; ajan derleme ve test ile sınırlı kalsın.

## Cursor Agent’ın iyi yaptığı Swift/iOS işleri ve dikkat edilecek noktalar
Ajan özellikle kod tabanlı SwiftUI ekranları, UIKit refactor’ları, ağ katmanı, modeller ve XCTest birim testleri yazarken verimlidir. Tablo, tipik görevlerle birlikte Swift/iOS’e özgü tuzakları özetliyor:

| Görev | Dikkat edilecek nokta |
|-------|-----------------------|
| SwiftUI view ekleme veya state refactor’u | `@Observable`/`ObservableObject` seçimi, `@MainActor` izolasyonu ve preview çalıştırmadan derleme doğrulaması |
| UIKit controller refactor’u | `UICollectionView`/`UITableView` diffable data source geçişinde hücre kayıt ve snapshot hataları |
| Ağ katmanı ve async/await servisleri | `URLSession` mock’u, hata tipleri ve zaman aşımı; test hedeflerinde canlı ağa çıkmamak |
| Core Data veya SwiftData model değişiklikleri | Migration gereksinimleri, `@Model` makro kullanımı ve `mainContext` thread güvenliği |
| Test hedefi güncelleme | Test dosyalarının target membership’ini korumak, `@testable import` hatası |

Ajanın en sık zorlandığı noktalar şunlardır: Xcode proje dosyası `project.pbxproj` içindeki manuel değişiklikler, kodsal imzalama ve provisioning profile, `Info.plist` değerlerinin yanlış düzenlenmesi, storyboard/xib dosyalarındaki XML yapısının bozulması. Bu tür dosyaları ajana değiştirtmeyin; kuralları AGENTS.md içinde net olarak belirtin.

## Swift ve iOS için test ve doğrulama
Ajanla çalışırken test komutlarını her zaman proje kökünden çalıştırın. SPM tabanlı bir modülde `swift test` yeterlidir; Xcode projesi için `xcodebuild test -scheme MyApp -destination 'platform=iOS Simulator,name=iPhone 15'` kullanın. Ajana test çıktısını ayrıntılı okumasını söyleyin: hatalı assertion, beklenmedik nil, async task iptali gibi bilgileri yakalar. UI testleri için `xcodebuild test -only-testing:MyAppUITests` komutunu ekleyerek yalnızca ilgili testleri koşturun. Testlerden sonra `git diff --check` ile boşluk hatalarını ve `swiftlint --strict` ile stil sorunlarını denetletin. Ajanın önerdiği değişiklikleri uygulamadan önce `git diff` üzerinde satır satır inceleyin; özellikle concurrency ile ilgili `@Sendable` closure’lar ve `Task` yapıları hata üretebilir. Bir test başarısız olduğunda ajanın hatayı düzeltmesi için test çıktısının tamamını girdi olarak verin; bu, döngünün en kritik adımıdır.

## Birden fazla ajanı tek Swift/iOS projesinde çalıştırmak: AgentVera
Swift ve iOS projelerinde paralel ajan çalıştırmak genellikle dosya çakışmalarına yol açar. AgentVera, her ajanı kendi git worktree’sinde çalıştırarak bu sorunu çözer; böylece bir ajan `UserService` üzerinde çalışırken diğeri `HomeView`'u güvenle değiştirebilir. Ajan turu bittiğinde otomatik kod incelemesi, Swift’e özgü hataları `file:line` ile gösterir; checkpoint’ler sayesinde yanlış bir refactor tek tıkla geri alınabilir. Bu üç özellik, UIKit ve SwiftUI kodunun birbirine karıştığı projelerde riski ciddi şekilde azaltır.

## Sonuç
Cursor Agent ile Swift/iOS geliştirme, doğru kurallar ve disiplinli bir döngü ile Xcode dışındaki terminal ortamında bile etkili hale gelir. AGENTS.md dosyasını baştan hazırlayın, her değişiklikten sonra test çalıştırın ve `project.pbxproj` gibi Xcode’a özel dosyaları koruyun. Paralel çalışmalar için worktree tabanlı çözümleri değerlendirin; böylece ajanlar birbirinin işini bozmadan büyük refactor’ları parçalara bölebilir. Daha geniş bir perspektif için [Yapay zeka ile mobil uygulama yapmak: Expo’dan mağazaya](/blog/yapay-zeka-ile-mobil-uygulama-yapmak/) yazısına göz atabilirsiniz.

## Sık sorulanlar

**Cursor Agent Swift ve iOS projesinde nasıl başlatılır?** Proje klasöründe terminalden cursor-agent komutunu çalıştırın. İlk çalıştırmada hesap girişi isteyebilir, ardından proje kökündeki AGENTS.md dosyasını okur. Build ve test komutlarını bu dosyada tanımlıysa kullanır.

**Cursor Agent Xcode projelerinde project.pbxproj dosyasını düzenleyebilir mi?** Teknik olarak düzenleyebilir, ancak bu dosyayı elle değiştirmek risklidir. AGENTS.md içinde project.pbxproj dosyasını değiştirmemesini söylemeniz önerilir; hedef ekleme gibi işlemleri Xcode veya xcodegen ile yapın.

**Cursor Agent SwiftUI ve UIKit kodunu aynı projede yönetebilir mi?** Evet, dosya bazlı diff ürettiği için SwiftUI view’larını, UIKit controller’larını ve ikisi arasındaki bridging kodunu aynı oturumda değiştirebilir. Storyboard/xib gibi arayüz dosyalarını Xcode dışında düzenlemek yerine kod tabanlı UI tercih etmek daha güvenlidir.

**Cursor Agent ile XCTest ve UI testleri nasıl çalıştırılır?** Ajana xcodebuild test -scheme MyApp -destination 'platform=iOS Simulator,name=iPhone 15' komutunu çalıştırmasını söyleyin. Test çıktısını okur, hataları düzeltmek için gerekli kaynak değişikliklerini önerir. SPM modüllerinde swift test yeterlidir.

---

**AgentVera hakkında.** AgentVera, Solviera Teknoloji tarafından geliştirilen macOS, Windows ve Linux masaüstü uygulamasıdır. 18 yapay zeka kodlama ajanını (Claude Code, Codex, Gemini CLI, Copilot, Cursor, Antigravity, opencode, Hermes, Qwen Code, Kimi Code, Kiro, Amp, Droid, Goose, Vibe, Crush, Aider, Cline) proje bazında, gerçek terminallerde ve kullanıcının kendi CLI kurulum ve girişleriyle yan yana çalıştırır. Ücretsiz planda sınırsız ajan vardır. İndir: https://agentvera.dev/indir/ · Fiyatlar: https://agentvera.dev/fiyatlar/
