Takip et

GitHub Copilot CLI ile İlk Denemede macOS Menü Çubuğu Uygulaması Geliştirmek: Bir Başarı Hikayesi

GitHub Copilot CLI ile İlk Denemede macOS Menü Çubuğu Uygulaması Geliştirmek: Bir Başarı Hikayesi Yapay zeka destekli geliştirme araçları, modern…

GitHub Copilot CLI ile İlk Denemede macOS Menü Çubuğu Uygulaması Geliştirmek: Bir Başarı Hikayesi

Yapay zeka destekli geliştirme araçları, modern yazılım dünyasında oyunun kurallarını yeniden yazıyor. Bu araçlar, karmaşık görevleri basitleştirme, geliştirme süreçlerini hızlandırma ve hatta daha önce imkansız görünen şeyleri mümkün kılma potansiyeli sunuyor. Bu makalede, GitHub Copilot CLI’ın bu dönüştürücü gücünü bizzat deneyimlediğim, tek bir komutla çalışan bir macOS menü çubuğu uygulaması oluşturma serüvenimi paylaşacağım. Bu deneyim, yapay zekanın geliştiricilere sunduğu inanılmaz verimlilik artışının ve prototipleme yeteneğinin çarpıcı bir kanıtı niteliğindedir.

Yapay Zeka Destekli Geliştirmenin Yükselişi

Yazılım geliştirme dünyası, son yıllarda yapay zeka ve makine öğrenimi teknolojilerinin entegrasyonuyla büyük bir dönüşüm yaşıyor. Artık geliştiriciler, kod yazma, hata ayıklama ve hatta proje mimarisi oluşturma gibi süreçlerde yapay zeka destekli araçlardan faydalanabiliyorlar. Bu durum, hem bireysel geliştiricilerin hem de büyük ekiplerin çalışma şekillerini kökten değiştiriyor.

Yazılım Geliştirmede Paradigma Değişimi

Geleneksel yazılım geliştirme süreçleri genellikle manuel kodlama, uzun süren hata ayıklama döngüleri ve kapsamlı dokümantasyon gerektirir. Yapay zeka destekli araçlar, bu süreçlerin otomatize edilmesine yardımcı olarak geliştiricilerin daha stratejik ve yaratıcı görevlere odaklanmasını sağlıyor. Kod tamamlama, kod üretimi, test senaryosu oluşturma ve hatta kod refactoring gibi alanlarda yapay zeka, geliştiricilerin sağ kolu haline geliyor. Bu, bir zamanlar sadece bilim kurgu filmlerinde gördüğümüz senaryoların gerçeğe dönüşmesi anlamına geliyor.

Verimlilik ve Hızın Önemi

Günümüzün rekabetçi teknoloji ortamında, ürünleri hızlı bir şekilde pazara sunmak ve sürekli yenilik yapmak hayati önem taşıyor. Yapay zeka destekli kodlama araçları, bu hızı ve verimliliği sağlamanın anahtarlarından biri haline geldi. Tekrarlayan görevleri otomatikleştirerek, boilerplate kodları anında üreterek ve potansiyel hataları önceden tespit ederek, geliştirme döngülerini önemli ölçüde kısaltıyorlar. Bu sayede, projeler daha kısa sürede tamamlanabiliyor ve geliştiriciler daha fazla değeri daha az zamanda üretebiliyorlar.

Geliştirici Deneyimine Etkisi

Yapay zeka, geliştirici deneyimini de kökten iyileştiriyor. Yeni bir teknolojiye veya dile adapte olma süresi kısalıyor, çünkü yapay zeka, bilinmeyen syntax’ları veya API’leri hızlıca öğrenmeye yardımcı olabiliyor. Ayrıca, karmaşık problemleri çözmek için beyin fırtınası yaparken veya farklı yaklaşımları denerken bir “pair programmer” gibi davranarak geliştiricilere destek oluyor. Bu, özellikle yeni başlayanlar için öğrenme eğrisini yumuşatırken, deneyimli geliştiricilerin de daha karmaşık ve yenilikçi çözümlere odaklanmasına olanak tanıyor.

GitHub Copilot CLI Nedir ve Neden Önemlidir?

GitHub Copilot, OpenAI Codex tarafından desteklenen ve geliştiricilere kod yazarken yardımcı olan bir yapay zeka aracıdır. Kod tamamlama, fonksiyon önerme ve hatta tüm kod bloklarını oluşturma yeteneğine sahiptir. GitHub Copilot CLI ise bu gücü doğrudan terminalinize getirir.

Terminalden Kod Üretimi

GitHub Copilot CLI, adından da anlaşılacağı gibi, komut satırı arayüzünden Copilot’ın yeteneklerine erişmenizi sağlar. Bu, geliştiricilerin IDE’lerinden ayrılmadan, terminalde çalışırken anında kod, komut veya hatta shell script’leri oluşturabilmeleri anlamına gelir. Örneğin, karmaşık bir git komutu hatırlamak yerine, Copilot CLI’a ne yapmak istediğinizi söyleyebilir ve doğru komutu alabilirsiniz. Bu, özellikle sistem yöneticileri, DevOps mühendisleri ve terminalde çok zaman geçiren geliştiriciler için büyük bir kolaylık sağlar.

Hızlı Prototipleme ve Keşif Aracı

Copilot CLI’ın en büyük avantajlarından biri, hızlı prototipleme yeteneğidir. Yeni bir fikir üzerinde çalışırken veya bir kavramı test etmek istediğinizde, uzun süreli kurulumlara veya detaylı dokümantasyon okumalarına gerek kalmadan, doğrudan terminalden çalışan bir örnek kod parçası isteyebilirsiniz. Bu, özellikle yeni bir dil, framework veya platform üzerinde çalışmaya başlarken öğrenme sürecini hızlandırır ve deneme-yanılma maliyetini düşürür. İlk denemede macOS menü çubuğu uygulaması oluşturma deneyimim, bu prototipleme gücünün mükemmel bir örneğidir.

Kurulum ve Temel Kullanım

Copilot CLI’ı kullanmaya başlamak oldukça basittir. Öncelikle GitHub Copilot aboneliğinizin olması gerekir. Ardından, GitHub CLI’ı (gh) yükledikten sonra, Copilot CLI uzantısını kurmanız yeterlidir:


gh extension install github/gh-copilot

Kurulum tamamlandıktan sonra, gh copilot komutu ile Copilot'a soru sorabilirsiniz. Örneğin:


gh copilot explain git reset --hard HEAD~1
gh copilot suggest "Python'da bir web sunucusu nasıl başlatılır?"

Bu basit komutlar, terminalde yapay zeka destekli bir asistanla etkileşim kurmanın kapılarını aralar.

Proje Fikri ve İlk Adım

Deneyimin temelinde, basit ama işlevsel bir macOS menü çubuğu uygulaması oluşturma fikri yatıyordu. Bu, genellikle biraz karmaşık olabilen, AppKit ve SwiftUI gibi teknolojilerin entegrasyonunu gerektiren bir alandır.

Basit Bir Menü Çubuğu Uygulaması İhtiyacı

Günlük kullanımda, macOS menü çubuğunda sürekli olarak erişmek istediğim küçük bir işlevsellik için basit bir uygulama ihtiyacım vardı. Bu, karmaşık bir UI gerektirmeyen, sadece birkaç tıklama ile belirli bir eylemi tetikleyecek minimalist bir araç olacaktı. Örneğin, belirli bir URL'yi açmak, bir script çalıştırmak veya basit bir durumu görüntülemek gibi.

Minimalist Bir Uygulama Tasarımı

Uygulamanın tasarımı oldukça basitti:

  • Menü çubuğunda bir ikon.
  • İkona tıklandığında açılan bir menü.
  • Menüde birkaç seçenek (örneğin, "Ayarlar", "Hakkında", "Çıkış").

Bu minimalist yaklaşım, Copilot CLI'ın temel yeteneklerini test etmek için ideal bir senaryo sunuyordu. Çok fazla karmaşıklık eklemeden, çekirdek işlevselliği odaklanmak istedim.

Beklentiler ve Şüpheler

Açıkçası, tek bir komutla çalışan bir macOS menü çubuğu uygulaması elde etme konusunda biraz şüphelerim vardı. Genellikle bu tür projeler için Xcode projesi oluşturmak, AppDelegate veya App yaşam döngüsünü yapılandırmak, NSStatusItem veya MenuBarExtra gibi bileşenleri anlamak ve SwiftUI ile entegre etmek gerekir. Copilot CLI'ın bu kadar spesifik ve platforma özgü bir görevi, üstelik ilk denemede, ne kadar iyi yerine getirebileceği merak konusuydu. Ancak, denemekten zarar gelmezdi.

Copilot CLI ile Etkileşim ve İlk İstek

İşte bu deneyimin en heyecan verici kısmı: Copilot CLI'a soruyu sormak ve yanıtı beklemek. Bu an, yapay zekanın potansiyelini gerçekten hissettiğim bir an oldu.

Doğru İstemi Oluşturmanın Sanatı

Yapay zeka araçlarından en iyi sonuçları almak için doğru ve net istemler (prompt'lar) oluşturmak kritik öneme sahiptir. İstemin ne kadar spesifik ve anlaşılır olduğu, üretilen kodun kalitesini doğrudan etkiler. Bu durumda, amacım oldukça netti: bir macOS menü çubuğu uygulaması.

"macOS menü çubuğu uygulaması yap" İstemi

Tüm beklentilerimi ve şüphelerimi bir kenara bırakarak, terminale şu basit komutu yazdım:


gh copilot suggest "macOS menü çubuğu uygulaması yap"

Bu kadar genel bir istemin bile ne kadar etkili olabileceğini görmek şaşırtıcıydı. Herhangi bir dil (Swift, Objective-C), framework (AppKit, SwiftUI) veya spesifik özellik belirtmemiştim. Sadece temel bir istekte bulunmuştum.

Copilot'ın Anlık Yanıtı

Birkaç saniye içinde Copilot CLI, beklentilerimin ötesinde bir yanıt verdi. Bana doğrudan çalıştırılabilir bir Swift kodu bloğu sundu. Bu kod, temel bir menü çubuğu uygulaması iskeletini içeriyordu: bir AppDelegate sınıfı, NSStatusItem kullanarak menü çubuğuna bir ikon ekleme ve basit bir menü oluşturma işlevselliği. Yanıt, sadece kodla sınırlı kalmadı, aynı zamanda kodu nasıl derleyip çalıştıracağıma dair kısa talimatlar da içeriyordu. Bu, "ilk denemede çalışan bir uygulama" hedefime ulaşmam için gereken tüm bilgileri tek bir pakette sunuyordu.

Oluşturulan Kodu Anlamak ve Çalıştırmak

Copilot'ın sunduğu kodu incelemek ve onu çalışır hale getirmek, bu sürecin bir sonraki aşamasıydı. Kodun yapısı, macOS uygulama geliştirme prensiplerine oldukça uygun ve anlaşılırdı.

SwiftUI ve AppKit Temelleri

Copilot tarafından üretilen kod, SwiftUI'ın modern macOS uygulama geliştirme yaklaşımıyla AppKit'in daha geleneksel menü çubuğu entegrasyonunu birleştiren bir yapıya sahipti. Temel olarak, bir SwiftUI App yapısı tanımlanmış ve bu yapı içinde NSApplicationDelegateAdaptor kullanılarak geleneksel AppDelegate yaşam döngüsüne erişilmişti. Bu, hem modern hem de eski API'lerden faydalanarak esneklik sağlayan yaygın bir desendir.

İşte Copilot'ın ürettiği (veya benzeri) basitleştirilmiş bir kod örneği:


import SwiftUI
import AppKit

@main
struct MenuBarApp: App {
    @NSApplicationDelegateAdaptor(AppDelegate.self) var appDelegate

    var body: some Scene {
        Settings {
            // Ayarlar penceresi göstermeyeceğiz, bu yüzden boş bırakıyoruz
            EmptyView()
        }
    }
}

class AppDelegate: NSObject, NSApplicationDelegate {
    var statusItem: NSStatusItem?

    func applicationDidFinishLaunching(_ notification: Notification) {
        // Menü çubuğuna bir ikon ekle
        statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)
        if let button = statusItem?.button {
            button.image = NSImage(systemSymbolName: "ellipsis.circle", accessibilityDescription: "Uygulama İkonu")
            button.action = #selector(toggleMenu(_:))
        }

        // Basit bir menü oluştur
        let menu = NSMenu()
        menu.addItem(NSMenuItem(title: "Merhaba Copilot!", action: nil, keyEquivalent: ""))
        menu.addItem(NSMenuItem.separator())
        menu.addItem(NSMenuItem(title: "Ayarlar", action: #selector(openSettings), keyEquivalent: ","))
        menu.addItem(NSMenuItem.separator())
        menu.addItem(NSMenuItem(title: "Çıkış", action: #selector(NSApplication.terminate(_:)), keyEquivalent: "q"))
        statusItem?.menu = menu
    }

    @objc func toggleMenu(_ sender: AnyObject?) {
        // İkona tıklandığında menüyü göster
        statusItem?.menu?.popUp(positioning: nil, at: NSEvent.mouseLocation, in: nil)
    }

    @objc func openSettings() {
        // Ayarlar işlevselliği buraya eklenebilir
        print("Ayarlar açıldı.")
    }
}

Kodun Yapısı ve Bileşenleri

Kodun ana bileşenleri şunlardı:

  • MenuBarApp: SwiftUI'ın ana uygulama yapısı.
  • AppDelegate: Geleneksel AppKit yaşam döngüsü olaylarını yöneten sınıf.
  • NSStatusItem: Menü çubuğundaki ikon ve menüyü temsil eden anahtar bileşen.
  • NSMenu ve NSMenuItem: İkona tıklandığında açılan menüyü ve menü öğelerini oluşturan sınıflar.

Bu yapı, macOS menü çubuğu uygulamaları için standart ve sağlam bir temel sağlıyordu.

Gerekli Ortam Kurulumu ve Derleme Adımları

Copilot'ın talimatları basitti: kodu bir .swift dosyasına kaydet ve swift build ile derle. Ancak, macOS uygulamaları için genellikle Xcode projesi ve belirli derleme ayarları gerekir. Copilot CLI, bu detayı atlamış olsa da, kodu doğrudan Xcode'a yapıştırarak veya basit bir Swift paketi olarak derlemeyi deneyerek kolayca aşılabilir bir adımdı.
Ben, kodu Xcode'da yeni bir macOS uygulaması projesine yapıştırdım ve derledim.

  1. Xcode'u açın ve "New Project" seçeneğini seçin.
  2. "macOS" sekmesinden "App" şablonunu seçin.
  3. Proje adını belirleyin ve "Interface" olarak "SwiftUI" seçeneğini işaretleyin.
  4. Oluşturulan ContentView.swift ve [ProjeAdı]App.swift dosyalarını silin (veya içeriğini değiştirin).
  5. Copilot'ın verdiği kodu yeni bir Swift dosyasına (örneğin, AppDelegate.swift) yapıştırın.
  6. Projenizi derleyin (Command + B) ve çalıştırın (Command + R).

Uygulamanın İlk Çalışması ve Sonuç

Uygulamayı çalıştırdığımda, gerçekten de macOS menü çubuğunda belirlenen ikon belirdi! İkona tıkladığımda ise Copilot'ın tanımladığı basit menü açıldı. "Merhaba Copilot!" yazısı, "Ayarlar" ve "Çıkış" seçenekleri mevcuttu. "Çıkış" seçeneği uygulamayı doğru bir şekilde kapatıyordu. Bu, ilk denemede, herhangi bir hata ayıklama veya kod değişikliği yapmadan çalışan bir macOS menü çubuğu uygulamasıydı. Bu an, yapay zekanın ne kadar ileri gittiğini ve geliştirme süreçlerini ne kadar basitleştirebileceğini gösteren çarpıcı bir başarıydı.

Deneyimden Çıkarılan Dersler ve Gelecek Vizyonu

Bu deneyim, sadece bir uygulamanın oluşturulmasından çok daha fazlasını ifade ediyor. Yapay zekanın yazılım geliştirme üzerindeki etkisine dair önemli dersler çıkardım.

Yapay Zekanın Gücü ve Sınırları

Bu deneyim, yapay zekanın karmaşık platforma özgü görevlerde bile ne kadar güçlü olabileceğini gösterdi. Tek bir basit istemle, çalışan bir uygulama iskeleti oluşturmak, yapay zekanın bilgi sentezi ve kod üretimindeki yeteneklerinin bir kanıtıdır. Ancak, bu deneyim aynı zamanda yapay zekanın sınırlarını da ortaya koydu. Örneğin, derleme ve Xcode proje yapısı gibi platforma özgü detayları tam olarak açıklamaması, hala bir insan geliştiricinin rehberliğine ihtiyaç duyulduğunu gösteriyor. Yapay zeka, bir başlangıç noktası sunar, ancak detaylı entegrasyon ve optimizasyon genellikle insan müdahalesi gerektirir.

Geliştirici Rolünün Evrimi

Yapay zeka araçları, geliştiricilerin işini elinden almak yerine, onların rolünü dönüştürüyor. Artık geliştiriciler, sıfırdan her şeyi kodlamak yerine, yapay zeka tarafından üretilen kodları anlamak, değerlendirmek, iyileştirmek ve entegre etmek gibi daha üst düzey görevlere odaklanabilirler. Bu, geliştiricilerin daha çok bir "mimar" veya "orkestratör" gibi davranmasını gerektirir, böylece daha karmaşık sistemler tasarlayabilir ve daha yaratıcı çözümler üretebilirler. Rutin ve tekrarlayan görevler yapay zekaya devredilirken, insan zekası daha stratejik alanlara kaydırılıyor.

Gelecekteki Projelerde Copilot CLI Kullanımı

Bu deneyimden sonra, Copilot CLI'ı ve benzeri yapay zeka araçlarını gelecekteki projelerimde daha aktif kullanmaya karar verdim. Özellikle:

  • Hızlı Prototipleme: Yeni bir fikir veya teknoloji denemesi yaparken, hızlıca çalışan bir örnek kod almak için.
  • boilerplate Kod Üretimi: Tekrarlayan yapıları veya standart proje iskeletlerini oluşturmak için.
  • Bilinmeyen API'leri Keşfetme: Yeni bir kütüphane veya API kullanırken, örnek kullanımları hızlıca öğrenmek için.
  • Komut Satırı Yardımcısı: Karmaşık git, docker veya shell komutlarını hatırlamak veya oluşturmak için.

Bu araçlar, geliştirme sürecimi önemli ölçüde hızlandıracak ve daha verimli hale getirecektir.

Sonuç

GitHub Copilot CLI ile tek bir istemde çalışan bir macOS menü çubuğu uygulaması oluşturma deneyimim, yapay zeka destekli geliştirme araçlarının ne kadar güçlü ve dönüştürücü olabileceğine dair somut bir kanıt sundu. Bu araçlar, geliştiricilerin verimliliğini artırmakla kalmıyor, aynı zamanda yeni fikirleri hayata geçirme hızlarını da inanılmaz derecede hızlandırıyor. Gelecekte, yapay zeka ve insan iş birliğinin yazılım geliştirmenin temelini oluşturacağını ve biz geliştiricilerin daha yaratıcı, daha stratejik ve daha etkili çözümler üretmeye odaklanabileceğimizi gösteriyor. Bu deneyim, sadece bir kod parçası değil, aynı zamanda geleceğin geliştirme metodolojilerine dair heyecan verici bir bakış açısıydı.

Sıkça Sorulan Sorular (SSS)

Copilot CLI'ı kurmak zor mu?

Hayır, Copilot CLI'ı kurmak oldukça basittir. Öncelikle GitHub CLI'ın (gh) yüklü olması gerekir, ardından tek bir komutla (gh extension install github/gh-copilot) uzantıyı kurabilirsiniz. Aktif bir GitHub Copilot aboneliğinizin olması gerektiğini unutmayın.

Herhangi bir dil veya framework için kullanılabilir mi?

Evet, GitHub Copilot CLI, geniş bir dil ve framework yelpazesini destekler. Python, JavaScript, Java, C#, Go, Ruby, Swift ve daha birçok dilde kod üretebilir. İsteminizi ne kadar spesifik yaparsanız, o kadar doğru ve kullanışlı sonuçlar alırsınız.

Üretilen kod her zaman hatasız mı oluyor?

Hayır, yapay zeka tarafından üretilen kod her zaman hatasız veya optimal olmayabilir. Copilot bir asistandır ve üretilen kodu her zaman gözden geçirmek, test etmek ve gerektiğinde düzenlemek geliştiricinin sorumluluğundadır. Ancak, çoğu zaman iyi bir başlangıç noktası veya çözüm önerisi sunar.

Bu tür uygulamalar için hangi teknolojiler kullanılıyor?

macOS menü çubuğu uygulamaları genellikle Apple'ın kendi framework'leri olan AppKit (daha geleneksel) veya SwiftUI (daha modern) kullanılarak geliştirilir. Çoğu zaman bu iki framework bir arada kullanılır, özellikle menü çubuğu entegrasyonu için AppKit'in NSStatusItem'ı ve UI bileşenleri için SwiftUI tercih edilebilir.

Copilot CLI, geliştiricilerin işini elinden alacak mı?

Hayır, Copilot CLI ve benzeri yapay zeka araçları, geliştiricilerin işini elinden almak yerine, onların verimliliğini artıran ve daha karmaşık problemlere odaklanmalarını sağlayan araçlardır. Geliştirici rolü evrimleşerek, yapay zeka tarafından üretilen kodları yönetme, iyileştirme ve stratejik kararlar alma üzerine daha fazla yoğunlaşacaktır. Yapay zeka, bir "yardımcı pilot" görevi görür, ana pilot her zaman geliştiricidir.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Mobil sürümden çık