İçeriğe geç
Teklif Al
CYF TECH/BLOG/MOBİL UYGULAMA

Native mi cross-platform mu? Flutter ve React Native karşılaştırması.

Mobil Uygulama
8 dk okuma

Mobil uygulama projesine başlayan herkes er geç aynı soruyla karşılaşır: native mi cross-platform mu? Bu tercih yalnızca bir teknoloji seçimi değil; bütçeyi, takvimi, ekibi ve uygulamanın önümüzdeki beş yılını belirleyen bir iş kararıdır.

Birkaç yıl öncesine kadar cevap daha basitti: performans istiyorsanız native, hızlı ve ucuz istiyorsanız cross-platform. Bugün Flutter ve React Native olgunlaştı, Kotlin Multiplatform ise iOS tarafında da kararlı sürüme ulaştı. Bu yazıda yaklaşımları sade bir dille açıklıyor, Flutter ile React Native’i karşılaştırıyor ve hangi projede hangisinin mantıklı olduğunu örneklerle anlatıyoruz.

Native ve cross-platform uygulama ne demek?

Native uygulama, her işletim sistemi için o platformun kendi diliyle ve araçlarıyla ayrı ayrı yazılan uygulamadır: iOS için Swift ve SwiftUI, Android için Kotlin ve Jetpack Compose. Sonuçta iki ayrı kod tabanı, çoğu zaman iki ayrı ekip olur.

Cross-platform uygulama ise tek bir kod tabanından hem iOS hem Android sürümü üretir. Bugün öne çıkan seçenekler şunlardır:

  • Flutter: Google’ın geliştirdiği, Dart dilini kullanan çatı. Arayüzü kendi çizim motoruyla oluşturur; bu sayede her cihazda piksel piksel aynı görünüm elde edilir.
  • React Native: Meta’nın geliştirdiği, JavaScript / TypeScript ve React kullanan çatı. Platformun yerel arayüz bileşenlerini kullanır. 0.76 sürümüyle birlikte “Yeni Mimari” varsayılan hâle geldi ve JavaScript ile yerel kod arasındaki eski köprü yapısının darboğazları büyük ölçüde giderildi.
  • Kotlin Multiplatform: JetBrains’in çözümü. İş mantığını Kotlin ile paylaşıp arayüzü isteğe göre native ya da Compose Multiplatform ile yazmaya imkân verir. Compose Multiplatform’un iOS desteği Mayıs 2025’te kararlı sürüme ulaştı.

Bir de PWA (progresif web uygulaması) seçeneği var: tarayıcıda çalışan, ana ekrana eklenebilen web uygulaması. Mağaza zorunluluğu olmayan basit ihtiyaçlar için iyi bir başlangıç olabilir, ancak bildirim ve cihaz özelliklerinde, özellikle iOS’ta, kısıtları vardır.

Native vs cross-platform: 7 kriterde karşılaştırma

Kararı kolaylaştırmak için iki yaklaşımı iş açısından en önemli kriterlerde yan yana koyduk:

KriterNative (Swift + Kotlin)Cross-platform (Flutter / React Native)
Geliştirme maliyetiYüksek; iki ayrı kod tabanıDaha düşük; çoğu kod iki platformda ortak
Pazara çıkış süresiDaha uzunDaha kısa; iki platform aynı anda yayınlanır
PerformansEn iyi; özellikle grafik ve donanım yoğun işlerdeİş uygulamalarının büyük çoğunluğu için fark edilmeyecek düzeyde
Yeni platform özelliklerine erişimİlk günGenellikle eklenti veya yerel kod köprüsüyle, bazen gecikmeli
Görünüm ve hisPlatformun doğal tasarım diliFlutter’da tutarlı marka görünümü; React Native’de yerel bileşenler
BakımHer özellik iki kez güncellenirTek yerde güncelleme; çatı sürümlerini takip etmek gerekir
EkipiOS ve Android uzmanları ayrı ayrıTek ekip; yine de yerel tarafı bilen biri gerekli

Tablodan görüleceği üzere cross-platform çoğu kriterde iş açısından avantajlıdır; native’in öne geçtiği yer ise performansın ve platforma özgü özelliklerin ürünün kalbinde olduğu projelerdir.

Flutter mı React Native mi? Farkları ve seçim kriterleri

Cross-platform’a karar verdiyseniz ikinci soru gelir. İki çatı da olgun, geniş topluluğa sahip ve büyük şirketlerin üretim uygulamalarında kullanılıyor. Seçimi belirleyen asıl etkenler şunlardır:

Flutter öne çıkar, eğer…

  • Markaya özel, animasyonlu ve her cihazda birebir aynı görünen bir arayüz istiyorsanız.
  • Aynı kodla mobilin yanında web ve masaüstü (Windows, macOS, Linux) hedefleri de düşünüyorsanız.
  • Düşük donanımlı Android cihazlarda da akıcı çalışan, öngörülebilir bir performans önemliyse.

React Native öne çıkar, eğer…

  • Ekibiniz veya mevcut web projeniz zaten React ve TypeScript kullanıyorsa; bilgi ve kod paylaşımı kolaylaşır.
  • Uygulamanın her platformda o platformun kendi bileşenleriyle görünmesini istiyorsanız.
  • JavaScript ekosistemindeki geniş kütüphane havuzundan yararlanmak, geliştirici bulmayı kolaylaştırmak istiyorsanız.
Kısa ipucu: “Hangisi daha hızlı?” tartışmalarına takılmayın. Bağımsız ölçümlerde iki çatı arasındaki fark, kötü yazılmış bir liste ekranı veya optimize edilmemiş görsellerin yarattığı farktan çoğu zaman küçüktür. Ekibin deneyimi, seçilen çatıdan daha belirleyicidir.

Native geliştirme hangi projelerde gerçekten gerekli?

Cross-platform her işi görür mü? Hayır. Aşağıdaki durumlarda native geliştirme ya da en azından önemli bir native katman gerekir:

  • Yoğun grafik ve gerçek zamanlı işlem: oyunlar, artırılmış gerçeklik, gelişmiş kamera ve video düzenleme.
  • Derin donanım entegrasyonu: özel Bluetooth cihazları, tıbbi sensörler, düşük seviyeli ses işleme, sürekli arka plan çalışması.
  • Platform özelliklerine ilk gün erişim: widget’lar, saat uygulamaları, Apple’ın veya Google’ın yeni duyurduğu API’ler ürününüzün merkezindeyse.
  • Çok büyük ölçek: milyonlarca kullanıcısı olan, her milisaniyenin ve uygulama boyutunun önemli olduğu ürünler.

Bu durumlar dışında kalan e-ticaret, rezervasyon, saha ekipleri, müşteri sadakati, kurumsal iç uygulamalar ve yönetim panelleri gibi projelerin büyük çoğunluğu cross-platform ile rahatlıkla geliştirilebilir. Üstelik cross-platform uygulamalarda gerektiğinde belirli bir ekranı veya özelliği native kodla yazmak da mümkündür; seçim siyah ya da beyaz değildir.

Doğru teknoloji, en popüler olan değil; ürününüzün en kritik özelliğini en az riskle hayata geçiren teknolojidir.

Maliyet, bakım ve uzun vadeli riskler

Teknoloji kararı ilk yatırımdan çok toplam sahip olma maliyetini etkiler. Native’de her yeni özellik iki kez yazılır, iki kez test edilir; hata düzeltmeleri de öyle. Cross-platform’da ortak kod oranı arttıkça bu yük azalır.

Öte yandan cross-platform’un kendine özgü riskleri vardır:

  • Çatı güncellemeleri: Flutter veya React Native’in büyük sürüm geçişleri ve üçüncü taraf eklentilerin bu sürümlere uyumu düzenli emek ister.
  • Eklenti bağımlılığı: Bakımı bırakılmış bir eklenti, kritik bir özelliği kilitleyebilir. Eklenti seçerken güncellenme sıklığına ve topluluğa bakmak gerekir.
  • Uygulama boyutu: Cross-platform uygulamalar, çatı motorunu da içerdikleri için native muadillerinden biraz daha büyük olabilir.

Bütçe tarafını ayrıntılı merak ediyorsanız mobil uygulama geliştirme maliyeti yazımızda fiyatı belirleyen kalemleri tek tek açtık.

Dört örnek proje: hangi teknoloji neden seçilir?

Soyut kriterler yerine somut örneklerle düşünmek kararı kolaylaştırır. Sık karşılaştığımız dört proje tipini ve bizim değerlendirmemizi aşağıda bulabilirsiniz:

Restoran sipariş ve sadakat uygulaması

Menü, sepet, online ödeme, kampanya bildirimi ve puan sistemi. Donanım ihtiyacı neredeyse yok, iki platformda aynı anda çıkmak ve markaya özel bir görünüm önemli. Burada Flutter veya React Native ile tek kod tabanı açık ara en verimli seçimdir.

Saha ekibi uygulaması

Teknisyenler iş emirlerini görüyor, fotoğraf çekiyor, barkod okutuyor, bazen internetin olmadığı bodrum katlarda çalışıyor. Çevrimdışı veri saklama ve eşitleme kritik. Cross-platform bu ihtiyacı karşılar; ancak çevrimdışı mimariyi baştan doğru kurmak, teknoloji seçiminden daha önemlidir.

Özel bir Bluetooth cihazıyla konuşan sağlık uygulaması

Uygulamanın kalbi, cihazla sürekli ve güvenilir veri alışverişi; arka planda çalışması da gerekiyor. Burada native geliştirme ya da en azından cihaz iletişimini native modüllerle yazan hibrit bir yapı daha güvenli bir tercihtir. Sağlık verisi işlendiği için KVKK tarafındaki özel nitelikli veri kuralları da ayrıca planlanmalıdır.

Kurumsal iç kullanım uygulaması

Çalışanların izin talebi, onay akışı ve duyuruları takip ettiği bir uygulama. Kullanıcı sayısı belli, mağaza görünürlüğü önemsiz. Bütçe kısıtlıysa bir PWA ile başlamak, ihtiyaç büyüdüğünde cross-platform bir uygulamaya geçmek mantıklı olabilir. Böyle durumlarda masaüstü mü web uygulaması mı sorusu da gündeme gelir.

5 soruda doğru mobil teknoloji kararı

Kararı kendi projeniz için vermek üzere aşağıdaki soruları sırayla yanıtlayın:

  • 1. Soru — Uygulamanın kalbinde yoğun grafik, gerçek zamanlı medya veya özel donanım var mı? Evetse native’e ciddi olarak bakın.
  • 2. Soru — İki platformda aynı anda ve sınırlı bütçeyle mi çıkmanız gerekiyor? Evetse cross-platform öne geçer.
  • 3. Soru — Mevcut ekibiniz veya web projeniz hangi teknolojiyi kullanıyor? React tabanlıysa React Native, sıfırdan başlıyorsanız Flutter güçlü bir aday.
  • 4. Soru — Aynı ürünü web ve masaüstünde de sunacak mısınız? Flutter tek kodla daha fazla hedefi kapsar; ortak bir backend ise her durumda şarttır.
  • 5. Soru — Uygulamanın en az üç yıl bakımını kim yapacak? Seçilen teknolojide geliştirici bulabilecek misiniz?

Kendi ürünlerimizde de bu soruları sorduk. Örneğin apartman ve site yönetim yazılımımız KATSİS’in web paneli, iOS / Android uygulamaları ve Windows uygulaması aynı altyapıya bağlı. Arayüzü her platformdaki kullanıcının ihtiyacına göre kurgulayıp veriyi tek merkezde toplamak, bakım yükünü önemli ölçüde azalttı. Ayrıntılar için projelerimize göz atabilirsiniz.

Dikkat: Teknoloji kararını ajansın en iyi bildiği araca göre değil, ürününüzün ihtiyacına göre verin. Teklif aldığınız firmaya “neden bu teknolojiyi öneriyorsunuz, alternatifi ne olurdu?” diye sorun; iyi bir ekip bu soruya somut gerekçelerle cevap verir.
// TEKNOLOJİ SEÇMEDEN ÖNCE KONTROL LİSTESİ
  • Uygulamanın en kritik özelliği yazılı olarak belirlendi mi?
  • Donanım ve performans gereksinimleri netleşti mi?
  • İki platform aynı anda mı yayınlanacak?
  • Mevcut ekip ve web altyapısı hangi teknolojiyi kullanıyor?
  • Seçilen teknolojide uzun vadeli geliştirici bulunabilir mi?
  • Kullanılacak eklentilerin bakım durumu kontrol edildi mi?

Sık sorulan sorular

Cross-platform uygulamalar native kadar hızlı mı?

İş uygulamalarının büyük çoğunluğunda kullanıcı farkı hissetmez. Flutter kendi çizim motoruyla, React Native ise yeni mimarisiyle akıcı bir deneyim sunar. Yoğun grafik, oyun veya gerçek zamanlı medya işleme gibi durumlarda ise native hâlâ avantajlıdır.

Flutter mı daha iyi, React Native mi?

Tek bir doğru yoktur. Markaya özel, her cihazda aynı görünen arayüz ve mobilin yanında masaüstü hedefleri için Flutter; React ve TypeScript bilen bir ekip veya mevcut React web projesi varsa React Native genellikle daha mantıklıdır.

Cross-platform ile geliştirilen uygulama App Store ve Google Play’de yayınlanabilir mi?

Evet. Flutter ve React Native ile geliştirilen uygulamalar, native uygulamalar gibi derlenir ve her iki mağazada da aynı kurallarla yayınlanır. Kullanıcı açısından uygulamanın hangi teknolojiyle yazıldığı görünmez.

Cross-platform ile başlayıp sonra native’e geçmek mümkün mü?

Mümkündür ama bu genellikle uygulamanın yeniden yazılması demektir. Bunun yerine cross-platform uygulamanın içinde ihtiyaç duyulan belirli ekranları veya modülleri native kodla yazmak çoğu zaman daha ekonomik bir yoldur.

Mobil uygulama ile web sitesi aynı altyapıyı kullanabilir mi?

Evet ve çoğu zaman kullanmalıdır. Hangi mobil teknoloji seçilirse seçilsin, uygulama ile web sitesi veya yönetim paneli aynı API ve veritabanına bağlanabilir. React Native kullanılıyorsa, React tabanlı bir web projesiyle iş mantığının bir kısmı da paylaşılabilir. Bu yaklaşım bakım maliyetini düşürür ve verilerin tek merkezde tutarlı kalmasını sağlar.

Kotlin Multiplatform nedir, ne zaman tercih edilir?

Kotlin Multiplatform, iş mantığını iOS ve Android arasında paylaşırken arayüzü native veya Compose Multiplatform ile yazmaya imkân veren bir yaklaşımdır. Güçlü bir Android ekibi olan ve native his kaybetmeden kod paylaşmak isteyen projeler için uygundur.

Son söz

Native mi cross-platform mu sorusunun evrensel bir cevabı yok, ama doğru soruları sorduğunuzda cevap genellikle netleşir. Çoğu işletme uygulaması için Flutter veya React Native ile tek kod tabanı, hem bütçe hem takvim açısından en verimli yoldur; performansın ve donanımın ürünün kalbinde olduğu projelerde ise native yatırım karşılığını verir. Projeniz için hangi yaklaşımın uygun olduğunu birlikte değerlendirmek isterseniz mobil uygulama hizmetlerimize göz atabilir ya da bizimle iletişime geçebilirsiniz.

Tüm yazılar
Paylaş
// HAYDİ BAŞLAYALIM

Projenizi birlikte hayata geçirelim.

Aklınızdaki projeyi anlatın, size özel teklifimizi hazırlayalım.