Artsution® — 360° tasarım & teknoloji stüdyosu

Yazılım8 dk okuma

Mobil Uygulama: Native mi, Cross-Platform mu?

Mobil uygulamayı her platform için ayrı (native) mı, tek kod tabanıyla (cross-platform) mı geliştirmeli? Flutter ve React Native'i tarafsız karşılaştırıyor, mağaza süreçlerini anlatıyoruz.
Solda ayrı renkli bileşen yığınlarına bağlanan iki telefon, sağda tek sarı bileşen yığınını paylaşan iki telefon maketi.

Bu konuda desteğe mi ihtiyacınız var?

Marka, web ve yazılım işlerinizi tek ekipte planlayalım.

Proje Başlat

Native uygulama, iOS ve Android için ayrı ayrı, her platformun kendi diliyle geliştirilen uygulamadır. Buna karşılık cross-platform (çapraz platform) uygulama, tek bir kod tabanından iki platforma birden çıkar. Native vs cross platform sorusunun tek doğru cevabı yoktur: Çoğu iş uygulaması için cross-platform yeterli ve daha ekonomiktir; platformun en yeni özelliklerine derinden bağlı ya da çok yoğun grafik işleyen uygulamalarda native öne çıkabilir.

Kısaca

  • Native: iOS için Swift/SwiftUI, Android için Kotlin/Jetpack Compose. Platforma en yakın deneyim, ama iki ayrı kod tabanı.
  • Cross-platform: Tek kod tabanı, iki platform. En yaygın iki seçenek Flutter (Dart) ve React Native (JavaScript/TypeScript).
  • Flutter arayüzü kendi motoruyla çizer; React Native platformun yerel arayüz bileşenlerini kullanır. İkisi de olgun ve yaygın.
  • Seçimi teknoloji modası değil; ekip, bütçe, gereken cihaz özellikleri ve uzun vadeli bakım belirler.
  • Hangi yolu seçerseniz seçin, App Store ve Google Play'in kuralları aynıdır: hesap silme, gizlilik bildirimi, inceleme ve güncel SDK zorunlulukları.

Native uygulama nedir?

Native (yerel) uygulama, her platformun üreticisinin önerdiği dil ve araçlarla yazılır. Örneğin Apple, SwiftUI'ı "Swift'in gücüyle tüm Apple platformlarında uygulama geliştirmek" için sunar. Google ise 2019'dan bu yana Android geliştirmeyi "Kotlin öncelikli" (Kotlin-first) olarak konumlandırır; modern arayüz aracı Jetpack Compose da Kotlin ile kullanılır.

Artıları:

  • Platformun yeni özelliklerine ilk gün erişim,
  • Platform davranışına en yakın kullanıcı deneyimi,
  • Yoğun grafik, kamera, sensör ya da arka plan işlerinde en geniş kontrol.

Eksileri:

  • İki ayrı kod tabanı, çoğu zaman iki ayrı uzmanlık,
  • Her özelliğin iki kez geliştirilip test edilmesi,
  • Daha yüksek geliştirme ve bakım maliyeti.

Cross-platform nedir?

Cross-platform yaklaşımda uygulamanın büyük kısmı bir kez yazılır ve hem iOS hem Android'de çalışır. Ancak platforma özgü küçük bölümler (ör. belirli bir donanım özelliği) gerektiğinde bunları native kodla eklersiniz.

Bugün bu alanda en yaygın iki araç Flutter ve React Native'dir. İkisi de açık kaynaklıdır ve büyük topluluklara sahiptir. Bununla birlikte aralarındaki asıl fark, arayüzü nasıl ekrana getirdikleridir.

Flutter

Google tarafından geliştirilen Flutter'da uygulamalar Dart diliyle yazılır. Flutter'ın resmî mimari belgesine göre Flutter, arayüzü işletim sisteminin bileşenlerine çevirmez; kendi bileşen setini taşır ve her pikseli kendi çizer. Mobilde bu iş için uygulamanın içinde gelen Impeller çizim motorunu kullanır. Ayrıca yayın sürümünde kod, doğrudan makine koduna derlenir.

Bu yaklaşımın sonucu: Uygulama iOS ve Android'de aynı görünür ve davranır; işletim sistemi kendi bileşenlerini değiştirse bile sizin arayüzünüz etkilenmez. Platformun yerel bir bileşenine (ör. harita) ihtiyaç olduğunda "platform view" ile yerleştirilir, cihaz özelliklerine ise "platform channel" ile erişilir.

React Native

Meta tarafından geliştirilen React Native'de uygulamalar JavaScript ya da TypeScript ile, web dünyasından tanıdık React yaklaşımıyla yazılır. React Native belgelerine göre çalışma anında her bileşenin karşılığı olan iOS ve Android görünümleri oluşturulur; yani ekrandaki buton ya da metin, platformun kendi bileşenidir. React Native 0.76 sürümüyle (Ekim 2024) "Yeni Mimari" (New Architecture) varsayılan hale geldi.

Bu yaklaşımın sonucu: Uygulama her platformda o platformun yerel bileşenleriyle görünür. Üstelik web tarafında React kullanan bir ekip için öğrenme eğrisi daha kısadır.

Koyu taş platformlarda iki telefonun aynı mercan düğme, turkuaz görsel ve krem kart bileşenlerini ortadaki ortak tepsiden alması.
Cross-platform yaklaşımda iki platform aynı bileşenleri ortak bir kod tabanından alır; native'de her platformun kendi kodu vardır.

Karşılaştırma tablosu

ÖlçütNative (Swift / Kotlin)FlutterReact Native
DilSwift (iOS), Kotlin (Android)DartJavaScript / TypeScript
Kod tabanıPlatform başına birTekTek
ArayüzPlatformun kendi bileşenleriKendi çizim motoru (Impeller)Platformun yerel bileşenleri
Platformlar arası görünümHer platformda kendine özgüHer platformda aynıHer platformda yerel
Yeni platform özelliklerine erişimİlk günEklenti ya da native kodlaKütüphane ya da native kodla
Uygun ekipiOS ve Android uzmanlarıDart/Flutter bilen ekipReact/JavaScript bilen ekip
Güçlü olduğu yerPlatforma derin bağlı, yoğun donanım kullanan uygulamalarMarkaya özel, her yerde aynı görünmesi istenen arayüzlerWeb'de React kullanan ekipler, yerel görünüm istenen uygulamalar

Bu tablo yalnızca genel eğilimleri gösterir. İki cross-platform aracı arasında "hangisi daha hızlı" sorusunun tek cümlelik bir cevabı yoktur; performans, uygulamanın nasıl yazıldığına çok daha fazla bağlıdır.

Nasıl karar verirsiniz?

Şu soruları sırayla sorun:

  1. Uygulama gerçekten mobil uygulama mı olmalı? Kullanıcılar onu ne sıklıkla, nerede kullanacak? Bazen iyi tasarlanmış, mobil uyumlu bir web uygulaması yeterlidir.
  2. Hangi cihaz özelliklerine ihtiyacınız var? Kamera, konum, bildirim, Bluetooth, arka plan çalışması gibi. Bunların çoğu cross-platform araçlarda eklentilerle desteklenir; çok özel bir donanım ihtiyacı varsa native daha rahat olabilir.
  3. Arayüz her platformda aynı mı görünmeli, yoksa platforma uymalı mı?
  4. Uygulamayı uzun vadede kim geliştirecek? Kendi ekibiniz React biliyorsa React Native, ayrı iOS/Android uzmanlarınız varsa native, tek bir mobil ekiple iki platform hedefliyorsanız her iki cross-platform seçeneği de anlamlıdır.
  5. Bütçe ve süre ne kadar? İki ayrı native uygulama, genellikle tek kod tabanlı bir uygulamadan daha fazla emek ister. Maliyeti belirleyen diğer etkenleri Özel Yazılım Maliyeti Neye Göre Belirlenir? yazımızda anlattık.

Bir mobil uygulamanın çoğu zaman bir de arka yüzü (sunucu, veritabanı, API) olduğunu unutmayın. Üstelik bu kısım native ya da cross-platform seçiminden bağımsızdır. Ayrıntı için Frontend ve Backend Nedir? ve API Entegrasyonu Nedir? yazılarımıza bakabilirsiniz.

Mağaza süreçleri: Şubat 2026 itibarıyla bilmeniz gerekenler

Seçtiğiniz teknoloji ne olursa olsun, uygulamanız App Store ve Google Play'in kurallarına uymak zorundadır. Ancak bu kurallar sık güncellenir; aşağıdakiler Şubat 2026 itibarıyla geçerlidir.

Geliştirici hesapları

  • Apple Developer Program üyeliği yıllık ücretlidir.
  • Google Play geliştirici hesabı tek seferlik bir kayıt ücretiyle açılır. Ayrıca Google, kayıt sırasında kimlik doğrulaması ister.
  • Hesapları işletmenizin adına açın. Aksi halde geliştiricinin kişisel hesabında yayımlanan uygulamalar, ileride devir sorunlarına yol açabilir. Bu konuyu Mevcut Yazılımınızı Devralmak yazımızda ele aldık.

Google Play'e özgü kurallar

  • Yeni kişisel hesaplarda test zorunluluğu: 13 Kasım 2023'ten sonra açılan kişisel geliştirici hesapları, uygulamayı yayına almadan önce en az 12 test kullanıcısıyla, kesintisiz 14 gün kapalı test yapmak zorundadır.
  • Hedef API seviyesi: 31 Ağustos 2025'ten itibaren yeni uygulamalar ve güncellemeler Android 15 (API seviyesi 35) ya da üstünü hedeflemelidir. Üstelik Google bu eşiği her yıl yükseltir.
  • Veri güvenliği formu: Uygulamanın hangi veriyi topladığı Play Console'daki Data safety bölümünde beyan edilir.

App Store'a özgü kurallar

  • SDK zorunluluğu: 24 Nisan 2025'ten itibaren App Store Connect'e yüklenen uygulamalar Xcode 16 ve iOS 18 SDK ya da üstüyle derlenmelidir. Apple da bu eşiği düzenli olarak yükseltir.
  • Yaş derecelendirmesi: Apple, yeni yaş derecelendirme sorularının her uygulama için 31 Ocak 2026'ya kadar cevaplanmasını istedi; cevaplanmayan uygulamaların güncelleme gönderiminde kesinti yaşanabilir.
  • İnceleme: Giriş gerektiren uygulamalarda inceleme ekibine çalışan bir demo hesap verilmeli ve arka yüz inceleme sırasında açık olmalıdır.

İki mağazada ortak kurallar

  • Hesap silme: Uygulamada hesap oluşturulabiliyorsa, kullanıcıya uygulama içinden hesabını silme imkânı sunulmalıdır. Google Play ayrıca, uygulamayı yeniden yüklemeden silme talebi gönderilebilecek bir web bağlantısı ister.
  • Gizlilik politikası: Hem mağaza kaydında hem uygulama içinde erişilebilir bir gizlilik politikası bağlantısı bulunmalıdır.
  • Asgari işlev: Apple'ın yönergelerine göre uygulama, "paketlenmiş bir web sitesinin" ötesinde gerçek bir işlev sunmalıdır.
Telefonun yanında krem kontrol tepsisinde kalkan, anahtar, boş belge, mühür ve kâğıt kutusu; dışarıda iki turkuaz onay taşı.
Yayına çıkmadan önce mağaza kontrol listesi.

Bizim deneyimimiz

Mobil uygulama hizmetimizde Flutter ve React Native ile çalışıyoruz. Hangisini önerdiğimiz projeye göre değişiyor: ekibinizin bildiği teknoloji, arayüzün markaya özel mi yoksa platforma uygun mu olması gerektiği ve uygulamayı uzun vadede kimin geliştireceği belirleyici oluyor.

Öte yandan kendi ürünlerimiz AquaCRM (Laravel), Etiket İş Takip Asistanı (Next.js) ve Grafik Sanat (React), web teknolojileriyle geliştirildi. Projelerimizde "bu iş için gerçekten mağazada bir uygulama gerekiyor mu?" sorusunu teknoloji seçiminden önce soruyoruz.

Sık sorulan sorular

Cross-platform uygulama native kadar hızlı olur mu?

Genellikle iş uygulamalarının büyük çoğunluğunda kullanıcı farkı hissetmez. Fark, çok yoğun grafik, karmaşık animasyon ya da donanıma derinden bağlı işlerde ortaya çıkabilir. Sonuçta performans, seçilen araçtan çok uygulamanın nasıl yazıldığına bağlıdır.

Flutter mı React Native mi?

İkisi de olgun ve yaygın seçeneklerdir. Arayüzün her platformda birebir aynı görünmesini istiyorsanız Flutter'ın kendi çizim yaklaşımı avantaj sağlar. Ekibiniz web tarafında React kullanıyorsa ya da platformun yerel bileşenleriyle görünüm istiyorsanız React Native mantıklıdır. Karar, ekip ve uzun vadeli bakım üzerinden verilmelidir.

Uygulamayı önce tek platformda yayımlasak olur mu?

Olur. Özellikle kullanıcılarınızın büyük kısmı tek bir platformdaysa önce oradan başlamak riski azaltır. Ayrıca cross-platform bir teknolojiyle başlarsanız ikinci platforma geçiş daha kolay olur.

Mağaza onayı ne kadar sürer?

Süre mağazaya, uygulamaya ve döneme göre değişir; dolayısıyla kesin bir süre vaat etmek doğru olmaz. Google Play'de yeni kişisel hesaplar için 14 günlük kapalı test zorunluluğunu da takvime eklemeyi unutmayın.

Sonuç

Native ve cross-platform arasındaki seçim, bir teknoloji tartışmasından çok bir iş kararıdır: ekip, bütçe, cihaz özellikleri ve uzun vadeli bakım. Flutter ve React Native, iş uygulamalarının çoğu için tek kod tabanıyla iki platforma çıkmanın olgun yollarıdır. Hangi yolu seçerseniz seçin, mağaza kurallarını takviminize baştan ekleyin. Mobil uygulama fikrinizi birlikte değerlendirmek isterseniz Mobil Uygulama Geliştirme sayfamıza göz atabilir ya da bizimle iletişime geçebilirsiniz.

Güncelleme (Ekim 2026): Mağaza zorunlulukları yazının yayımından sonra yükseldi. Apple, 28 Nisan 2026'dan itibaren App Store Connect'e yüklenen uygulamaların Xcode 26 ve iOS 26 SDK ile derlenmesini zorunlu kıldı. Google Play'de ise 31 Ağustos 2026'dan itibaren yeni uygulamalar ve güncellemeler Android 16 (API seviyesi 36) hedeflemelidir (1 Kasım 2026'ya kadar uzatma istenebilir); mevcut uygulamaların yeni kullanıcılara görünmeye devam etmesi için en az Android 15'i (API 35) hedeflemesi gerekir.

Kaynaklar14
  1. Flutter — Architectural overview. — erişim: 2026-10 docs.flutter.dev
  2. React Native — Core Components and Native Components. — erişim: 2026-10 reactnative.dev
  3. React Native Blog — React Native 0.76: New Architecture by default (23 Ekim 2024). — erişim: 2026-10 reactnative.dev
  4. Android Developers — Android's Kotlin-first approach. — erişim: 2026-10 developer.android.com
  5. Apple Developer — SwiftUI. — erişim: 2026-10 developer.apple.com
  6. Google Play Console Yardım — Yeni kişisel geliştirici hesapları için test gereksinimleri. — erişim: 2026-10 support.google.com
  7. Google Play Console Yardım — Hedef API seviyesi gereksinimleri. — erişim: 2026-10 support.google.com
  8. Android Developers — Meet Google Play's target API level requirement. — erişim: 2026-10 developer.android.com
  9. Google Play Console Yardım — Hesap silme gereksinimleri. — erişim: 2026-10 support.google.com
  10. Google Play Console Yardım — Geliştirici hesabı kaydı. — erişim: 2026-10 support.google.com
  11. Apple Developer — Upcoming requirements (SDK, yaş derecelendirmesi). — erişim: 2026-10 developer.apple.com
  12. Expo Blog — Apple SDK minimum requirements (24 Nisan 2025, Xcode 16 / iOS 18 SDK). — erişim: 2026-10 expo.dev
  13. Apple — App Review Guidelines (2.1, 4.2, 5.1.1). — erişim: 2026-10 developer.apple.com
  14. Apple Developer Program. — erişim: 2026-10 developer.apple.com
LinkedIn
WhatsApp
X
Facebook

Proje Başlat

Bize projenizden bahsedin.

Formu doldurun, bir iş günü içinde size özel bir yol haritasıyla dönelim. Dilerseniz doğrudan info@artsution.com.tr adresine de yazabilirsiniz.