Author: ekinbulut

  • Claude Code ve Multi-Agent Workflow ile Legacy iOS Uygulaması Refactoring

    Birkaç yıl önce geliştirip uzun süredir güncellemediğim bir iOS projem vardı. Altyapısı tamamen UIKit üzerine kurulu olan bu projede, yoğun olarak escaping closure barındıran asenkron yapılar ve bugünün standartlarına göre ciddi teknik borç (tech debt) üreten eski Swift kodları bulunuyordu.

    Projeye geri dönmemin sebebi acil bir güncelleme ihtiyacı değildi. Yapay zeka kod asistanlarının geldiği noktayı görünce, bu legacy kodu ele alıp baştan aşağı bir iOS refactoring süreci başlatmanın nasıl bir sonuç vereceğini test etmek istedim.

    Normal şartlarda bu ölçekteki bir iOS projesini refactor etmek, mimariyi temizlemek ve güncel standartlara çekmek ciddi bir efor gerektirir. Ancak yaygın olan “AI’a kodu verdim, o yazdı” yaklaşımı yerine, süreci kontrollü ve görev dağılımı yapılmış bir Multi-Agent (Çoklu Ajan) iş akışıyla yürüttüm. Tek bir chat ekranı kullanmak yerine, terminal üzerinden farklı sorumluluklara sahip bir yapay zeka sistemi kurguladım.

    İşte projenin modernize edilme sürecinin ve uyguladığım AI agent iş akışının detayları.

    Multi-Agent Ekibini Kurmak: Roller ve Sistem Promptları

    LLM’e tüm projeyi tek bir prompt ile verip “bunu düzelt” demek, genellikle bağlamın (context) kaybolmasına ve halüsinasyonlara neden oluyor. Bu yüzden yazılım mimarisindeki Sorumlulukların Ayrımı (Separation of Concerns)prensibini ajanlar üzerinde uyguladım. Her biri için izole Sistem Prompt’ları hazırlayarak üç farklı rol tanımladım:

    1. Product Manager (PM) Agent: Eski uygulamanın özelliklerini güncel kullanıcı ihtiyaçlarıyla eşleştirmek ve yapılacak taskları önceliklendirmekle görevli.
    2. UI/UX Designer Agent: Eski UIKit arayüzlerini Apple’ın güncel Human Interface Guidelines standartlarına göre analiz edip modern kullanıcı davranışları önermekle görevli.
    3. Developer Agent (Claude Code): Terminalde doğrudan kod tabanında çalışan, refactoring yapan ve teknik kaliteden sorumlu kod asistanı.

    Orkestrasyon: Merkezde İnsanın Olduğu (Human-in-the-Loop) Yönetim Modeli

    Yapay zeka ajanlarını birbirleriyle doğrudan etkileşime giren kontrolsüz bir döngüye bırakmak, projenin kapsamının kontrolsüzce genişlemesine (scope creep) yol açabiliyor. Bu yüzden süreci merkezden filtreleyerek yönettim:

    Plaintext

           [ PM Agent ] <---> [ UI/UX Agent ]
                                   ^
                                   |
                        [ Ben ] (Filtre & Karar)
                                   |
                                   v
                           [ Claude Code ] (Developer)
    

    İş akışı şu şekilde ilerledi:

    • Projeyi ilk olarak Claude Code ile tarattım. iOS kod tabanındaki mimari hataları ve eski kütüphane çakışmalarını raporladı.
    • Elde edilen bu analizi PM ve UX ajanlarıyla değerlendirdim. Uygulamanın yeni hedeflerini promptlar üzerinden aktardım.
    • UI/UX ajanı ve PM, navigasyon yapısı ve kullanıcı alışkanlıkları gibi bazı kritik akışlarda süreci yönlendirdi. Eski kodda çalışan ancak günümüzde hantal kalan yapıları, modern trendlere göre değiştirmemi önerdiler. Bu fikir alışverişiyle arayüz ve davranış kararlarını güncelledik.
    • Netleşen kararları spesifik tasklara bölüp terminaldeki Claude Code’a aktardım.

    Kodun Dönüşümü: Async/Await ve Derleme Süreci

    Claude Code, aldığı görevler doğrultusunda alt ajanlar (subagents) oluşturarak refactoring işini mikro parçalara böldü:

    • Network Katmanı Refactoring: Eski ve karmaşık closure yapıları, ağ katmanından sorumlu alt ajan tarafından temizlenerek modern Swift async/await yapılarına taşındı.
    • UI ve Hata Ayıklama: UX ajanından gelen tasarım kararları koda dökülürken, Xcode derleme (build) sırasında çıkan hataları ardışık bir geri bildirim döngüsüyle (feedback loop) çözen bir alt ajan devredeydi.

    AI’ın eski UIKit pratikleriyle yeni Swift yapılarını birbirine karıştırıp bağlamı kaybettiği anlarda devreye girip manuel düzeltmelerle süreci doğru rotaya soktum.

    Sonuç

    Bu süreç, Claude Code gibi yapay zeka araçlarından verim almanın yolunun sadece kod yazdırmak değil, sistemi doğru parçalara bölüp süreci iyi yönetmekten geçtiğini gösterdi.

    Uzun sürecek bir legacy kod modernizasyon sürecini, doğru yapılandırılmış bir multi-agent mimarisiyle çok daha kısa sürede tamamladım. iOS projesi şu an modern, optimize ve genişletilebilir bir kod tabanına sahip ve yayında.

  • Hello world!

    Welcome to WordPress. This is your first post. Edit or delete it, then start writing!