# Codex ile Swift ve iOS Geliştirme: Pratik Rehber

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

Codex’i Swift ve iOS projelerinde etkili kullanmak için AGENTS.md kurulumu, çalışma döngüsü, test stratejileri ve yaygın tuzaklara dair pratik bir rehber.

**Kısaca:**

- Codex, Swift ve iOS projelerinde AGENTS.md ile doğru bağlam verildiğinde güvenilir kod üretir.
- Küçük adımlarla çalışıp her değişiklikten sonra xcodebuild veya swift test çalıştırmak hataları erken yakalar.
- SwiftUI ve UIKit’e özgü derleme ve arayüz tuzaklarında üretilen kodu dikkatle incelemek gerekir.

Codex, OpenAI’nin komut satırından çalışan kodlama ajanıdır; bir Swift ve iOS projesinin kökünde `codex` yazarak başlatılır. Proje bağlamını AGENTS.md dosyasından alır, SwiftUI/UIKit kaynaklarını düzenler, `xcodebuild` veya `swift test` komutlarını çalıştırır ve derleme hatalarını yorumlar. Bu rehber, Codex’i mevcut Swift ve iOS iş akışınıza verimli biçimde katmak için pratik adımları gösterir.

## Codex neden Swift ve iOS işlerine uygun

Swift ve iOS projeleri güçlü bir komut satırı döngüsüne sahiptir: `xcodebuild`, `swift build`, `swift test`, `swiftlint` ve simülatör yönetimi. Codex bu komutları ajanın kendi terminalinde çalıştırabildiği için derleyici çıktısını okuyup hatayı düzeltebilir. Örneğin, `xcodebuild` çıktısındaki hata satırını görüp ilgili dosyayı açıp düzeltme yapabilir; bu döngü, manuel olarak Xcode’da hata aramaktan daha hızlı ilerler. SwiftUI’nin bildirimsel yapısı ve async/await’in okunabilirliği, küçük ve denetlenebilir diff’ler üretmeyi kolaylaştırır. UIKit tarafında ise dosya ve sınıf yapısı net olduğundan ajan genellikle doğru dosyayı bulur. Ayrıca Swift Package Manager projelerinde `Package.swift` üzerinden bağımlılık yönetimi ve test çalıştırma da sorunsuzdur. Yine de Xcode proje dosyası, imzalama ve arayüz durumları gibi konularda üretilen değişiklikleri incelemek gerekir; daha fazla bilgi için [Codex](/ajanlar/codex/) sayfasına bakabilirsiniz.

## Projeyi ajan için hazırlama

Codex, proje kökündeki AGENTS.md dosyasını okur; bu yüzden ilk iş bu dosyayı Swift ve iOS iş akışınıza göre yazmaktır. Dosyada derleme, test ve lint komutları, klasör düzeni, kod stili ve projeye özgü kurallar yer almalıdır. Bağlam mühendisliği rehberindeki ([Bağlam mühendisliği: yapay zeka kodlama ajanları rehberi](/blog/baglam-muhendisligi/)) ilkeler burada da geçerlidir.

Aşağıdaki örnek, tipik bir iOS uygulaması için başlangıç noktasıdır:

```
# AGENTS.md

## Komutlar
- Derleme: `xcodebuild -project MyApp.xcodeproj -scheme MyApp -destination 'platform=iOS Simulator,name=iPhone 15' build`
- Test: `xcodebuild test -project MyApp.xcodeproj -scheme MyApp -destination 'platform=iOS Simulator,name=iPhone 15'`
- Lint: `swiftlint`

## Klasör düzeni
- `MyApp/` uygulama kaynakları; `MyAppTests/` birim testleri; `MyAppUITests/` UI testleri.
- Özellikler modül klasörlerine eklenir; `App` ve `Core` katmanları ayrı tutulur.

## Kurallar
- Swift 5.9+ kullanın; async/await tercih edin.
- SwiftUI view'larını küçük tutun; UIKit ile karıştırırken `@MainActor` ve ana thread kurallarına uyun.
- Force unwrap (`!`) ve `try!` kullanmayın; hataları `throws` ile yayın.
- Her değişiklikten sonra `swiftlint` ve ilgili testleri çalıştırın.
- `project.pbxproj` dosyasını elle düzenlemeyin; yeni dosya eklerken Xcode veya `xcodegen` kullanılacağını varsayın ve önce kullanıcıya sorun.
```

Bu dosyayı kısa ve net tutun; gereksiz genel kurallar bağlamı şişirir. Komutların simülatör adı veya hedef ayarları projeye göre güncellenmeli. Eğer proje Swift Package Manager kullanıyorsa, `swift build` ve `swift test` komutlarını ekleyin. Code signing, push notification entitlements veya App Groups gibi özel ayarlar gerekiyorsa bunları da kısa notlar halinde belirtin; örneğin "Signing manual olarak yapılır, agent kod imzalama ayarlarını değiştirmesin" gibi. Ayrıca asset katalogları ve localization dosyalarının elle düzenlenmemesi gerektiğini söylemek faydalı olur.

## Çalışma döngüsü ve örnek promptlar

Codex ile en verimli döngü şudur: küçük bir görev verin, ajanın önce plan yazmasını isteyin, değişikliği yapmasını bekleyin, `git diff` ile inceleyin ve ardından testleri çalıştırın. Ajan tek seferde büyük bir özellik yazarsa hata yüzeyi büyür. Her adımda tek sorumluluk vermek Swift ve iOS projelerinde özellikle önemlidir çünkü derleme süresi ve test çalıştırma döngüsü uzun olabilir. Ajan bir görevi tamamladığında, değişiklikleri `git diff` ile gözden geçirin; özellikle `project.pbxproj`, `.entitlements` ve Info.plist gibi dosyaların beklenmedik şekilde değişmediğinden emin olun.

Örnek promptlar:

- Mevcut SwiftUI ekranındaki listeyi async/await ile bir ViewModel’den besle; hata durumunda geri çekilme göster.
- UIKit ile yazılmış `ProfileViewController` içindeki force unwrap’ları `guard let` ile değiştir, sonra ilgili testi çalıştır.
- XCTest içinde `UserService` için async test yaz; `URLProtocol` mock kullan, başarı ve başarısızlık durumlarını kapsa.
- Aşağıdaki derleme hatasını düzelt; sadece ilgili dosyayı değiştir ve `swift test` çalıştır.
- Değişiklikleri `git diff` ile göster; riskli noktaları ve main actor ihlallerini özetle.
- `APIClient` sınıfındaki `URLSession` çağrılarını `async` fonksiyonlara dönüştür; hata tiplerini `NetworkError` enum’u ile modelle.

Her promptta açıkça ne yapılacağını ve hangi testlerin çalıştırılacağını belirtmek, ajanın gereksiz dosyalara dokunmasını önler. Ajan bir derleme hatasıyla karşılaştığında hatayı okuyup düzeltmeye çalışır; eğer çözüm belirsizse sizden ek bilgi isteyebilir.

## Codex’in iyi olduğu işler ve dikkat edilecek yerler

Aşağıdaki tablo, Codex’in Swift ve iOS projelerinde en verimli olduğu alanları ve dikkat edilmesi gereken noktaları özetler:

| Alan | İyi olduğu durum | Dikkat |
|------|------------------|--------|
| Ağ katmanı | async/await ile `URLSession` servisleri, DTO’lar | `Sendable` ve `@MainActor` ihlalleri |
| SwiftUI | Küçük view’lar, state yönetimi | Karmaşık animasyon ve layout |
| UIKit | ViewController refactor, optional güvenliği | Auto Layout constraint çakışmaları, storyboard |
| Testler | XCTest senaryoları, mock’lar | Test hedefi ve simülatör seçimi |
| Proje yapısı | Yeni modül ekleme, klasör düzeni | `project.pbxproj` çakışmaları |

Codex genellikle view model yazma, ağ isteklerini async/await’e çevirme, force unwrap temizliği ve test ekleme gibi işlerde iyi sonuç verir. Ancak özellikle şu konularda dikkatli olun: `project.pbxproj` elle düzenlendiğinde Xcode proje dosyası bozulabilir; code signing ve entitlements değişiklikleri cihazda çalışmayı etkileyebilir; Swift concurrency kuralları (`Sendable`, `@MainActor`) göz ardı edilirse derleme uyarıları ve çalışma zamanı sorunları çıkar; SwiftUI preview’ları ve asset katalogları yanlış düzenlenirse arayüz bozulur. Ayrıca localization dosyaları ve storyboard/xib’ler ajanın elle düzenlemesi risklidir; bu dosyalarda genellikle ikili format veya çok sayıda satır olduğundan diff büyük olur ve çakışma olasılığı artar. Bu yüzden ajanın her diff’ini `git diff` ile inceleyin ve yalnızca beklenen dosyaların değiştiğinden emin olun.

## Test ve doğrulama

Codex’e her değişiklikten sonra testleri çalıştırmasını söyleyin. Uzun süren UI testleri yerine önce birim testlerini `-only-testing` ile daraltabilirsiniz. Örneğin: `xcodebuild test -project MyApp.xcodeproj -scheme MyApp -destination 'platform=iOS Simulator,name=iPhone 15' -only-testing:MyAppTests/UserServiceTests`. Ajan test çıktısındaki hatayı okuyup düzeltebilir; siz de `git diff --check` ve `swiftlint` çıktısını inceleyin. CI’da yakalanan hatalar için ajanı yönlendirmek isterseniz [CI hatasını yapay zeka düzeltsin](/blog/ci-hatasini-yapay-zeka-duzeltsin/) yaklaşımını kullanabilirsiniz.

Ajanın test çalıştırırken doğru simülatörü seçtiğinden emin olun; `xcrun simctl list devices` komutu ile mevcut cihazları görebilir. Eğer testler paralel çalıştırılacaksa, test planı kullanmak faydalıdır. Codex, test hedeflerini ve `-only-testing` bayrağını doğru kullanabilir; ancak hangi testlerin çalıştırılacağını açıkça belirtmezseniz tüm test paketini çalıştırabilir ve bu da zaman kaybına yol açar. Bu yüzden promptlarınıza "sadece UserServiceTests çalıştır" gibi ifadeler ekleyin. Ayrıca `swift test` çıktısındaki hata mesajlarını ajanın okuyup düzeltebilmesi için terminal çıktısını paylaşmasına izin verin; gerekirse hata satırını prompt’a yapıştırın.

## Birden çok ajanı AgentVera ile çalıştırma

Swift ve iOS projelerinde birden çok ajanı paralel çalıştırmak, özellikle farklı modüller üzerinde çalışırken dosya çakışmaları riskini artırır. AgentVera, her ajanı kendi git worktree’sinde çalıştırarak bu sorunu çözer; ayrıca bir ajanın turu bittiğinde ikinci bir model kodunu inceler ve bulguları `file:line` olarak bağlar. Checkpoint özelliği, Xcode proje dosyası veya UIKit değişikliklerinde yanlış bir adımı tek tıkla geri almayı sağlar. Token bütçeleri ise uzun derleme ve test döngülerinde ajanın kontrolden çıkmasını engeller. Daha fazlası için [AgentVera nasıl kullanılır](/blog/agentvera-nasil-kullanilir/) sayfasına bakabilirsiniz.

## Sonuç

Codex, Swift ve iOS projelerinde doğru bağlam ve küçük adımlarla güvenilir bir eş olur. AGENTS.md’yi net tutun, her değişiklikten sonra testleri çalıştırın ve özellikle proje dosyası ile concurrency konularında diff’i inceleyin. Böylece ajan, derleme hatalarını azaltır ve geliştirme hızınızı artırır.

## Sık sorulanlar

**Codex Swift ve iOS projelerinde nasıl başlatılır?** Proje klasöründe codex komutunu çalıştırın. Ajanın komutları ve klasör kurallarını bilmesi için kök dizine AGENTS.md dosyasını ekleyin.

**Codex SwiftUI ve UIKit kodunu düzeltebilir mi?** Evet; derleme hatalarını, eksik import’ları ve yanlış API kullanımını çoğu zaman düzeltir. Ancak Xcode proje dosyası çakışmaları veya arayüz davranışları için üretilen diff’i gözden geçirmek gerekir.

**Codex ile iOS testleri nasıl çalıştırılır?** Ajan xcodebuild test veya Swift Package Manager projelerinde swift test komutunu kullanabilir. Testleri her küçük adımdan sonra çalıştırmasını isteyin.

**Codex AGENTS.md dosyasını nasıl kullanır?** Codex, proje kökündeki AGENTS.md dosyasını bağlam olarak okur. Bu dosyada build, test, lint komutları ve Swift/iOS’a özgü kurallar yer almalıdır.

---

**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/
