Native uygulama, bir mobil platform için o platformun kendi dili ve araçlarıyla yazılmış uygulamadır: iOS için Swift/SwiftUI ve Xcode, Android için Kotlin/Jetpack Compose ve Android Studio. “Native” olmasının pratik anlamı şudur — kod doğrudan işletim sistemi API’lerine konuşur, araya bir çeviri katmanı girmez. Karşılığında en yüksek performansı, yeni platform özelliklerine ilk gün erişimi ve en akıcı arayüzü alırsınız; bedeli ise iki ayrı kod tabanı, yani kabaca 1,6-2 katı geliştirme eforudur. Çoğu iş uygulaması için bu fark gerekli değildir; ama kamera, harita, arka plan konumu, ağır animasyon veya cihaz donanımı işin merkezindeyse native tek doğru cevaptır.
Native, cross-platform ve web uygulaması farkı
- Native: Her platform için ayrı kod (Swift/Kotlin). En yüksek performans ve donanım erişimi, en yüksek maliyet. iOS 26 ya da yeni bir Android API’si çıktığında ilk gün kullanabilirsiniz.
- Cross-platform (React Native, Flutter): Tek kod tabanı, iki mağaza. Arayüzün büyük kısmı ortak; gerektiğinde native modül yazılır. Kurumsal uygulamaların çoğu bu kategoride ve doğru yerde.
- PWA / web uygulaması: Mağaza yok, kurulum yok, tarayıcıda çalışır. En düşük maliyet, en sınırlı donanım erişimi. Ayrıntılar için PWA nedir yazımıza bakabilirsiniz.
- Hibrit (WebView): Web sayfasını uygulama kabuğuna sarar. Ucuzdur ama kullanıcı deneyimi genelde “uygulama gibi hissettirmez” ve mağaza incelemesinde reddedilme riski taşır.
Native uygulamanın gerçek avantajları
Native’in üstünlüğü çoğu pazarlama metninde “hız” olarak özetlenir; oysa fark şu dört yerde somut olarak hissedilir:
- Donanıma tam erişim: Kamera üzerinde kare bazlı işlem, Bluetooth/NFC, arka planda konum takibi, biyometrik kimlik doğrulama, widget’lar ve saat uygulamaları. Cross-platform çözümlerde bunların bir kısmı köprü (bridge) ister ve köprü hem geliştirme süresi hem hata kaynağıdır.
- Animasyon ve kaydırma akıcılığı: Uzun listeler, harita üzerinde yoğun çizim, gerçek zamanlı grafik. Ortalama bir form uygulamasında fark görünmez; yoğun görsel işte gözle görülür.
- Platform standartlarına uyum: Geri hareketi, klavye davranışı, erişilebilirlik ve sistem temaları kutudan çıktığı gibi doğru çalışır. Kullanıcı “bu uygulama yerli değil” hissini genelde bu ayrıntılardan alır.
- Yeni özelliklere ilk gün erişim: İşletim sistemi güncellemesiyle gelen API’leri beklemeden kullanabilirsiniz; cross-platform tarafında bu genelde çerçevenin desteklemesini beklemek demektir.
Kod: aynı ekran, iki platform
Native geliştirmenin maliyetini en iyi anlatan şey, aynı basit ekranın iki kez yazılıyor olmasıdır. Aşağıda aynı liste ekranının SwiftUI ve Jetpack Compose karşılıkları var — mantık aynı, diller ve API’ler ayrı:
// iOS — SwiftUI
struct OrdersView: View {
@StateObject private var model = OrdersViewModel()
var body: some View {
List(model.orders) { order in
VStack(alignment: .leading) {
Text(order.customer).font(.headline)
Text(order.total, format: .currency(code: "TRY"))
.foregroundStyle(.secondary)
}
}
.refreshable { await model.load() } // sistem "aşağı çekip yenile"
.task { await model.load() }
}
}
// Android — Jetpack Compose (aynı ekran, ayrı kod tabanı)
@Composable
fun OrdersScreen(model: OrdersViewModel = viewModel()) {
val orders by model.orders.collectAsStateWithLifecycle()
LazyColumn {
items(orders) { order ->
Column(Modifier.padding(16.dp)) {
Text(order.customer, style = MaterialTheme.typography.titleMedium)
Text(formatCurrency(order.total), color = MaterialTheme.colorScheme.outline)
}
}
}
}Aynı ekranı React Native ile yazsaydınız tek bir bileşen yeterdi. Karar tam olarak burada verilir: iki kod tabanının getirdiği kaliteye ihtiyacınız var mı, yoksa aynı bütçeyi özellik geliştirmeye mi harcamak istersiniz? Karşılaştırmayı native mi React Native mi yazımızda örneklerle ele aldık.
Native ile cross-platform arasındaki fark, kullanıcı tarafında sanıldığı kadar performans; şirket tarafında ise tamamen ekip meselesidir. İki native kod tabanı iki uzmanlık (iOS ve Android) ve iki ayrı sürüm takvimi demektir. Ekip tek geliştiriciyse ya da özellik hızının kalite farkından önemli olduğu bir pazarda yarışıyorsanız, native seçimi çoğu zaman teknik değil operasyonel bir hata olur.
Maliyet ve süre
Kabaca hesap şöyle işler: cross-platform bir uygulamanın geliştirme eforuna 1 dersek, iki platform için native yaklaşık 1,6-2 bandındadır. İkiye katlanmamasının nedeni, sunucu tarafı, tasarım ve iş analizinin ortak olmasıdır. Ama süre tek başına maliyet değildir: bakım da ikiye katlanır. Her işletim sistemi güncellemesinde iki kod tabanı test edilir, her yeni özellik iki kez yazılır ve mağaza gönderimleri ayrı yönetilir. Yıllık bakım bütçesini planlarken bunu hesaba katın — ayrıntılı kalemler için mobil uygulama bakım maliyeti yazımıza bakabilirsiniz.
Hangi projede native, hangisinde değil?
- Native seçin: Kamera/görüntü işleme merkezli uygulamalar, sürekli arka plan konumu (saha ekibi, kurye), Bluetooth/NFC ile cihaz haberleşmesi, ağır grafik veya oyun, giyilebilir cihaz ve widget odaklı deneyimler, tek platformda başlayacak ürünler.
- Cross-platform seçin: Kurumsal iç uygulamalar, e-ticaret, rezervasyon ve randevu, içerik ve üyelik uygulamaları, MVP’ler — yani ekranların çoğu form, liste ve detaydan oluşan işler.
- Web/PWA seçin: Kurulum bariyerini kaldırmak istiyorsanız, kullanım seyrekse ve donanım erişimi gerekmiyorsa.
Sonuç
Native uygulama, platformun sunduğu her şeye tam erişim isteyen projeler için en iyi sonucu verir; bunun bedeli iki kod tabanı ve iki katına yakın bakımdır. Doğru soru “native mi daha iyi” değil, “uygulamamın çekirdek değeri cihaz yeteneklerine mi dayanıyor” sorusudur. Cevap evetse native, hayırsa cross-platform aynı bütçeyle daha fazla özellik ve daha hızlı pazara çıkış getirir. Projeniz için hangisinin doğru olduğundan emin değilseniz mobil uygulama hizmetimizi inceleyebilir ya da uygulama fikrinizi ve hedef platformlarınızı iletip ücretsiz teklif alabilirsiniz.