✅ 1. Package ni nini?
Package ni njia ya kupangilia (organize) files/classes/functions katika kundi moja la mantiki ndani ya project.
-
Ni sehemu ya ndani ya code yako.
-
Inaonyesha wapi file fulani lipo, kama folder.
-
Haijitegemei peke yake – ni sehemu ya project nzima.
-
Haitolewi kama “file la kutumia” bali hutumika kwa ku-import ndani ya code nyingine.
? Mfano wa package:
package com.bongolite.utils
fun greet() = println("Hi!")
? 2. Library ni nini?
Library ni mkusanyiko wa code (mara nyingi tayari imeandikwa), ambao unaweza kutumiwa na projects tofauti. Inaweza kuwa na classes/functions nyingi, mara nyingi zimepakiwa kama
.jar,.aar, au.klib.
-
Ni kitu cha kutumia tena (reusable)
-
Inaweza kuwa na packages nyingi ndani yake
-
Unaiweka kwenye project yako kupitia dependency (kama Gradle)
-
Unaweza kutumia library hata kama hujaandika hata package moja ndani ya project yako
? Mfano wa library:
implementation("com.squareup.retrofit2:retrofit:2.9.0")
Kisha unaweza kutumia:
import retrofit2.Retrofit
? TOFAUTI KUU KATI YA PACKAGE NA LIBRARY
| Kipengele | Package | Library |
|---|---|---|
| Maana | Kikundi cha code ndani ya project | Mkusanyiko wa code reusable (nje ya project) |
| Wigo | Kawaida ndani ya project moja tu | Inasambazwa, hutumiwa na project nyingi |
| Muundo | Kama folder ya code | Kama .jar, .klib, .aar, nk. |
| Matumizi | Kuimport sehemu nyingine ya project | Kuinstall na kuimport kama dependency |
| Mifano | package com.example.utils |
com.google.code.gson:gson |
? KWA NINI VINAONEKANA KAMA SAWA?
Kwa sababu library huundwa kwa kutumia packages ndani yake. Kwa mfano:
Library: Gson
=> Package: com.google.gson
Kwa hiyo:
Kila library huwa ina packages, lakini si kila package ni library.
? MFANO HALISI KATIKA KOTLIN
Mfano wa kutumia package:
// File: src/utils/MathUtils.kt
package utils
fun square(x: Int): Int = x * x
Mfano wa kutumia library:
// build.gradle.kts
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1")
// Kisha kwenye code
import kotlinx.coroutines.*
? MUHTASARI
| Kauli | Ukweli |
|---|---|
| "Package ni sawa na library" | ❌ Hapana |
| "Library hujengwa kwa kutumia packages" | ✅ Ndiyo |
| "Unaweza kutumia package bila library" | ✅ Ndiyo |
| "Unaweza kutumia library bila kuandika package mwenyewe" | ✅ Ndiyo |