Sobes.tech
Middle

Android uygulama geliştirme bağlamında çok modüllülük nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Çok modüllü mimari, uygulamanın bağımsız ve mantıksal olarak ilişkili modüllere bölündüğü bir mimari yaklaşımdır. Her modül, bağımsız olarak derlenip test edilebilen kendi kod birimi (örneğin, kütüphane modülü veya uygulama modülü) temsil eder.

Çok modüllü yapının avantajları:

  • Derleme hızını artırma: Sadece bir modülde değişiklik yapıldığında, yalnızca bağımlı modüller yeniden derlenir, bu da proje derleme süresini önemli ölçüde azaltır.
  • Kod organizasyonunu iyileştirme: Kod, net tanımlanmış sorumluluk alanlarına bölündüğü için daha yönetilebilir ve anlaşılır hale gelir.
  • Yeniden kullanılabilirliği artırma: Ortak fonksiyonlar ve UI bileşenleri, ayrı modüllere çıkarılabilir ve uygulamanın farklı bölümlerinde veya diğer projelerde kullanılabilir.
  • Testleri kolaylaştırma: Modüller izole edilerek test edilebilir, bu da testlerin yazılmasını ve bakımını kolaylaştırır.
  • Özellik odaklı geliştirmeyi destekleme: Ayrı özellikler (ekranlar, fonksiyonlar) bağımsız modüller olarak geliştirilebilir.
  • Ölçeklenebilirliği artırma: Büyük ekipler, minimum çatışma ile farklı modüller üzerinde paralel çalışabilir.

Android'de modül türleri:

  • Uygulama modülü (Application module): Uygulamaya giriş noktasıdır, manifest ve temel bileşenleri içerir. Diğer modüllere bağlıdır.
  • Kütüphane modülü (Library module): Kod ve kaynaklar içerir, diğer modüller tarafından kullanılabilir (örneğin, UI bileşenleri, ortak iş mantığı, yardımcı araçlar).
  • Dinamik Özellik Modülü (Dynamic Feature module): Uygulamanın belirli bölümlerini talep üzerine yüklemeye olanak tanır. Kurulum dosyasının boyutunu azaltmak için kullanılır.

Modüllerle proje yapısına örnek:

my-android-app/
├── app/              // Uygulama modülü
│   └── src/
│       └── main/
│           └── ...
├── core/             // Temel kütüphane modülü (ortak araçlar)
│   └── src/
│       └── main/
│           └── ...
├── ui/               // UI kütüphane modülü (özelleştirilmiş UI bileşenleri)
│   └── src/
│       └── main/
│           └── ...
└── feature-login/    // Giriş özelliği modülü
    └── src/
        └── main/
            └── ...

settings.gradle.kts dosyasında dahil edilen modüller belirtilir:

// settings.gradle.kts
rootProject.name = "MyAndroidApp"
include(":app")
include(":core")
include(":ui")
include(":feature-login")

build.gradle.kts dosyasında bağımlılıklar belirtilir:

// app/build.gradle.kts
plugins {
    id("com.android.application")
    // ... diğer eklentiler
}

android {
    // ...
}

dependencies {
    implementation(project(":core"))
    implementation(project(":ui"))
    implementation(project(":feature-login"))
    // ... diğer bağımlılıklar
}
// feature-login/build.gradle.kts
plugins {
    id("com.android.library")
    // ... diğer eklentiler
}

android {
    // ...
}

dependencies {
    implementation(project(":core")) // core modülüne bağımlılık
    // ... diğer bağımlılıklar
}

Çok modüllü yapı, büyük ve orta ölçekli Android uygulamalarının geliştirilmesi için önerilen bir yaklaşımdır.