Çapraz platform geliştirme: Pratik rehber

Kerem Aydın·8 Temmuz 2026·⏱3 dk

Mümkün — çapraz platform çerçeveleri aracılığıyla (Flutter, React Native, Kotlin Multiplatform, .NET MAUI): Gereksinimlere göre yığınınızı seçin (UI, hız, ekip), modüler bir mimari oluşturun (Domain/Data/UI), CI/CD ve yerel köprüleri yapılandırın — ve iOS ile Android için tek bir uygulama elde edin.

Çerçeve nasıl seçilir (kısa ve öz)

  • Flutter (Dart) — karmaşık animasyonlar ve tutarlı UI için en iyisi; Skia sayesinde yüksek performans. UI ağırlıklı projeler ve MVP'den üretime geçiş için uygundur.
  • React Native (JS/TS) — hızlı prototipleme, geniş ekosistem; karmaşık animasyonlarda performansa dikkat edilmesi gerekir.
  • Kotlin Multiplatform (KMP) — ortak iş mantığı; iOS/Android'de yerel UI; kurumsal projeler ve Kotlin kullanan ekipler için mükemmeldir.
  • .NET MAUI — Windows/macOS entegrasyonu ve .NET ekosistemi ile çapraz platform çözümleri için iyidir.

Seçim kriterleri: Gerekli performans, ekip (C#/Kotlin/JS/Dart), yerel özelliklere duyulan ihtiyaç, ikili dosya boyutu.

Tutarlı bir UI ve hızlı piyasaya çıkış gerekiyorsa Flutter ile başlayın. Ortak UI olmadan mantığın yeniden kullanılmasını istiyorsanız KMP tercih edin.

Mimari: Neler ortak olmalı, neler yerel olmalı?

Önerilen katmanlı yaklaşım:

  • Domain — iş kuralları, kullanım durumları (mümkün olduğunca ortak kod).
  • Data — depolar, API, önbellek; arayüzler paylaşılabilir, uygulamalar platforma bağımlıdır.
  • UI — platforma özgü veya ortak (Flutter/React Native'de ortak, KMP'de yerel).

Flutter için örnek yapı: lib/ ├── app.dart ├── features/ │ └── auth/ │ ├── data/ │ ├── domain/ │ └── ui/

KMP için örnek: shared/ ├── src/commonMain/ (domain, data arayüzleri) ├── src/androidMain/ (uygulamalar) ├── src/iosMain/ (uygulamalar)

Yerel köprüler:

  • Flutter — platform kanalları.
  • RN — Yerel Modüller / TurboModules.
  • KMP — expect/actual.

Pratik geliştirme planı (adım adım)

  1. Teknik şartname ve başarı kriterleri: Özellik listesi, hedef cihazlar, lansman bütçesi.
  2. Prototip (2 hafta): Minimum ekran ve API seti.
  3. Mimari: Paylaşım için Domain ve Data'yı ayırın; nelerin yerel olacağını belirleyin.
  4. CI/CD: Derlemeler, otomatik testler ve sürümler için GitHub Actions + Fastlane.
  5. Test: Birim testleri (%60–80), entegrasyon ve E2E (Detox/Appium).
  6. Optimizasyon: Profil oluşturma (DevTools/Flipper), varlık sıkıştırma, tembel yükleme.
  7. Lansman: İmzalama, paketler, App Store ve Play Market için meta verilerin hazırlanması.

Çapraz platform geliştirmenin tüm riskleri ortadan kaldıracağını beklemeyin: Karmaşık yerel özellikler ve animasyonlar ek çaba ve olası yerel optimizasyon gerektirecektir.

Sık yapılan hatalar

  • "Bir kez yaz, her yerde çalıştır" beklentisinin abartılması — platform UX'ine yetersiz adaptasyon.
  • Modülerlik eksikliği — bakım ve CI'yi zorlaştırır.
  • APK/IPA boyutlarının ihmal edilmesi — büyük paketler yüklemeleri yavaşlatır.
  • E2E testlerinin yetersiz olması — hatalar uç durumlarda (çevrimdışı, düşük bellek) ortaya çıkar.

SSS

  • Yerel modüller yazmak gerekir mi? Evet, özellikle özellik eklentiler aracılığıyla kullanılamıyorsa veya aşırı optimizasyon gerektiriyorsa.
  • Derleme boyutu nasıl küçültülür? Görselleri sıkıştırın, kod bölme kullanın ve minimum eklenti setiyle çalışın.
  • Başlangıç için hangi yığın daha hızlı? UI odaklı projeler için Flutter veya React Native; ortak mantık önemliyse KMP.

Sonuç: Küçük başlayın — seçilen çerçevede MVP oluşturun, ortak iş mantığını ayrı bir modüle ayırın, CI/CD ve testleri yapılandırın. Bu yaklaşım, pazara çıkış süresini azaltacak ve ölçeklendirmeyi kolaylaştıracaktır.