Flutter mı React Native mi? İkisini de Yayınlamış Bir Ekipten
Bu soru teknik bir soru gibi görünür ama aslında ticari bir sorudur: uygulamanızı beş yıl sonra kim bakacak, ekip bulmak kolay olacak mı ve hangi kararın maliyeti sonradan çıkacak? İkisiyle de uygulama yayınladık; bu sayfa reklam değil, kriter listesi.
Kısa cevap
Çoğu iş uygulaması için Flutter daha güvenli tercihtir: tek kod tabanı iki platformda birebir aynı görünür, arayüz davranışı sürprizsizdir ve mağaza süreçlerinde daha az beklenmedik sorun çıkar. React Native ise şu iki durumda öne geçer — ekibinizde zaten React bilen geliştiriciler varsa ve uygulamanız ağırlıklı olarak veri gösteren, karmaşık özel animasyon içermeyen bir yapıdaysa. Karar dilin kendisinden çok ekibinize ve uygulamanın türüne bağlıdır; performans farkı bugün çoğu proje için belirleyici değildir.
Bu soruyu soranlar: Mobil uygulama yaptıracak işletme sahipleri ve teknoloji kararı veren proje yöneticileri
Karşılaştırılan Taraflar
Bu kümeye yalnızca her iki tarafını da gerçekten sahaya çıkardığımız karşılaştırmaları koyuyoruz. Aşağıda hangi seçeneği hangi işimizde kullandığımız yazılı.
Flutter
Google’un Dart tabanlı çerçevesi; arayüzü kendi çizer, platform bileşenlerine bağımlı değildir.
Canlı Altın (iOS + Android, mağazalarda yayında), Ev Hizmet (iOS + Android, mağazalarda yayında), Dini Bilgi Yarışması
React Native
Meta’nın JavaScript/React tabanlı çerçevesi; platformun kendi arayüz bileşenlerini kullanır.
Mesai (vardiya ve mesai takibi uygulaması; henüz geliştirme aşamasında, yayında değil)
Kriter Kriter Karşılaştırma
| Kriter | Flutter | React Native |
|---|---|---|
| İki platformda görünüm tutarlılığı | Yüksek. Arayüzü kendisi çizdiği için iOS ve Android’de birebir aynı görünür. | Orta. Platform bileşenlerini kullandığı için küçük görünüm farkları çıkar, düzeltmek ek iş. |
| Geliştirici bulma kolaylığı (Türkiye) | Orta. Dart öğrenilmesi gereken ayrı bir dil; havuz React kadar geniş değil. | Yüksek. JavaScript ve React bilen geliştirici sayısı çok daha fazla. |
| Mevcut web ekibiyle uyum | Düşük. Web tarafındaki React bilgisi doğrudan taşınmaz. | Yüksek. React bilen bir ekip için giriş engeli çok düşük. |
| Animasyon ve özel tasarım | Güçlü. Karmaşık geçişler ve özel tasarımlar daha az uğraşla çıkar. | Yapılabilir ama daha çok emek ister; ağır animasyonlarda köprü katmanı zorlanabilir. |
| Cihaz özelliklerine erişim (kamera, konum, bluetooth) | Geniş resmi paket seti; nadir donanımlarda native kod yazmak gerekebilir. | Çok geniş topluluk paketi; ama paket kalitesi değişken, bakımsız paketler yaygın. |
| Sürüm yükseltme sancısı | Genellikle sorunsuz; kırıcı değişiklikler duyurulup geçiş rehberiyle gelir. | Tarihsel olarak daha sancılı; paket uyumsuzlukları yükseltmeyi projeye dönüştürebilir. |
| Uygulama boyutu | Kendi çizim motorunu taşıdığı için taban boyut biraz daha yüksek. | Taban boyut biraz daha düşük olabilir; paket sayısı arttıkça fark kapanır. |
| Mağaza inceleme süreci | Sorunlar genellikle uygulamanın kendisinden kaynaklanır, çerçeveden değil. | Aynı; ama üçüncü parti paketlerin gizlilik beyanları eksik olabiliyor, bu ek iş çıkarıyor. |
Tablo mobilde yana kaydırılabilir. Değişken rakamlar (komisyon oranı, paket ücreti, sürüm numarası) bilerek yazılmadı — bunlar zamanla değişir, güncel değeri sağlayıcıdan doğrulayın.
Performans tartışması bugün çoğu proje için bitmiştir
On yıl önce bu karşılaştırmanın merkezinde performans vardı; bugün değil. Her iki çerçeve de sipariş listesi, harita, form, bildirim ve ödeme akışı içeren tipik bir iş uygulamasını akıcı çalıştırır. Fark, ekranda saniyede yüzlerce nesnenin hareket ettiği oyun benzeri arayüzlerde veya çok ağır liste animasyonlarında ortaya çıkar. Eğer uygulamanız bir oyun değilse ve saniyede binlerce satır güncellenen bir grafik göstermiyorsa, performans üzerinden karar vermek yanlış eksende karar vermektir. Doğru eksen ekip, bakım ve tasarım ihtiyacıdır.
Asıl belirleyici: uygulamayı beş yıl sonra kim açacak?
Bir mobil uygulama teslim edildiği gün bitmez; işletim sistemleri her yıl yeni sürüm çıkarır, mağazalar hedef sürüm zorunluluğu getirir ve uygulama güncellenmezse bir gün mağazadan düşer. Bu yüzden teknoloji seçiminde en ağır soru şudur: bu kodu ileride kim bakacak? Türkiye’de React ve JavaScript bilen geliştirici havuzu Dart bilenlerden belirgin şekilde geniştir; bu, React Native lehine gerçek bir argümandır. Buna karşılık Flutter kod tabanları pratikte daha az paket bağımlılığı taşıdığı için yıllar sonra açıldığında daha az kırılmış olur. Yani biri işe alım kolaylığı, diğeri bakım kolaylığı sunar.
Paket ekosistemi: çok olması iyi değildir, bakımlı olması iyidir
React Native tarafında hemen her ihtiyaç için birden çok paket bulunur ve bu ilk bakışta avantaj görünür. Pratikte sorun şudur: paketlerin önemli bir kısmı bakımsızdır, işletim sistemi güncellemesinden sonra çalışmayı bırakır ve o noktada ya paketi siz devralırsınız ya da alternatifine geçersiniz. Flutter tarafında paket sayısı daha az ama kritik alanlarda (kamera, konum, bildirim, harita) resmi ya da yaygın kabul görmüş tek bir çözüm olma eğilimi var. Bir proje seçerken paket sayısına değil, o paketin son güncellenme tarihine ve açık sorun sayısına bakmak gerekir; biz teklif aşamasında bunu tek tek kontrol ediyoruz.
Ekip zaten React biliyorsa denklem değişir
Şirket içinde React ile web geliştiren bir ekibiniz varsa React Native ciddi bir avantaj sunar: aynı dil, benzer bileşen mantığı, ortak yardımcı kod. Bu durumda tek bir ekip hem web hem mobil tarafı taşıyabilir ve bu, uzun vadede en büyük maliyet kaleminden — insan kaynağından — tasarruf demektir. Böyle bir ekibiniz yoksa bu avantaj sizin için yoktur ve karar diğer kriterlere kayar. Kararı verirken sorulacak soru "hangisi daha iyi" değil, "bizim elimizde ne var" olmalıdır.
Tek kod tabanı, iki farklı kabuk — mimari kararı çerçeveden bağımsızdır
Ev Hizmet uygulamasında müşteri ve hizmet veren için iki ayrı uygulama yayınlamak yerine tek kod tabanında, kullanıcının rolüne göre açılan iki ayrı kabuk kurduk. Bu karar Flutter’a özgü değil; React Native ile de yapılabilirdi. Buradaki mesaj şu: mimari kararlar (rol bazlı kabuk, sunucu tarafında yetkilendirme, veri minimizasyonu) çerçeve seçiminden bağımsızdır ve projenin kaderini çerçeveden daha çok belirler. Flutter mı React Native mi sorusuna takılıp bu kararları atlamak, yanlış yerde uzun düşünüp doğru yerde hızlı karar vermektir.
Peki ya native? Üçüncü bir yol var
Bazı projelerde doğru cevap ikisi de değildir. Şifre Yöneticisi uygulamasını Kotlin ile native yazdık, çünkü Android’in donanım destekli anahtar deposu ve biyometrik doğrulama API’lerine doğrudan erişmek istedik; arada bir katman olduğunda bu bütünleşme sorunlu oluyor. Sessiz Uyku da aynı sebeple native. Yani soru üçlüdür: Flutter, React Native ve native. Güvenlik veya derin sistem entegrasyonu merkezdeyse native, geri kalan çoğu durumda cross-platform doğru cevaptır. Bu ayrımı ayrıca yazdık: Native mi Cross-Platform mu?
Hangisini Seçmelisiniz?
Flutter seçin, eğer:
- Ekibinizde hazır bir React geliştirici kadrosu yok
- iOS ve Android’in birebir aynı görünmesini istiyorsunuz
- Tasarımınız özel; hazır platform bileşenlerine benzemesin istiyorsunuz
- Uygulamayı yıllarca az bakımla taşımak istiyorsunuz
- Animasyon ve geçişler ürün deneyiminin önemli parçası
React Native seçin, eğer:
- Şirketinizde zaten React ile web geliştiren bir ekip var
- Aynı ekibin hem web hem mobil taşımasını istiyorsunuz
- Uygulama ağırlıklı olarak veri listeleyen, form içeren bir yapı
- İleride geliştirici bulma kolaylığı sizin için en kritik kriter
Bizim Deneyimimiz
Flutter tarafında üç uygulama yayınladık. Canlı Altın gram, çeyrek, yarım ve tam altın ile döviz kurlarını anlık gösteriyor; hem App Store hem Google Play’de yayında ve İngilizce sürümü de var. Ev Hizmet iki taraflı bir pazaryeri: müşteri ve hizmet veren için tek kod tabanında rol bazlı iki kabuk, canlı konum takibi, 3D Secure ödeme ve dört dilli arayüz; iki mağazada da yayında. Dini Bilgi Yarışması ise tamamen çevrimdışı çalışan bir oyun. React Native tarafında Mesai adlı vardiya ve mesai takibi uygulamasını geliştiriyoruz; bu uygulama henüz geliştirme aşamasında ve yayında değil, bunu olduğu gibi yazıyoruz. Kotlin native tarafında ise Şifre Yöneticisi ve Sessiz Uyku uygulamalarımız Play Store’da.
Sıkça Sorulan Sorular
Flutter mı React Native mi daha ucuz?
Uygulamam ileride başka bir ekibe devredilebilir mi?
Flutter web ve masaüstü de yapıyor, avantaj değil mi?
Var olan React Native uygulamamı Flutter’a taşımak mantıklı mı?
Hangisinde mağaza reddi daha az yaşanıyor?
Karar Verdiyseniz
Bu karşılaştırmanın karşılık geldiği çözüm sayfaları — sistemin hangi modüllerden oluştuğunu ve sürecin nasıl işlediğini orada bulacaksınız.
Konuyla İlgili Yazılar
Flutter mı Kotlin mı? Android Uygulamanız İçin Doğru Seçim
Yeni bir Android uygulama projesinde Flutter ve Kotlin arasında karar verirken hangi soruları sormalısınız? Geliştirme süresi, performans, ekip uyumu ve uzun vadeli bakım maliyetleri.
iOS ve Android Mobil Uygulama Geliştirme: 4 Gerçek Proje Üzerinden Anlatım
Play Store ve App Store'da yayınladığımız Canlı Altın, Şifre Yöneticisi, Sessiz Uyku ve Mesai uygulamalarını nasıl geliştirdiğimizi anlatıyoruz. Teknoloji seçimi, mimari kararlar ve yayın süreci.
Diğer Karşılaştırmalar
Hâlâ emin değil misiniz?
Durumunuzu anlatın, hangisinin size uyduğunu söyleyelim. Cevap "ikisi de değil" ya da "bu iş için bize ihtiyacınız yok" olursa onu da söylüyoruz.
WhatsApp'tan Sorun