NADHARIA YA MODULE KATIKA KOTLIN
? 1. MAANA YA MODULE NI NINI?
Module ni kitengo kikubwa cha mantiki katika mfumo wa programu, kinachojitegemea kiasi na kinaweza kujengwa, kujaribiwa, na kutumika kwa kujitegemea au kushirikiana na modules nyingine.
Kwa lugha nyepesi:
-
Package ni kama "folder ya code"
-
Module ni kama project au sehemu ya project iliyojaa packages, classes, na resources.
? 2. MALENGO YA KUTUMIA MODULE
-
Kugawa mfumo mkubwa kuwa sehemu ndogo ndogo.
-
Kuwezesha reusability ya sehemu ya programu.
-
Kuongeza modularity: kila module iwe na jukumu maalum.
-
Kurahisisha testing: unaweza kujaribu module moja bila nyingine.
-
Kuboresha build times (hususan kwenye Android au Kotlin Multiplatform).
-
Kuwezesha team collaboration: kila developer aendelee na module yake.
? 3. VIPENGELE VYA MODULE
Kila module inaweza kuwa na:
-
src/– Chanzo cha code -
resources/– Faili za ziada kama icons, strings -
build.gradle(.kts)– Maelezo ya kujenga module hiyo -
dependencies– Inaweza kutegemea modules nyingine au libraries
? 4. TOFAUTI KATI YA PACKAGE, MODULE NA LIBRARY
| Kitu | Maelezo |
|---|---|
| Package | Kikundi cha files/functions ndani ya module |
| Module | Kitengo kinachojitegemea chenye packages nyingi |
| Library | Kawaida ni module iliyoandaliwa kwa matumizi ya nje |
? 5. AINA ZA MODULES
1. Application Module
-
Huu ndio module kuu wenye
main()auAndroidManifest.xml -
Unatumiwa kama "mzazi" kwa modules nyingine.
2. Library Module
-
Hawezi kujitekeleza peke yake.
-
Huwa na code ya kusaidia, kama helper classes/functions.
-
Tumia kwenye projects nyingi.
3. Test Module
-
Imejengwa kwa ajili ya kuandaa na kuendesha majaribio ya module nyingine.
4. Multiplatform Module
-
Huwa na sehemu ya common, android, na ios
-
Hufaa kwa Kotlin Multiplatform Mobile (KMM)
✍️ 6. MFANO WA STRUKTURA YA MODULE
MyProject/
├── app/ ← Application Module
│ └── src/
│ └── build.gradle.kts
│
├── data/ ← Library Module (data layer)
│ └── src/
│ └── build.gradle.kts
│
├── domain/ ← Library Module (business logic)
│ └── src/
│ └── build.gradle.kts
│
└── settings.gradle.kts ← Inajumuisha modules zote
?️ 7. JINSI YA KUUNDA MODULE (kwa mkono au kwa IDE)
A. Kwa kutumia Android Studio / IntelliJ:
-
Right-click kwenye root → New → Module
-
Chagua aina ya module (Java/Kotlin Library, Android Library, etc.)
-
Andika jina la module
-
Module mpya itaonekana kwenye tree yako
B. Kwa kutumia faili za gradle (manually):
1. Unda folder mpya:
mkdir myutils
cd myutils
mkdir -p src/main/kotlin/com/example/utils
2. Ongeza build.gradle.kts:
plugins {
kotlin("jvm") version "1.9.0"
}
dependencies {
implementation(kotlin("stdlib"))
}
3. Sasisha settings.gradle.kts ya project kuu:
include(":myutils")
4. Tumia kwenye module kuu:
dependencies {
implementation(project(":myutils"))
}
? 8. UHUSIANO KATI YA MODULES
Modules zinaweza:
-
Kutegeana (module A kutumia B)
-
Kujitegemea (kuwepo hata bila nyingine)
-
Kuunganishwa kama library katika module kuu
? 9. FAIDA ZA KUTUMIA MODULES
| Faida | Maelezo |
|---|---|
| Kupunguza mgongano wa code | Kila module ina domain yake |
| Reusability | Module moja inaweza kutumiwa kwenye project nyingi |
| Utendaji bora wa build | Build system hujenga module zilizoathirika tu |
| Testing ya sehemu ndogo | Unaweza kujaribu module pekee |
| Team collaboration | Timu inaweza kugawanyika kwenye modules tofauti |
? 10. USHAURI WA KIMATENDO
-
Tumia modules unapojenga apps kubwa.
-
Tumia
library modulekwa code inayoweza kutumika tena (reusable). -
Epuka module moja kuwa na majukumu mengi (single responsibility).
-
Panga modules kwa kutumia layered architecture (mfano:
ui,domain,data).
✅ HITIMISHO
| Kipengele | Ufafanuzi Mfupi |
|---|---|
| Module | Kitengo huru cha code kinachoweza kutumika tena |
| Hujumuisha | Packages, resources, build scripts |
| Aina | Application, Library, Test, Multiplatform |
| Faida | Reusability, maintainability, testing rahisi |
| Tofauti | Module ≠ package, ila module huwa na packages |