Mobil Mühendislik
Yeni Nesil Mobil Uygulamaların Mimarisi
Architecting the Next Generation of Mobile Apps
Yeni nesil mobil uygulama; cihazda ve özel bulutta çalışan AI, sunucudan yönetilen arayüz, modüler kod ve çevrimdışı öncelikli veriyi bilinçli seçilmiş dengelerle birleştiriyor.
Yeni nesil mobil mimari çatı seçimi değil katman kararıdır: zekâ, arayüz ve veri; maliyet, gizlilik ve değişim hızına göre cihazla sunucu arasında bölünür.
Apple ve Google'ın hibrit AI API'leri, Airbnb'nin SDUI'si ve Android'in offline-first rehberi bu yönde; en yeni ve en az oturmuş katman on-device AI.
Zihinsel model
Mobil uygulama bir mutfaktır: hızlı işler tezgâhta (cihaz), ağır pişirme fırında (bulut), menü kapıdaki panoda (sunucu) değişir.
Neden
- Cihazdaki model ücretsiz, hızlı ve özel ama küçük; kişisel ve kısa görevler cihazda, geniş akıl yürütme bulutta kalır.
- Mağaza onayı her değişikliği yavaşlattığı için sık değişen içerik SDUI ve Feature Flag ile sunucudan yönetilir.
- Ağ güvenilmez olduğundan veri önce yerelde okunup yazılır; ağın işi arka planda eşitlemeye iner.
Kanıt
Foundation Models aynı session içinde cihazdaki model, Private Cloud Compute ve üçüncü taraf bulut modelleri arasında geçişe izin veriyor.
Apple WWDC26 2026Apple'ın cihazdaki modeli yaklaşık 3 milyar parametreli; istek başına ücret ve ağ bağlantısı gerektirmiyor.
Cult of Mac 2025Airbnb'nin Ghost Platform'u tek bir şemayla web, iOS ve Android ekranlarını sunucudan yönetiyor.
Airbnb Tech Blog 2021Karşı görüş
Her katman yeni bir karmaşıklık getirir: SDUI sürüm uyumluluğu, offline-first çakışma kuralı, on-device AI ise sınırlı cihaz kapsaması demek. Küçük ekipte bu katmanları erken kurmak ürünü yavaşlatır.
Kavramlar
Pratikte
- Her on-device AI özelliği için bulut ya da 'özellik yok' yedeğini baştan tasarla.
- SDUI'yi yalnızca sık değişen içerik yüzeylerine uygula; her bileşene yedek gösterim ve şema sürümü ver.
- Temel akışları uçak modunda test et; çakışma kuralını ürün ekibiyle birlikte belirle.
Önümüzdeki birkaç yılın mobil uygulamaları birkaç temel mimari karar üzerine kuruluyor. Apple'ın iOS 26 ile açtığı Foundation Models çatısı, Haziran 2026'daki WWDC26 ile görsel girdi alan, sistem araçları çağırabilen ve Private Cloud Compute üzerindeki daha büyük modele geçebilen bir yapıya dönüştü; çatı açık kaynak oldu ve Claude ile Gemini gibi bulut modellerini de aynı arayüzden kullanmaya izin veriyor. Android tarafında ML Kit Prompt API beta aşamasında Gemini Nano'ya erişim sağlıyor. Çapraz platform seçenekleri de olgunlaştı: React Native 0.82 ile yalnızca yeni mimariye geçti ve Ağustos 2026'daki 0.87 ile sıkı TypeScript API'sini varsayılan yaptı; Flutter 3.47 ve Compose Multiplatform 1.10 düzenli sürüm ritmini sürdürüyor. Bu araçlar bolken asıl soru, hangisinin hangi ürün için doğru olduğu ve uygulamanın beş yıl sonra da değiştirilebilir kalmasının nasıl sağlanacağı. 23 Ekim 2026'da satışa çıkacak katlanabilir iPhone da uyarlanabilir yerleşimi mimari bir gereksinime çeviriyor.
Çıkarımlar
- AI artık üç katmanlı: cihazdaki küçük model, gizlilik güvenceli özel bulut ve genel bulut modeli; her on-device özelliğin yedeği olmalı.
- SDUI sık değişen içerik yüzeylerinde değerli; her bileşenin yedek gösterimi ve şemanın sürüm numarası olmalı.
- Modül sınırları ekip ve özellik sınırlarını yansıtmalı; Build Time artık Agent verimini de belirliyor.
- Offline-first'te çakışma kuralı teknik değil ürün kararıdır.
- Yeni bir özelliği güncelleme yayınlamadan kapatamıyorsanız her yayın bir risktir; ama flag ile gizli özellik açmak 2026'da mağaza kuralıyla yasak.
Alt başlıklar
On-device AI: hangi iş cihazda, hangisi bulutta
Apple'ın Foundation Models çatısı, Apple Intelligence destekli cihazlarda yaklaşık 3 milyar parametrelik bir modele Swift üzerinden erişim veriyor. Çıktıyı Swift tiplerine bağlayan guided generation (yönlendirilmiş üretim) ve uygulamanın kendi fonksiyonlarını çağırabilen tool calling destekleniyor; istek başına ücret yok, ağ bağlantısı gerekmiyor. iOS 26.4 ile bağlam boyutunu ve token sayısını sorgulayan API'ler geldi; WWDC26 ile model görsel girdi almaya başladı ve aynı LanguageModelSession içinde daha büyük Private Cloud Compute modeline geçmek mümkün oldu. Android tarafında ML Kit GenAI API'leri özetleme ve görsel betimleme gibi hazır görevler sunuyor, Prompt API ise Temmuz 2026 itibarıyla beta aşamasında Gemini Nano'ya serbest istem göndermeyi sağlıyor.
Pratik ayrım şöyle: kısa metin sınıflandırma, bildirim başlığı üretme, form alanlarını yapılandırma ve kişisel veriye dokunan özetleme cihazda; uzun akıl yürütme, geniş bilgi gerektiren sorular ve güncel veri bulutta. Apple tarafında artık üçüncü bir katman var: gizlilik güvencesi süren ama daha yetenekli özel bulut modeli. Anti-pattern, cihazdaki küçük modeli bulut modelinin ücretsiz kopyası sanmak. Ayrıca destekleyen cihaz oranı sınırlı olduğu için her on-device özelliğin bir bulut ya da 'özellik yok' yedeği tasarlanmalı; Apple'ın yeni evaluations çatısı bu davranışı test etmeye yardım ediyor.
Ekim 2026 itibarıyla durum
Son on iki ayın en büyük değişimi on-device AI tarafında. WWDC26'da Apple, Foundation Models çatısını açık kaynak yaptı; cihazdaki model yeniden eğitildi ve görsel girdi kabul ediyor, OCR ve barkod okuma gibi Vision araçlarını doğrudan çağırabiliyor. Daha büyük model Private Cloud Compute üzerinde 32 bin token bağlamla sunuluyor ve küçük geliştiricilere bulut API ücreti olmadan açılıyor. Yeni LanguageModel protokolü sayesinde aynı session cihazdaki model, Apple'ın bulut modeli ya da Claude ve Gemini gibi üçüncü taraf modellerle çalışabiliyor. Android'de ML Kit Prompt API Temmuz 2026 itibarıyla beta.
Çapraz platformda React Native 0.84 ile Hermes V1 varsayılan oldu, 0.87 ile sıkı TypeScript API'si ve deneysel Swift Package Manager desteği geldi; Flutter 3.47 Ağustos 2026'da çıktı. Xcode 27'de coding agent'lar ve Device Hub aynı ortama girdi. Donanım tarafında Apple'ın katlanabilir iPhone Duo modeli 23 Ekim 2026'da satışa çıkıyor; Nisan 2027'den sonra mağazaya gönderilen uygulamaların bu cihaz için ekran görüntüsü vermesi gerekecek.
Server-driven UI: mağaza beklemeden ekran değiştirmek
Server-driven UI (sunucu güdümlü arayüz), ekranın hangi bileşenlerden hangi sırayla oluşacağını uygulama kodunda değil sunucunun gönderdiği şemada tanımlamak demek. Airbnb'nin Ghost Platform'u bunun bilinen örneği: sunucu ekranları bölümler (section), yerleşimler ve eylemlerden oluşan bir yapı olarak gönderiyor, web, iOS ve Android aynı yanıtı kendi native bileşenleriyle çiziyor.
Kazanç, mağaza onayını beklemeden ana sayfa düzenini, kampanya alanlarını ya da onboarding akışını değiştirebilmek ve eski sürümdeki kullanıcıya da yeni içerik gösterebilmek. Bedeli ise sürüm uyumluluğu: sunucu, eski uygulamanın tanımadığı bir bileşen gönderirse ne olacak? Her bileşenin bir yedek gösterimi ve şemanın sürüm numarası olmalı. Anti-pattern, her ekranı sunucuya taşımak. Ödeme formu ya da kamera gibi derin etkileşimli ekranlar native kalmalı; SDUI en çok sık değişen, içerik ağırlıklı yüzeylerde değer üretiyor.
Modülerlik: derleme süresi ve ekip sınırı
Tek parça bir mobil projede her değişiklik tüm uygulamanın yeniden derlenmesini tetikleyebiliyor. Kod tabanı birkaç yüz bin satıra ulaştığında temiz derleme on dakikayı aşabiliyor; bu, hem geliştiricinin hem de AI Agent'larının geri besleme döngüsünü yavaşlatıyor. 2026'da Xcode 27 ve Claude Code gibi araçlarda Agent'ların derleyip test ederek kendini doğruladığı düşünülünce, Build Time artık doğrudan Agent verimini belirliyor. Modülerlik, uygulamayı özellik modülleri (feature), ortak altyapı modülleri (core) ve arayüz ya da sözleşme modülleri olarak ayırmak demek.
Temel kural: özellik modülleri birbirini doğrudan import etmez, yalnızca sözleşme modülleri üzerinden konuşur. iOS'ta bu Swift Package Manager paketleriyle, Android'de Gradle modülleriyle kurulabiliyor. Her özellik modülünün kendi küçük demo uygulaması olduğunda, bir ekip ana uygulamayı derlemeden yalnızca kendi ekranını saniyeler içinde çalıştırabiliyor. Anti-pattern, her sınıfı ayrı modüle bölmek; Android'in resmi rehberi de aşırı ince bölünmenin yapılandırma yükünü artırdığı konusunda uyarıyor.
Offline-first: veri önce cihazda
Offline-first (çevrimdışı öncelikli) yaklaşımda uygulama okuma ve yazma işlemlerini önce yerel veritabanına yapar, ağ ise arka planda eşitleme için kullanılır. Kullanıcı metroda, asansörde ya da zayıf bağlantılı bir şantiyede uygulamayı açtığında boş bir yükleme ekranı yerine son bilinen veriyi görür ve işlem yapmaya devam eder.
Teknik olarak bu, yerel bir veri katmanı (iOS'ta SwiftData ya da SQLite, Android'de Room), bir değişiklik kuyruğu ve çakışma çözme kuralı gerektiriyor. Çakışma kuralı ürün kararıdır: iki cihaz aynı notu değiştirirse son yazan mı kazanır, alanlar mı birleştirilir? Basit veri için 'son yazan kazanır' yeterli; birlikte düzenlenen içerikte CRDT (çakışmasız çoğaltılmış veri tipi) gibi yapılar düşünülebilir. Somut başarı ölçütü: uçak modunda uygulamanın temel akışlarının yüzde kaçı çalışıyor? Sıfır ise mimari ağa bağımlı.
Çapraz platform kararı 2026'da
Çapraz platform seçenekleri son iki yılda belirgin olgunlaştı. React Native 0.82, Ekim 2025'te eski mimariyi tamamen bırakıp yalnızca yeni mimariyle (Fabric ve TurboModules) çalışmaya başladı; 2026'da 0.84 ile Hermes V1 varsayılan oldu, Ağustos'taki 0.87 ise sıkı TypeScript API'sini varsayılan yapıp Swift Package Manager desteğini deneysel olarak ekledi. JetBrains, Mayıs 2025'te Compose Multiplatform'un iOS desteğini kararlı ilan etmişti; 1.10 serisi iOS'ta pencere kenar boşlukları ve UIKit birlikte çalışmasını iyileştirdi. Kotlin Multiplatform ile iş mantığını paylaşıp arayüzü native bırakmak da yaygın bir seçenek. Flutter ise 3.47 ile Widget Previews'ı kararlı hâle getirdi.
Karar için faydalı sorular: ekibin mevcut dil yetkinliği ne, platforma özgü API'lere (HealthKit, widget, Live Activity, Foundation Models) ne kadar ihtiyaç var, web ile kod paylaşmak önemli mi? Örneğin Next.js ve TypeScript ağırlıklı bir ekip için Expo ve React Native doğal bir yol; Android ağırlıklı bir ekip için Kotlin Multiplatform. Anti-pattern, teknolojiyi popülerliğe göre seçip ekibin yarısını yeni dil öğrenmeye zorlamak. Katlanabilir cihazların yaygınlaşmasıyla seçilen çatının uyarlanabilir yerleşimi ne kadar iyi desteklediği de artık karar kriteri.
Gözlemlenebilirlik ve değişebilirlik
Yeni nesil mimarinin en az konuşulan parçası, uygulamanın sahada nasıl davrandığını görebilmek. Çökme raporu tek başına yetmiyor; ekran açılış süresi, ağ hatası oranı, on-device modelin yanıt süresi ve SDUI şemasının hangi sürümlerde hata verdiği ölçülmeli. Xcode 27'deki yenilenmiş Organizer; takılma, depolama ve pil gibi metriklere hedef koymayı ve sorunları etkisine göre sıralamayı sağlıyor. Foundation Models session'ları da artık her yanıtın token kullanımını raporluyor. Mobilde bir hatayı düzeltmek mağaza onayı ve kullanıcı güncellemesi gerektirdiği için, sorunu erken görmek web'e göre daha değerli.
Değişebilirlik için iki araç öne çıkıyor. Feature flag'ler yeni kodu yayınlayıp kademeli açmayı sağlıyor. Zorunlu güncelleme mekanizması ise kritik bir güvenlik açığında eski sürümleri durdurmanın tek yolu. Somut bir hedef: herhangi bir yeni özelliği uygulama güncellemesi yayınlamadan kapatabiliyor musunuz? Cevap hayırsa, her yayın bir risktir. Burada bir sınır da var: Apple'ın Ekim 2026'da eklediği 2.5.19 maddesi, incelenen sürümde olmayan özelliği sonradan açmayı yasaklıyor; flag ile açılan her özellik inceleme anında uygulamada mevcut ve belgelenmiş olmalı.
Son gelişmeler
Ekim 2026 itibarıyla
Önce kendi cevabını düşün, sonra aç.
Cihazdaki modeller bu kadar sınırlıysa neden uğraşalım, bulut modeli daha iyi değil mi?
Bulut modeli daha yetenekli ama her istek maliyet, gecikme ve veri paylaşımı demek. Bildirim başlığı üretmek ya da bir formu yapılandırmak gibi küçük görevlerde cihazdaki model ücretsiz, hızlı ve gizlilik açısından daha savunulabilir. 2026'da Apple tarafında ara bir seçenek de var: Private Cloud Compute modeli, küçük geliştiriciler için ücretsiz ve aynı arayüzden çağrılabiliyor. Doğru kurulum bunları birlikte kullanan hibrit bir yapı.
Server-driven UI mağaza kurallarını ihlal etmiyor mu?
Sunucudan veri ve yerleşim göndermek, uygulamanın zaten içinde olan native bileşenleri farklı sırayla göstermek demek; bu yaygın ve kabul gören bir pratik. Sorun, inceleme sonrası uygulamanın işlevini değiştiren çalıştırılabilir kod indirmek (2.5.2) ya da incelemede olmayan gizli özellikleri sonradan açmak; Apple Ekim 2026'da bunu 2.5.19 ile ayrıca yasakladı. SDUI'yi uygulamanın amacını değiştirmek için değil, içeriği düzenlemek için kullanmak gerekiyor.
Küçük bir ekip için modülerlik gereksiz karmaşıklık değil mi?
Üç kişilik bir ekip için on beş modül gereksiz. Ama baştan iki üç net sınır çizmek, örneğin ağ katmanı, tasarım sistemi ve özellikler, sonradan bölmekten çok daha ucuz. Derleme süresi birkaç dakikayı aşmaya başladığında modülerliğin getirisi hızla görünür.
React Native, Flutter, Kotlin Multiplatform, hangisi doğru seçim?
Tek bir doğru yok; ekibin yetkinliği ve ürünün platforma özgü ihtiyacı belirleyici. TypeScript ağırlıklı ekipler için React Native ve Expo, Android ve Kotlin ağırlıklı ekipler için Kotlin Multiplatform, tutarlı özel tasarım isteyen ürünler için Flutter mantıklı. Önemli olan seçimi ekip yapısına göre yapmak ve iş mantığını arayüzden ayırmak.
Notun kaynakları
- Cult of Mac: Apple Foundation Models framework
- Android Developers: ML Kit's Prompt API, custom on-device Gemini Nano experiences
- InfoQ: Airbnb Server-Driven UI (Ghost Platform)
- React Native 0.82 - A New Era
- WWDC26: What's new in the Foundation Models framework
- Apple Developer: Apple Intelligence – What's new
- Google ML Kit: Prompt API (Android)
- React Native 0.87 sürüm notu
- React Native Blog (sürüm listesi)
- Flutter: What's new in the docs
- Apple Developer News: iPhone Duo
- Apple Newsroom: Xcode 26.3 unlocks the power of agentic coding
- MacRumors: New App Store Rules (2.5.19)
Sunum stili
12 slayt. Tıklarsan sunum o slayttan başlar.
Slayt notları
Araçlar bol; soru hangisinin hangi ürün için doğru olduğu ve uygulamanın beş yıl sonra da değiştirilebilir kalması.
Her biri bir kazanç ve bir bedelle geliyor. Bu beş kolu tek tek dengelemek gerekiyor.
Teknolojiyi popülerliğe göre seçip ekibin yarısını yeni dil öğrenmeye zorlamak en pahalı mimari karar.
Foundation Models ~3 milyar parametre, guided generation ve Tool Call destekli; WWDC26 ile görsel girdi ve Private Cloud Compute'a geçiş geldi. Android'de Gemini Nano. Küçük model bulutun bedava kopyası değil ve her özelliğin yedeği olmalı.
Airbnb Ghost Platform örneği. Bedel sürüm uyumluluğu: her bileşenin fallback gösterimi ve şemanın sürüm numarası olmalı.
SPM ve Gradle modülleri. Her feature'ın kendi demo uygulaması Build Time'ı saniyelere indirir; Xcode 27'de kendini derleyip test eden Agent'lar da bu hızdan faydalanır. Her sınıfı modüle bölmek anti-pattern.
SwiftData ya da SQLite, Android'de Room. Metroda, asansörde, şantiyede kullanıcı boş yükleme ekranı yerine son bilinen veriyi görür.
Bu soruyu mühendise bırakan ekip, kullanıcının verisini kaybettiği günü ürün toplantısında konuşur.
Karar soruları: ekibin dil yetkinliği, platforma özgü API ihtiyacı, web ile kod paylaşımı, uyarlanabilir yerleşim desteği. TypeScript ağırlıklı ekip için Expo doğal yol, Android ağırlıklı ekip için KMP.
Crash raporu yetmez: ekran açılış süresi, ağ hata oranı, model yanıt süresi, SDUI şema hataları ölçülmeli. Kapatmak serbest; ama 2.5.19'dan beri incelemede olmayan özelliği sonradan açmak yasak.
Üç kolay tuzak; üçü de 'daha fazlası daha iyi' varsayımından geliyor.
Yeni nesil mimari, değişebilirliği baştan tasarlamak demek.