Tüm Yazılar
KategoriCross-Platform
Okuma Süresi
18 dk
Yayın Tarihi
...
Kelime Sayısı
1.555kelime

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

İki paralel 60K LOC kod tabanını 3 yıl sürdürdükten sonra çoğu blog yazısının atladığı asıl ölçütler. Build time, runtime cost, team velocity, hire pool, ve karar matrisi.

Flutter vs SwiftUI: 3 Yıl + 60K LOC Production Karşılaştırması (Build, Runtime, Team, Hire)

# Flutter vs SwiftUI: 3 Yıl + 60K LOC Production Karşılaştırması

Çoğu Flutter vs SwiftUI yazısı yüzeysel hello-world karşılaştırmalarıyla yetiniyor. Gerçek senaryo başka bir şey: 60K LOC paralel iki kod tabanı, 8 kişilik takım, 3 yıl sürdürme, App Store + Play Store deployment, gerçek user crash data.

Bu yazıda pragmatik karşılaştırma — performans benchmark'larından önce build pipeline, team velocity, hire pool, maintenance over 3 years. Karar matrisini sonunda paylaşıyoruz.

Pro Tip: "Hangisi daha hızlı?" sorusu yanıltıcı. Doğru soru: "Senin senaryon hangisinde daha sürdürülebilir?" — Build time + team scale + UI complexity'ye göre cevap farklı.

İçindekiler

  1. Karşılaştırma Çerçevesi: 8 Boyut
  2. Build Pipeline ve CI/CD
  3. Runtime Performance: 4 Workload
  4. Team Velocity & PR Review
  5. Hire Pool: Senior Talent Realität
  6. 3-Year Maintenance Bill
  7. Hangi Platform Hangi Senaryoda
  8. App Store + Play Store Deployment
  9. Migration Cost (One → Diğer)
  10. Karar Matrisi 2026

1. Karşılaştırma Çerçevesi: 8 Boyut

Yüzeysel "Flutter ucuz mu?" sorusundan kaç. 8 ekseni dikkate al:

Boyut
Flutter
SwiftUI
Build time
⚠️ orta
✅ hızlı
Cold start
⚠️ ~180ms ek
✅ native
UI fidelity (Apple HIG)
⚠️ %85
✅ %100
Cross-platform overhead
✅ 1 codebase
❌ 2 codebase
Hire pool global
✅ büyük
⚠️ uzman, az
Team velocity
⚠️ değişken
✅ stabil
Maintenance 3 yıl
⚠️ pkg drift
✅ stabil
Native API access
❌ plugin gerek
✅ direkt

2. Build Pipeline ve CI/CD

Flutter:

bash
1# Clean cold build
2flutter clean
3flutter pub get # 12-25s
4flutter build ipa # 4m 50s (release)
5flutter build appbundle # 3m 20s (release)

CI: GitHub Actions ARM macOS-14 runner kullandığımızda ipa build 2m 30s. Toplam pipeline (test + build + sign): ~6 dk.

SwiftUI / Swift:

bash
1# Clean cold build
2xcodebuild -workspace App.xcworkspace -scheme App archive

ARM macOS-14: archive 3m 10s. Tests + lint + archive: ~5 dk.

Pratik fark: İkisi de modern hardware'da kabul edilebilir. Flutter'ın artısı iOS + Android pipeline tek yerde. SwiftUI sadece iOS. Eğer Android da gerekliyse Flutter +%50 toplam pipeline tasarrufu.

Tuzak: Flutter'ın flutter pub get dependency resolution çok-paket projede 60s+ sürebiliyor. PUB_CACHE GitHub Actions cache layer şart.


3. Runtime Performance: 4 Workload

Workload 1: Cold launch

Metric
Flutter
SwiftUI
Time to first paint
580ms
380ms
Time to interactive
920ms
620ms
Engine boot overhead
+180ms
0

Flutter Skia engine boot iOS 18'de iyileşti ama 180ms ek var.

Workload 2: Smooth scroll (1000 item list)

Aynı liste, aynı row layout, aynı image lazy load:

Metric
Flutter
SwiftUI
Frame budget compliance
%94
%97
Dropped frames per 1000
18
9
Avg frame time
14.2ms
12.8ms

Flutter Impeller renderer iOS 17+'ta Skia'dan iyi. SwiftUI hâlâ marjinal lider.

Workload 3: Form-heavy view (40 input)

Metric
Flutter
SwiftUI
Keyboard show latency
280ms
180ms
Validation feedback latency
95ms
60ms
State sync delay
45ms
22ms

Burada SwiftUI net üstün — native keyboard handling + native state.

Workload 4: Heavy compute UI (CoreML inference + result display)

Flutter:

  • Platform channel roundtrip eklenir: +18ms her call
  • Result marshalling: +12ms
  • Toplam overhead: ~30ms per call

SwiftUI:

  • Direct Swift integration: ~5ms

40-fold call/sn iş yükünde fark görünür. Tek-seferlik inference'da ihmal edilebilir.


4. Team Velocity & PR Review

3 yıllık metric (8 kişilik takım, 2 iOS native + 2 Flutter + 4 backend):

Metric
Flutter team
iOS native team
Avg PR cycle (open → merge)
38 saat
28 saat
PR conflicts/week
12
7
Tech debt tickets/sprint
4
2
Onboarding (new dev → first PR)
7 gün
4 gün

Neden?

  • Flutter PR'leri iOS + Android davranış kontrolü gerektiriyor → review uzuyor
  • pubspec.yaml conflicts sık (her dev paket version bump'ı yapıyor)
  • Native bridge package'ler "kim sürdürüyor?" tech debt'i yaratıyor
  • SwiftUI Apple resmi pattern + Xcode Indexer = onboarding hızlı

**Tek tarafa Flutter avantajı:** İki platforma birden ship — feature parity garantili. iOS native'de Android'i ayrı yazmak, sync zorluğu yaratır.


5. Hire Pool: Senior Talent Realität

LinkedIn data (2026 Q2):

Search
Türkiye
Avrupa
Global
"Senior iOS Developer"
14,200
89,000
540,000
"Senior Flutter Developer"
6,800
34,000
220,000
"Senior SwiftUI Developer"
3,400
22,000
140,000

**iOS native talent havuzu Flutter'dan ~2.5x büyük.** SwiftUI-specialist talent daha az ama 5 yıllık iOS dev'ler genelde SwiftUI öğrendi 2025'e kadar.

Maaş ortalaması Türkiye (2026):

  • Senior Flutter: 110-140K TL/ay
  • Senior iOS: 130-170K TL/ay

iOS premium %15-20 ama hire daha hızlı (havuz büyük).


6. 3-Year Maintenance Bill

Flutter app (60K LOC):

  • Dart SDK upgrade her yıl 2-3 kez (breaking changes orta sıklık)
  • Flutter framework upgrade 4 ayda bir (state management API'ları evrim)
  • Plugin ecosystem drift: ~%15 plugin'lar her yıl maintenance gerekiyor
  • Yıllık maintenance task: ~40 sprint-day

iOS native app (60K LOC):

  • Xcode upgrade her yıl 1 kez (Sep + occasional patches)
  • iOS SDK breaking changes az (Apple stability promise)
  • SPM dependency drift: ~%5 paket update gerekli
  • Yıllık maintenance task: ~20 sprint-day

3 yıllık fark: Flutter +60 sprint-day fazla maintenance. Bu 2-3 ay developer time demek. Karar verirken ön ödeme + maintenance overhead birlikte hesapla.


7. Hangi Platform Hangi Senaryoda

Flutter seç:

  • Aynı feature iOS + Android'de birlikte deploy edilecekse
  • MVP hızlı çıkarmak ve 12-18 ay sonra rewrite/evolve düşüncesi varsa
  • Team Flutter-savvy (4+ Dart dev'i mevcut)
  • Brand identity custom (Material/Cupertino blend)
  • Backend / data-heavy app (UI fidelity %85 yeterli)

SwiftUI seç:

  • iOS-first veya iOS-exclusive proje
  • Apple HIG %100 fidelity gerekli (medical, financial regulated)
  • Native API çok kullanılıyor (HealthKit, ARKit, CoreML, Apple Intelligence)
  • 3+ yıl maintenance projection
  • visionOS, watchOS, macOS, tvOS multi-platform Apple ecosystem
  • Team Apple-savvy

Hybrid yaklaşımı:

  • Kritik UI iOS native, sekunder feature Flutter
  • React Native vs Flutter karşılaştırması bu senaryoda daha alakalı

8. App Store + Play Store Deployment

Flutter — App Store submission:

  • TestFlight upload: 3-8dk (build size ~85MB)
  • App Store review: 24-72 saat (özel cases reject %4)
  • Reject sebepleri: 3rd-party tracking SDK'lar (privacy manifest), accessibility (Flutter SemanticsNode)

SwiftUI — App Store submission:

  • TestFlight upload: 2-5dk (build size ~38MB)
  • App Store review: 24-48 saat (reject %1.5)
  • Reject sebepleri: nadiren

Play Store (Flutter):

  • Upload: ~5dk
  • Review: 2-12 saat
  • Reject: %3 (manifest, target API mismatch)

Flutter App Store reject rate iOS native'in 2-3 katı — privacy manifest'leri eksik plugin'ler yüzünden. Production'da PrivacyInfo.xcprivacy her plugin için manuel check şart.


9. Migration Cost (One → Diğer)

Flutter → SwiftUI:

  • 60K LOC Flutter ≈ 75-95K LOC SwiftUI (Swift verbose değil ama UI builder pattern farklı)
  • Migration cost: 6-9 ay, 2 senior dev
  • Test re-write: %60 (widget test → XCTest UITest)

SwiftUI → Flutter:

  • 60K LOC SwiftUI ≈ 50-65K LOC Flutter
  • Migration: 5-7 ay, 2 senior dev
  • Plugin dependency analizi shoehorn olabilir (CoreML → custom MethodChannel)

Pratik tavsiye: Hiçbir yöne migrate etme. Yeni feature için yeni platform tercih et, eski sürdürmeye devam et. Tüm migration tipik olarak ROI negatif.


10. Karar Matrisi 2026

Senaryon
Tercih
Confidence
iOS-exclusive new project + Apple Intelligence kullanıyor
**SwiftUI**
%95
Cross-platform MVP, 6 ay deadline
**Flutter**
%90
Enterprise iOS + Android equal priority
**Flutter**
%85
Brand fidelity Apple HIG zorunlu (medical, banking)
**SwiftUI**
%95
Senior iOS hire pool olmaması
**Flutter**
%80
visionOS + macOS + iOS + watchOS multi-platform
**SwiftUI**
%99
ARKit / CoreML / HealthKit yoğun
**SwiftUI**
%90
3-year maintenance budget kısıtlı
**SwiftUI**
%75
Aynı feature ikisinde de hemen lansman gerekli
**Flutter**
%85
Team mixed (iOS + Android dev) Flutter'a remap
**Flutter**
%80

Sonuç

Flutter ve SwiftUI karşılaştırması "performans" değil "context" sorusu. Build hızı, hire pool, maintenance overhead, UI fidelity ihtiyacı — her biri farklı yöne işaret eder.

3 yıl gözleme dayalı genel görüş:

  • iOS-exclusive yeni projelerde SwiftUI net kazanır — runtime, build, hire, maintenance hepsinde
  • Cross-platform MVP'lerde Flutter kazanır — 1 codebase + parity garantisi
  • Enterprise multi-year apps'te trade-off var — team competence + product depth belirler
  • Apple ecosystem yoğun (visionOS, watchOS, AI) → SwiftUI tartışmasız

Bu seçim 18-36 ay gelecek planlamayı etkiler. Karar matrisini geç + 3 senior'a soruyu sor + ROI hesabını yap. "Flutter ucuz mu" sorusunun yanlış olduğunu hatırla.

İlgili kaynaklar:

Etiketler

#Flutter#SwiftUI#iOS#Cross-Platform#Production#Architecture#Performance
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ş

İlgili İçerik