Davet et, 1 ay ücretsiz Pro kazanNasıl çalışır?

Codex ile Swift ve iOS Geliştirme: Pratik Rehber

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.

Solviera Teknoloji 5 dk okuma

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 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) 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 durumDikkat
Ağ katmanıasync/await ile URLSession servisleri, DTO’larSendable ve @MainActor ihlalleri
SwiftUIKüçük view’lar, state yönetimiKarmaşık animasyon ve layout
UIKitViewController refactor, optional güvenliğiAuto Layout constraint çakışmaları, storyboard
TestlerXCTest senaryoları, mock’larTest hedefi ve simülatör seçimi
Proje yapısıYeni modül ekleme, klasör düzeniproject.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 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 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.

Ajanlarını bir masaya topla.

AgentVera’yı ücretsiz indir; kurulu CLI’ların hazır.

Diğer Codex rehberleri

Swift ve iOS için diğer ajanlar