Android Geliştirmede Silo Mimarisi ve Dinamik Navigasyon Rehberi

 

Kotlin Submenu

Android Geliştirmede Silo Mimarisi ve Dinamik Navigasyon Rehberi

Android Geliştirmede Profesyonel Mimari: Silo Yapısı ve Dinamik Navigasyon

Mobil uygulama geliştirme sürecinde projeler büyüdükçe kod karmaşası (Spaghetti Code) kaçınılmaz hale gelebilir. Profesyonel bir geliştirici için en kritik adım, uygulamanın "Ana Kimliğini" (Main Identity) sağlam bir hiyerarşi üzerine kurmaktır. Bu yazıda, modern Android uygulamalarında kullanılan Silo Mimarisini ve kod kalitesini artıran dinamik yönlendirme tekniklerini inceleyeceğiz.

1. Silo Yapısı Nedir?

Silo yapısı, birbiriyle ilişkili içeriklerin veya özelliklerin mantıksal gruplar altında toplanmasıdır. Örneğin, bir eğitim uygulamasında tüm gramer konularını tek bir listede sunmak yerine; "Zamanlar", "Fiiller" ve "Cümle Yapıları" gibi ana silolar oluşturmak hem UX (Kullanıcı Deneyimi) hem de ASO (Store Optimizasyonu) açısından büyük avantaj sağlar.

2. Dinamik Navigasyon ile Kod Tasarrufu

Her alt başlık için yeni bir Activity (Sayfa) oluşturmak, projenin yönetimini imkansız kılar. Bunun yerine, ana menüden gönderilen veriye göre şekillenen tek bir SubCategoryActivity kullanmak en profesyonel yaklaşımdır.

3. Örnek Kotlin Uygulaması

Aşağıdaki örnekte, ana menüden seçilen kategorinin alt sayfaya nasıl dinamik olarak aktarıldığını görebilirsiniz:

// 1. Ana Menüdeki Yönlendirme Mantığı private fun handleNavigation(categoryTitle: String) { val intent = Intent(this, SubCategoryActivity::class.java) // Veriyi 'putExtra' ile alt sayfaya taşıyoruz intent.putExtra("EXTRA_CATEGORY_NAME", categoryTitle) startActivity(intent) } // 2. Alt Sayfada (SubCategoryActivity) Veriyi Karşılama class SubCategoryActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_sub_category) val categoryName = intent.getStringExtra("EXTRA_CATEGORY_NAME") // Gelen kategoriye göre içeriği dinamik olarak yükle when (categoryName) { "Tenses" -> setupTensesMenu() "Verbs" -> setupVerbsMenu() else -> showGeneralContent() } } }
Teknik İpucu: Fonksiyonlarınızı onCreate dışında tanımlayarak sınıfın en altına eklemek, kodun okunabilirliğini ve bakımını (maintenance) kolaylaştırır.

Sonuç: Önce Altyapı, Sonra İçerik

Uygulamanın tasarımına veya içeriğine odaklanmadan önce bu modüler yapıyı kurmak, "Teknik Borçlanmayı" önler. Altyapısı sağlam bir uygulama, yeni özellikler eklenirken çökmez ve geliştiriciye esneklik sağlar.

Yorum Gönder

0 Yorumlar