Yazılım Notları

Mobil Mühendislik

Büyüyen Android Uygulamalarında Kod Tabanı Evrimi: Mimari Yapılanma, Compose Pratikleri ve Kalite Metrikleri

Büyüyen Android Uygulamalarında Kod Tabanı Evrimi: Mimari Yapılanma, Compose Pratikleri ve Kalite Metrikleri

Büyüyen bir Android kod tabanı, mimari kuralları otomatik denetlenen modüllerle, ölçülen Compose performansıyla ve Play eşiklerine bağlı kalite metrikleriyle sağlıklı kalır; Agent'lar kod yazdıkça bu kuralların CI'da yaşaması zorunlu hâle geliyor.

Kabul görüyor

Büyüyen Android kod tabanı, kurallar wiki'de değil CI'da yaşadığında sağlıklı kalır: denetlenen modül sınırları, ölçülen Compose performansı, Play eşiklerine bağlı kalite.

Google'ın mimari önerileri ve Now in Android bu yapıyı tarif ediyor; Agent çağında mimarinin guardrail'den güçlü olduğu fikri ise yeni yükseliyor.

Zihinsel model

Mimari yolun kendisidir, talimat dosyası tabeladır: tabelayı okumayan da yoldan çıkamıyorsa kural kalıcıdır.

Neden

  • Feature bazlı api/impl modülleri değişikliği tek modüle hapseder; derleme süresini ve istenmeyen erişimi birlikte keser.
  • Wiki'deki kural ilk yoğun sprintte delinir; Agent'lar çalışan ama katman sınırını ihlal eden kodu daha hızlı üretir.
  • Play çökme, ANR ve wake lock eşiklerini mağaza görünürlüğüne bağladığı için kalite görüş değil ölçülebilir hedef olur.

Kanıt

Instagram Direct'te Compose-first mimariye geçen ekranlarda UI kodu yüzde 50 küçüldü.

Android Developers Blog, 2026

Kullanıcının fark ettiği çökme oranı yüzde 1,09 eşiğini aşan uygulamaların mağaza görünürlüğü etkilenebiliyor.

Android Developers, Android vitals, 2026

Google'ın mimari önerileri, Composable ve ViewModel'in veri kaynağıyla doğrudan konuşmamasını ve ViewModel'e Context verilmemesini istiyor.

Android Developers, 2026

Karşı görüş

Küçük ekipte erken modülerleştirme ve mimari testler kazandırdığından fazla bakım yükü getirir; feature modüllerine derleme süresi ya da ekip çakışması gerçek soruna dönüşünce geçilmeli.

Kavramlar

Unidirectional Data FlowDurum ViewModel'den UI'a, olaylar UI'dan ViewModel'e akar; tek doğruluk kaynağı.
RecompositionGirdisi değişen Composable'ın yeniden çalıştırılması; gereksizi performansı yer.
Strong SkippingKararsız parametreli Composable'ları referans eşitliğiyle atlayabilen varsayılan compiler modu.
Convention PluginModüllerin ortak Gradle ayarını build-logic altında tek yerde toplayan eklenti.
Baseline ProfileKritik kod yollarını kurulumda önceden derleyip başlangıcı hızlandıran profil.

Pratikte

  • Katman ve modül bağımlılık kurallarını Konsist ya da lint ile CI'da test olarak yaz.
  • Modülleri teknik katmana göre değil feature'a göre böl, ortak Gradle ayarını convention plugin'e taşı.
  • Soğuk açılış ve kaydırmayı Macrobenchmark ile CI'da ölç, bütçeyi aşan PR'ı otomatik işaretle.
Önce bunu okuHow Instagram Direct engineers built AI-native UI architecture with Jetpack ComposeDoğru yolu kolay kılan mimarinin guardrail'den neden kalıcı olduğunu gösteriyor.