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

Claude Code ile Swift ve iOS Geliştirme Rehberi

Claude Code’u SwiftUI, UIKit, SPM ve XCTest projelerinde nasıl kullanacağınızı öğrenin: CLAUDE.md kurulumu, çalışma döngüsü, testler ve paralel ajanlar.

Solviera Teknoloji 5 dk okuma

Swift ve iOS projelerinde Claude Code’u proje klasöründe claude komutuyla başlatıp Xcode, Swift Package Manager ve XCTest işlerini yürütebilirsiniz. Ajan, kök dizindeki CLAUDE.md dosyasını okuyarak build, test ve lint komutlarınızı bilir; SwiftUI ve UIKit kodunuza göre çalışır. Bu rehberde kurulumdan paralel ajan kullanımına kadar pratik bir akış paylaşıyorum.

Swift ve iOS işlerine neden uygun

Claude Code, bir Swift/iOS deposunda terminal üzerinden çalışabildiği için Xcode’un komut satırı araçlarını doğrudan kullanır. xcodebuild, swift test, swift package ve simülatör komutlarıyla build alabilir, test çalıştırabilir, bağımlılıkları çözebilir. Swift dilinin async/await, actor ve @MainActor gibi eşzamanlılık özelliklerini anlar; bu sayede ağ katmanı veya ViewModel refactor’larında doğru izolasyon önerileri verir. SwiftUI’nin deklaratif yapısında yeni view’lar eklemek, UIKit’te constraint ve stack view kurmak gibi rutin işlerde hız kazandırır. Ayrıca Swift Package Manager ile modüler yapı kurmak, test hedefleri eklemek ve bağımlılıkları yönetmek için ideal bir arayüz sunar; ajan Package.swift’i okuyup tutarlı değişiklikler yapabilir. Öte yandan Xcode’un görsel arayüzünü açamaz; imzalama, storyboard/xib ve karmaşık proje ayarları için sizden net talimat bekler.

Projeyi ajan için hazırlama ve CLAUDE.md

Ajanın en büyük bağlam kaynağı CLAUDE.md dosyasıdır. Repo köküne bu dosyayı ekleyin; build, test, lint komutlarını, klasör düzenini ve Swift/iOS’e özel kuralları yazın. Böylece ajan her seferinde hangi şemayı, hangi simülatörü ve hangi kuralları kullanacağını bilir. Gerçekçi bir örnek:

# CLAUDE.md

## Komutlar
- Bağımlılıklar: `swift package resolve`
- Build: `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' -only-testing:MyAppTests`
- Lint: `swiftlint`

## Klasör yapısı
- `MyApp/` uygulama kaynakları
- `MyAppTests/` birim testleri
- `MyAppUITests/` UI testleri
- `Packages/` altında SPM paketleri

## Kurallar
- UIKit ve SwiftUI karışımında ağır işler arka planda çalışsın; UI güncellemeleri @MainActor üzerinde olsun
- Hata yönetiminde Result yerine throws kullanın
- ViewModel'ler @Observable veya ObservableObject kullanmalı; test edilebilir olmalı
- Debug için print bırakmayın; Logger kullanın

Bu kurallar ajanın ürettiği kodun mevcut mimariyle uyumlu olmasını sağlar. Komutları gerçek projenizdeki şema ve simülatör adlarıyla değiştirin; simülatör adını xcrun simctl list devices available ile teyit edebilirsiniz. CLAUDE.md dosyasını kısa tutun; tüm dökümantasyonu içine dökmek yerine yalnızca ajanın karar verirken ihtiyaç duyacağı komutları ve kuralları ekleyin.

Çalışma döngüsü: plan, küçük adımlar, testler, diff

Claude Code ile güvenli çalışmanın anahtarı, ajanı serbest bırakmadan önce plan istemektir. Önce hangi dosyaların değişeceğini, hangi testlerin etkileneceğini ve olası riskleri listeleyin; Claude Code plan modu yaklaşımı burada işe yarar. Ardından tek bir görevi küçük adımlara bölün; her adımdan sonra ajanın xcodebuild veya swift test çalıştırmasını isteyin. Değişiklikleri git diff ile gözden geçirin; ajanın yaptığı refactor’un kapsamını anlamadan merge etmeyin.

Tipik Swift/iOS görevleri için örnek istekler:

  • Mevcut UIKit ekranındaki ağ çağrısını async/await ile refactor et; completion handler’ları kaldır, hata yönetimini throws ile yap. Değişiklikleri yapmadan önce etkilenecek dosyaları listele.
  • SwiftUI listesinde görselleri async yükleyen bir ViewModel oluştur; @MainActor kullan, servis bağımlılığını protokol olarak enjekte et ve birim testlerini ekle.
  • XCTest’te şu test başarısız: [hata mesajı]. Hatayı analiz et ve en küçük düzeltmeyi uygula; mevcut diğer testleri bozma.
  • SPM paketine yeni bir hedef ekle ve uygulama hedefine bağla; Package.swift ve gerekli proje dosyalarını güncelle, ardından swift test çalıştır.
  • UI testi için erişilebilirlik tanımlayıcıları ekle; her buton, liste hücresi ve metin alanına accessibilityIdentifier ver. Sadece tanımlayıcı ekle, davranışı değiştirme.

Bu istekleri uygularken ajanın her adımda hangi dosyayı neden değiştirdiğini açıklamasını isteyin. git diff çıktısını okuyun; özellikle UIKit constraint değişikliklerinde görsel hiyerarşi bozulmamış mı, @MainActor izolasyonu korunmuş mu kontrol edin. Son adımı siz onaylamadan ajanın bir sonraki göreve geçmesine izin vermeyin.

İyi olduğu işler ve dikkat edilecekler

Claude Code özellikle tekrarlayan ve test edilebilir işlerde iyidir. Aşağıdaki tablo tipik görevler ile dikkat edilmesi gereken Swift/iOS detaylarını özetler.

GörevClaude Code iyi yaparDikkat edilecekler
Async/await dönüşümüCompletion handler kaldırma, throws ekleme@MainActor eksikse arayüz güncellemeleri arka plana düşebilir
SwiftUI view/ViewModel@Observable, bindings, liste yapılarıÖnizleme verileri ve environment object’ler test için ayrılmalı
UIKit Auto LayoutNSLayoutConstraint ve stack view üretimiÇakışan constraint’ler, safe area ve trait koleksiyonları
SPM entegrasyonuPackage.swift hedef ve bağımlılık eklemeXcode projesiyle senkron; kilit dosyası değişiklikleri
XCTest ekleme/onarmaTest yazma, async test, expectationUI testleri yavaş ve kırılgan; sadece kritik akışlar

En büyük risklerden biri eşzamanlılık: ajan @MainActor veya Sendable uyarılarını göz ardı ederse, Swift 6 strict concurrency modunda derleme hataları oluşabilir. Bu nedenle CLAUDE.md’de thread kurallarını netleştirin. Storyboard ve xib dosyaları XML olarak kırılgandır; ajan bu dosyaları düzenlerken diff’i dikkatle inceleyin, mümkünse yeni ekranları SwiftUI veya kod tabanlı UIKit ile yazmasını isteyin. Proje dosyası project.pbxproj değişiklikleri de risklidir; ajan hedef eklerken Xcode’un beklediği UUID düzenini bozabilir. Bu tür yapısal değişiklikleri ajan yerine Xcode’da yapıp Swift dosyalarını ajana bırakmak daha güvenlidir. Lokalizasyon dosyaları (.strings) ve asset katalogları eklemek ajan için kolaydır; ancak string anahtarlarının unique olması ve format argümanlarının doğru sıralanması gerekir. Özellikle çoğul kurallar için stringsdict dosyası üzerinde yapılan değişiklikleri test edin.

Test ve doğrulama

Her değişiklikten sonra testleri çalıştırmak, ajanla Swift/iOS geliştirmenin en kritik adımıdır. SPM paketlerinde swift test yeterlidir; Xcode projesinde ise belirli şema ve simülatörle xcodebuild test çalıştırın. Örneğin:

xcodebuild test -project MyApp.xcodeproj -scheme MyApp -destination 'platform=iOS Simulator,name=iPhone 15' -only-testing:MyAppTests

Ajanın yalnızca hataları değil, test çıktısındaki uyarıları da yorumlamasını isteyin. UI testleri için XCTWaiter ve explicit bekleme kullanın; sabit sleep eklemesine izin vermeyin. Kod kapsamını görmek isterseniz xcodebuild test -enableCodeCoverage YES ardından xcrun xccov view --report komutlarını çalıştırabilirsiniz. Ajan, hangi testlerin ekleneceğini de önerebilir; ancak testleri gözden geçirmeden kabul etmeyin, özellikle asenkron testlerde beklentilerin süresi ve iptal edilme durumları yanlış olabilir. Xcode test planları kullanıyorsanız, ajanın test planını değiştirmesine izin vermeden önce hangi konfigürasyonların kapsandığını kontrol edin. Paralel testlerde simülatör klonlama ve test hedefi izolasyonu ajanın önerdiği komutlardan bağımsız olarak doğrulanmalıdır. Ajan yalnızca test çalıştırmakla kalmaz, başarısız assertion’lardan yola çıkarak üretim kodunu düzeltebilir; ancak düzeltmenin testi geçirmek için testi zayıflatmadığından emin olun.

Birden fazla ajanı AgentVera ile paralel çalıştırma

Swift/iOS projenizde birden fazla Claude Code ajanını paralel çalıştırmak isterseniz AgentVera masaüstü uygulaması her ajanı kendi gerçek terminal panelinde çalıştırır. Ajanlar ayrı git worktree’lerde ilerleyebildiği için aynı Xcode projesini bozmadan paralel özellik geliştirebilirsiniz. Ajan bitince ikinci bir model otomatik kod incelemesi yapar ve bulgular file:line olarak bağlanır; bu, SwiftUI/UIKit değişikliklerinde gözden kaçan @MainActor veya constraint hatalarını yakalar. Her turun anlık görüntüsü checkpoint olarak tutulur; bir değişikliği tek tıkla geri alabilirsiniz.

Özet

Claude Code, Swift ve iOS projelerinde terminal tabanlı doğrulamayı merkeze alarak hız kazandırır. CLAUDE.md ile bağlamı doğru kurun, küçük adımlarla planlı ilerleyin, her değişiklikte testleri çalıştırın ve diff’i inceleyin. Birden fazla ajan gerektiğinde AgentVera ile ayrı worktree’lerde paralel çalışarak riski dağıtabilirsiniz.

Sık sorulanlar

Claude Code Swift ve iOS projelerinde nasıl çalışır?

Claude Code terminalde claude komutuyla başlatılır ve proje kökündeki CLAUDE.md dosyasını okuyarak Xcode, Swift Package Manager ve XCTest komutlarını kullanır. Kaynak dosyalarını düzenler, test çalıştırır ve sonuçları yorumlar; Xcode arayüzünü açmaz.

CLAUDE.md dosyasına Swift/iOS için neler yazmalıyım?

Build, test ve lint komutlarını, hedef şema ve simülatör bilgisini, klasör yapısını ve kod kurallarını yazın. Örneğin xcodebuild test -scheme MyApp -destination 'platform=iOS Simulator,name=iPhone 15' ve swift test komutları ajanın doğrulama yapmasını sağlar.

Claude Code ile Xcode testleri nasıl çalıştırılır?

Ajana xcodebuild test veya SPM paketleri için swift test komutunu çalıştırmasını söyleyebilirsiniz. Belirli test sınıfları için -only-testing bayrağı kullanılabilir; ajan çıktıyı okuyup hataları düzeltebilir.

Claude Code SwiftUI ve UIKit kodunu aynı anda yönetebilir mi?

Evet, her iki çerçevede de kod yazabilir, refactor yapabilir. Ancak UIKit Auto Layout ve SwiftUI state yönetimi arasında geçişlerde @MainActor ve thread güvenliği kurallarını CLAUDE.md’de netleştirmek gerekir.

Ajanlarını bir masaya topla.

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

Diğer Claude Code rehberleri

Swift ve iOS için diğer ajanlar