Tüm Yazılar
KategoriAI
Okuma Süresi
23 dk okuma
Yayın Tarihi
...
Kelime Sayısı
2.248kelime

Kahveni hazırla - bu içerikli bir makale!

VS Code fork'u Cursor AI, Tab completion, Composer ve .cursorrules ile yazılım geliştirmeyi devrimleştiriyor. GitHub Copilot karşılaştırması ve rehber.

Cursor AI: AI-First Kod Editörü ile 10x Verimlilik

# Cursor AI: AI-First Kod Editörü ile 10x Verimlilik

Yazılım geliştirmede AI devriminin en somut etkisini kod editörlerinde görüyoruz. Cursor, VS Code'un bir fork'u olarak başladı ama çok kısa sürede "AI-first IDE" kategorisini tek başına yarattı. Tab completion, Composer modu, multi-file editing ve proje bağlamını anlayan zeka ile Cursor, geliştiricilerin verimliliğini dramatik şekilde artırıyor. Eğer hâlâ vanilla VS Code veya sadece GitHub Copilot kullanıyorsan, bu yazı senin için bir dönüm noktası olabilir.

💡 Pro Tip: Cursor'ın en güçlü özelliği Composer modu. Cmd+I ile açtığında, doğal dilde bir değişiklik tarif ediyorsun ve Cursor birden fazla dosyayı aynı anda düzenliyor. Tek bir komutla 10+ dosyada tutarlı değişiklik yapabilirsin. Bu, özellikle refactoring ve yeni özellik ekleme süreçlerinde inanılmaz zaman kazandırır.

İçindekiler


1. Cursor Nedir ve Neden Farklı?

Cursor, Anysphere şirketinin geliştirdiği AI-native bir kod editörüdür. VS Code'un fork'u olduğu için tüm VS Code extension'ları, tema'ları ve kısayolları ile uyumlu. Ancak üzerine eklenen AI katmanı, onu sıradan bir editörden çok farklı kılıyor.

Temel Bilgiler

Özellik
Detay
**Geliştirici**
Anysphere Inc.
**Çıkış**
2023
**Temel**
VS Code fork
**AI Modelleri**
GPT-4o, Claude 3.5 Sonnet, DeepSeek, özel modeller
**Fiyat**
Hobby: $0 (sınırlı), Pro: $20/ay, Business: $40/ay
**Platform**
macOS, Windows, Linux
**Extension**
VS Code marketplace uyumlu

Neden VS Code Yerine Cursor?

  1. Proje bağlamı anlıyor: Tüm codebase'i indeksliyor, ilişkili dosyaları buluyor
  2. Multi-file editing: Tek komutla birden fazla dosyayı düzenliyor
  3. Akıllı Tab: Sadece satır tamamlama değil, bağlamsal kod bloğu önerisi
  4. Chat entegrasyonu: Editörden ayrılmadan AI ile konuşabilme
  5. .cursorrules: Proje bazlı AI davranış kuralları tanımlama

Eğer terminal tabanlı bir AI geliştirme deneyimi arıyorsan, Claude Code IDE entegrasyonumuza da göz atabilirsin — VS Code ve JetBrains içinden doğrudan Claude ile çalışma imkanı sunuyor.


2. Temel Özellikler

Özellik Haritası

Özellik
Kısayol
İşlev
**Tab**
Tab
Akıllı otomatik tamamlama (multi-line)
**Cmd+K**
Cmd+K
Inline düzenleme (seçili kodu dönüştür)
**Cmd+I**
Cmd+I
Composer (multi-file AI editing)
**Cmd+L**
Cmd+L
Chat paneli (soru-cevap)
**Cmd+Shift+L**
Cmd+Shift+L
Seçili kodu chat'e gönder
**@ Mention**
@file, @docs
Bağlam ekleme (dosya, dokümantasyon)
**Codebase**
@codebase
Tüm projeyi bağlam olarak ver

Model Seçimi

Cursor, birden fazla AI modeli destekliyor:

typescript
1// Cursor'da model konfigürasyonu (Settings > Models)
2interface CursorModelConfig {
3 tabCompletion: 'cursor-small'; // Hızlı, local-ish model
4 cmdK: 'gpt-4o' | 'claude-3.5-sonnet'; // Inline edit
5 composer: 'claude-3.5-sonnet'; // Multi-file edit (en iyi)
6 chat: 'gpt-4o' | 'claude-3.5-sonnet' | 'deepseek-r1'; // Soru-cevap
7}
8 
9// Öneri: Görev tipine göre model seç
10const modelStrategy = {
11 hizliTamamlama: 'cursor-small', // Tab — hız öncelikli
12 kodDuzenleme: 'claude-3.5-sonnet', // Cmd+K — kalite öncelikli
13 cokluDosya: 'claude-3.5-sonnet', // Composer — bağlam öncelikli
14 arastirma: 'deepseek-r1', // Chat — reasoning öncelikli
15};

3. Tab Completion: Akıl Okuyan Otomatik Tamamlama

Cursor'ın Tab completion'ı GitHub Copilot'tan bir adım ötede. Sadece mevcut satırı tamamlamakla kalmıyor, bir sonraki birkaç satırı da öngörüyor.

Tab vs Copilot Farkı

swift
1// Cursor Tab — bağlamı anlıyor
2// Diyelim ki bir Swift projede UserService yazdın
3// Tab şunu önerecek:
4 
5class UserService {
6 private let repository: UserRepository
7 private let validator: UserValidator
8 private let cache: UserCache // Tab: önceki pattern'den çıkarım
9 
10 init(
11 repository: UserRepository,
12 validator: UserValidator,
13 cache: UserCache // Tab: init parametreleri otomatik
14 ) {
15 self.repository = repository
16 self.validator = validator
17 self.cache = cache // Tab: assignment pattern
18 }
19 
20 // Tab: CRUD pattern'ini anlıyor
21 func getUser(id: String) async throws -> User {
22 // Tab: önce cache kontrol, sonra repository pattern'i önerir
23 if let cached = await cache.get(id) {
24 return cached
25 }
26 let user = try await repository.fetch(id)
27 await cache.set(id, user)
28 return user
29 }
30}

Tab İpuçları

  • Kabul: Tab tuşu ile tüm öneriyi kabul et
  • Kısmi kabul: Cmd+Right Arrow ile kelime kelime kabul et
  • Reddet: Escape veya yazmaya devam et
  • Birden fazla öneri: Alt+] ile sonraki öneriyi gör
💡 Pro Tip: Tab completion kalitesini artırmak için proje kökünde .cursorrules dosyası oluştur. Model, bu dosyadaki kuralları her öneride dikkate alır. Örneğin "Swift projelerinde guard let tercih et, force unwrap kullanma" gibi kurallar ekleyebilirsin.

4. Composer: Multi-File AI Editing

Composer, Cursor'ın en güçlü ve farklılaştıran özelliği. Cmd+I ile açılan Composer modu, doğal dilde talimat vererek birden fazla dosyayı aynı anda düzenlemeyi sağlıyor.

Composer Kullanım Senaryoları

swift
1// Senaryo 1: Yeni özellik ekleme
2Prompt: "UserProfile'a avatar yükleme özelliği ekle.
3Firebase Storage kullan, 5MB limit, image compression uygula.
4UserProfileView, UserProfileViewModel, StorageService ve
5FirebaseConfig dosyalarını güncelle."
6 
7// Cursor Composer çıktısı:
8// ✓ StorageService.swift — uploadAvatar() eklendi
9// ✓ UserProfileViewModel.swift — avatarURL state + uploadAvatar action
10// ✓ UserProfileView.swift — PhotosPicker + progress indicator
11// ✓ FirebaseConfig.swift — Storage bucket URL eklendi
12// ✓ Info.plist — NSPhotoLibraryUsageDescription eklendi
13 
14// Senaryo 2: Refactoring
15Prompt: "Bu projedeki tüm network çağrılarını URLSession'dan
16async/await pattern'ine geçir. Error handling ekle."
17 
18// Cursor 15+ dosyayı aynı anda güncelliyor

Composer Best Practices

Strateji
Açıklama
Örnek
**Spesifik ol**
Ne istediğini net söyle
"Firebase Auth ekle" ✓ / "Login yap" ✗
**Dosya belirt**
Hangi dosyaları değiştireceğini söyle
"@UserService.swift @UserView.swift"
**Bağlam ekle**
İlgili dosyaları @ ile etiketle
"@docs/api-spec.md"
**Aşamalı ilerle**
Büyük görevi adımlara böl
Önce model, sonra view, sonra test
**Review et**
Her Composer çıktısını gözden geçir
Diff view ile kontrol et

Bu yaklaşım Swift Async/Await migration'ları gibi büyük refactoring işlerinde hayat kurtarıyor.


5. .cursorrules: Projeye Özel AI Davranışı

.cursorrules dosyası, Cursor'ın AI modellerine proje-spesifik talimatlar veren güçlü bir konfigürasyon mekanizması.

iOS Projesi İçin .cursorrules Örneği

markdown
1# .cursorrules — iOS Project
2 
3## Kod Stili
4- Swift 6 strict concurrency kullan
5- guard let tercih et (if let yerine)
6- Force unwrap (!) YASAK
7- any keyword yerine some kullan (opaque types)
8- Protocol-oriented programming tercih et
9 
10## Mimari
11- MVVM + Coordinator pattern
12- Repository pattern ile data access
13- Dependency Injection (constructor injection)
14- async/await tercih et (Combine yerine)
15 
16## Naming
17- camelCase (değişken, fonksiyon)
18- PascalCase (type, protocol)
19- SCREAMING_SNAKE_CASE (global constant)
20- Boolean: is/has/should prefix
21 
22## Test
23- Her public method için unit test yaz
24- XCTest + Swift Testing framework
25- Mock'lar için protocol-based abstraction
26- async test için await destekli assertion
27 
28## Erişilebilirlik
29- Her UI element'e accessibilityLabel ekle
30- VoiceOver navigasyonu düşün
31- Dynamic Type destekle
32- Minimum touch target: 44x44pt

Flutter Projesi İçin .cursorrules

markdown
1# .cursorrules — Flutter Project
2 
3## Kod Stili
4- Dart 3.0+ null safety strict
5- const constructor tercih et
6- final keyword varsayılan (mutable gerekmedikçe)
7- Effective Dart guidelines takip et
8 
9## Mimari
10- BLoC pattern (flutter_bloc)
11- Repository pattern ile data katmanı
12- Freezed ile immutable state modelleri
13- Injectable ile dependency injection
14 
15## Widget
16- StatelessWidget tercih et
17- Key parametresi düşün
18- const widget'lar mümkünse const
19- build() metodu 50 satırı geçmesin — extract et

Bu dosya, Flutter Clean Architecture prensiplerine uygun kod üretilmesini sağlıyor.


6. Cursor vs GitHub Copilot vs Windsurf

Kapsamlı Karşılaştırma

Özellik
Cursor
GitHub Copilot
Windsurf
**Tab Completion**
Çok iyi (multi-line)
İyi
İyi
**Chat**
Evet (çoklu model)
Evet (GPT-4o)
Evet
**Multi-file Edit**
Composer (en iyi)
Workspace (yeni)
Cascade
**Codebase Bağlamı**
@codebase (derin)
@workspace (yeni)
Otomatik
**Custom Rules**
.cursorrules
Sınırlı
.windsurfrules
**Model Seçimi**
GPT-4o, Claude, DeepSeek
GPT-4o
Claude, GPT-4o
**VS Code Uyum**
%100 (fork)
Extension
Ayrı IDE
**Fiyat (Pro)**
$20/ay
$10/ay
$15/ay
**Offline**
Hayır
Hayır
Hayır
**Privacy Mode**
Evet (kodu sunucuya göndermeme)
Evet (Business)
Evet

Fiyat-Performans Analizi

Plan
Cursor Pro
Copilot Individual
Windsurf Pro
**Aylık**
$20
$10
$15
**Yıllık**
$192 ($16/ay)
$100 ($8.33/ay)
$144 ($12/ay)
**Fast requests**
500/ay
Sınırsız
300/ay
**Slow requests**
Sınırsız
Sınırsız
💡 Pro Tip: Cursor Pro planında "fast request" biterse slow request'e düşüyorsun ama hâlâ kullanabiliyorsun. Eğer ağırlıklı olarak Tab completion kullanıyorsan, fast request yeterli. Composer'ı yoğun kullanıyorsan, Business plan düşünebilirsin. Maliyet analizi yaparken, kazandığın zamanın değerini düşün — günde 1 saat tasarruf bile aylık $20'ı fazlasıyla karşılar.

7. Verimlilik İpuçları ve İleri Teknikler

Kısayol Cheat Sheet

swift
1# Günlük Kullanım
2Tab → Otomatik tamamlama kabul
3Cmd+K → Inline edit(seçili kod üzerinde)
4Cmd+I → Composer(multi-file edit)
5Cmd+L → Chat paneli aç/kapat
6Cmd+Shift+L → Seçili kodu chat'e gönder
7Cmd+Enter → Chat'te @ ile codebase arama
8 
9# İleri Seviye
10@file → Belirli dosyayı bağlam olarak ekle
11@docs → Harici dokümantasyon ekle
12@codebase → Tüm projeyi bağlam olarak ver
13@web → Web'den bilgi çek
14@git → Git geçmişini bağlam olarak ekle
15 
16# Composer Özel
17Cmd+Enter → Composer'da komutu çalıştır
18Cmd+Z → Composer değişikliklerini geri al(undo)
19Accept All → Tüm önerilen değişiklikleri kabul et
20Reject All → Tüm değişiklikleri reddet

İleri Teknikler

typescript
1// Teknik 1: Bağlam mühendisliği — doğru @ kullanımı
2// KÖTÜ: "Bu kodu düzelt" (hangi kodu?)
3// İYİ: "@UserService.swift @UserRepository.swift Bu servisteki
4// cache invalidation bug'ını düzelt"
5 
6// Teknik 2: Aşamalı Composer kullanımı
7// Adım 1: "interface/protocol tanımlarını oluştur"
8// Adım 2: "implementasyonları yaz"
9// Adım 3: "unit testleri ekle"
10 
11// Teknik 3: Chat ile araştır, Composer ile uygula
12// Chat: "Bu projede error handling nasıl yapılmış? Pattern ne?"
13// Composer: "Aynı error handling pattern'ini PaymentService'e uygula"

8. Mobil Geliştirme ile Cursor

Cursor, özellikle iOS ve Flutter geliştirmede güçlü bir araç. İşte bazı mobil-spesifik kullanım alanları:

iOS Geliştirme

  • SwiftUI view'lar: Composer ile ekran tasarımlarını hızla oluştur
  • ViewModel'ler: Tab completion MVVM pattern'ini çok iyi anlıyor
  • Test yazma: "Bu ViewModel için unit test yaz" — Composer tüm edge case'leri kapsıyor
  • Localization: String catalog'larını birden fazla dil için oluştur

Flutter Geliştirme

  • Widget ağacı: Nested widget'ları doğru şekilde oluşturuyor
  • BLoC pattern: Event, State, Bloc dosyalarını tutarlı üretiyor
  • Platform-specific kod: iOS ve Android'e özel implementasyonlar

Bu özellikler iOS Testing Strategies ve Flutter Clean Architecture ile doğrudan uyumlu çalışıyor.


9. Sonuç ve Öneriler

Cursor AI, yazılım geliştirme aracı kategorisinde bir paradigma değişimi. Tab completion, Composer ve .cursorrules ile geliştirici verimliliğini 3-5x artırma potansiyeline sahip. GitHub Copilot daha ucuz ve basit bir alternatif sunarken, Cursor özellikle multi-file editing ve proje bağlamı anlama konusunda açık farkla önde. Daha otonom bir çözüm arıyorsan Devin AI incelememize, MCP protokolü ile araç entegrasyonu konusunda ise Claude Code MCP rehberimize göz atmanı öneririz.

Aksiyon Planı

  1. Bugün: Cursor'ı indir, VS Code ayarlarını import et
  2. Bu hafta: .cursorrules dosyası oluştur, Tab ve Cmd+K'yı günlük iş akışına dahil et
  3. Bu ay: Composer ile büyük refactoring görevlerini dene
  4. Bu çeyrek: Tüm takımı Cursor'a geçir, ortak .cursorrules oluştur

Kaynaklar

ALTIN İPUCU

Bu yazının en değerli bilgisi

Bu ipucu, yazının en önemli çıkarımını içeriyor.

Easter Egg

Gizli bir bilgi buldun!

Bu bölümde gizli bir bilgi var. Keşfetmek ister misin?

Okuyucu Ödülü

Tebrikler! Bu yazıyı sonuna kadar okuduğun için sana özel bir hediyem var:

Etiketler

#AI#Cursor#IDE#Coding#Productivity#VS Code#Developer Tools
Muhittin Çamdalı

Muhittin Çamdalı

Senior iOS Developer

12+ yıllık deneyime sahip iOS Developer. Swift, SwiftUI ve modern iOS mimarileri konusunda uzman. Apple platformlarında performanslı ve kullanıcı dostu uygulamalar geliştiriyorum.

iOS Geliştirme Haberleri

Haftalık Swift tips, SwiftUI tricks ve iOS best practices. Spam yok, sadece değerli içerik.

Gizliliğinize saygı duyuyoruz. İstediğiniz zaman abonelikten çıkabilirsiniz.

Paylaş

Bunu da begenebilirsiniz