MAANA YA PACKAGE
Package ni njia ya kupanga na kupanga upya (organize) code yako kwa mpangilio mzuri na wa kihierarkia. Kwa lugha rahisi, package ni "folda ya kiakili" inayoonyesha kuwa faili au code fulani ni sehemu ya kundi au moduli fulani.
? Mfano wa kawaida:
package com.bongolite.utils
Hii inaonyesha kwamba code iliyopo katika faili hilo iko kwenye kundi (package) linaloitwa com.bongolite.utils.
AINA ZA PACKAGE KATIKA KOTLIN
Katika Kotlin, packages huweza kugawanywa katika makundi yafuatayo:
✅ A. Standard Library Packages (Zilizojengwa na Kotlin)
Hizi ni packages ambazo tayari zimo ndani ya Kotlin. Hautakiwi kuziunda; zinapatikana moja kwa moja.
? Orodha ya Packages maarufu:
| Package | Maelezo |
|---|---|
kotlin.math |
Kazi za hisabati kama sqrt(), PI, abs() |
kotlin.collections |
Orodha, ramani na seti – List, Map, Set |
kotlin.io |
Kazi za I/O kama readLine() na println() |
kotlin.text |
Kazi za maandishi kama substring() |
kotlin.random |
Kutengeneza namba za bahati |
? Mfano:
import kotlin.math.sqrt
fun main() {
println(sqrt(16.0)) // Output: 4.0
}
?️ B. Custom / User-Defined Packages
Hizi ni packages unazoziunda mwenyewe ndani ya project yako ili kupanga code yako vizuri.
? Orodha ya Mfano:
| Package | Kazi |
|---|---|
com.bongolite.utils |
Kazi ndogo ndogo kama formatting |
com.bongolite.database |
Kuhusu hifadhidata |
com.bongolite.auth |
Login & usalama |
tz.bongo.math |
Hisabati za ki-Tanzania ? |
org.school.results |
Matokeo ya wanafunzi |
? Mfano:
package com.bongolite.utils
fun greet(name: String) {
println("Hello, $name!")
}
? C. Third-Party Packages (Libraries za Nje)
Hizi ni kutoka kwa developers wengine, hupatikana kupitia Gradle au Maven.
? Orodha ya Packages maarufu:
| Package | Library / Kazi |
|---|---|
com.google.gson.Gson |
JSON parsing (Gson) |
org.jetbrains.exposed |
ORM kwa database |
com.squareup.retrofit2 |
HTTP API client |
io.ktor.client.* |
HTTP client ya Kotlin |
org.koin.core.* |
Dependency injection |
? Mfano:
import com.google.gson.Gson
data class User(val name: String, val age: Int)
fun main() {
val gson = Gson()
val json = gson.toJson(User("Asha", 23))
println(json) // {"name":"Asha","age":23}
}
? D. Android SDK Packages (kwa Kotlin Android)
Zinapatikana unapofanya Android development kwa Kotlin.
? Orodha ya Packages maarufu:
| Package | Maelezo |
|---|---|
android.os.Bundle |
Kuweka/kupokea data katika activities |
android.view.View |
Kudhibiti UI components |
android.widget.Button |
Button ya Android |
androidx.appcompat.app |
Compatibility support |
androidx.lifecycle.* |
MVVM architecture |
? Mfano:
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
println("App started")
}
}
JINSI YA KUANDIKA PACKAGE (na Mifano Mitano)
Katika Kotlin, package huandikwa mstari wa kwanza kabisa wa faili ya .kt. Muundo ni:
package your.package.name
⚠️ Kanuni Muhimu:
-
Iandikwe kabla ya
importyoyote. -
Haitumii
;mwisho. -
Inapendekezwa kufuata reverse domain name convention (mfano:
com.google.project).
? Mifano Mitano:
-
package com.bongolite.utils -
package tz.maktaba.reader -
package org.school.math.geometry -
package io.bongo.quizgame.ui -
package com.myapp.helpers
KAZI NA FAIDA ZA PACKAGE
✅ A. Kupanga Code Vizuri (Organization)
Package huwezesha kutenganisha vipengele vya mfumo. Mfano, code ya login na code ya kuchora charts hazipaswi kuwa sehemu moja.
✅ B. Kuepuka Migongano ya Majina (Name Conflicts)
Unaweza kuwa na function start() kwenye packages mbili tofauti bila tatizo.
✅ C. Kurahisisha Usimamizi (Maintainability)
Unapojua kuwa kazi zote za database ziko kwenye package database, unayajua wapi pa kuangalia wakati wa kufanya mabadiliko.
✅ D. Kuongeza Usalama (Encapsulation)
Unaweza kuweka visibility modifiers kama internal au private ili kudhibiti ni sehemu gani za code zinazoonekana nje ya package.
✅ E. Reusability ya Code
Code iliyopangwa vizuri kwenye packages inaweza kutumiwa tena (reused) kwenye miradi mingine bila kuchanganya kila kitu.
✅ HITIMISHO
| Kigezo | Maelezo |
|---|---|
Maana ya package |
Njia ya kupanga code kama folders |
| Aina kuu | Standard, Custom, Third-party, Android SDK |
| Uandishi | package com.example.utils (line ya kwanza) |
| Faida | Organization, usability, security, maintainability |
| Mifano | Imetolewa zaidi ya mitano |