Sobes.tech
Junior

Kotlin'de paketler ve modüllerin nasıl yapılandırıldığını açıklayın.

sobes.tech yapay zeka

AI'dan gelen yanıt

Paketler, kodu düzenlemek, isim çatışmalarını önlemek ve okunabilirliği artırmak için kullanılır. Dosyanın başında package anahtar kelimesiyle tanımlanırlar.

Modüller, Kotlin kaynakları, derleme betikleri, kaynaklar ve proje ayarlarının bir kümesidir. Derleme, çalıştırma, test ve dağıtım için kullanılırlar. IntelliJ IDEA projelerinde, bir modül IDE modülüne karşılık gelir; Gradle'da ise kök proje veya alt proje olabilir.

Farklar:

  • Organizasyon seviyesi: Paketler kaynak kodu seviyesinde, modüller ise proje derleme seviyesindedir.
  • Amaç: Paketler, kodun mantıksal gruplaması için; modüller ise bağımlılıkları, derlemeyi ve dağıtımı yönetmek için.
  • Hiyerarşi: Paketler nokta ile (örneğin, com.example.util) hiyerarşi oluşturur, modüller ise hiyerarşi (Gradle'daki alt projeler) veya bağımsız olabilir.
  • Bağımlılıklar: Bağımlılıklar modüller arasında belirtilir, paketler arasında değil.

Paket örneği:

// Dosya: Util.kt
package com.example.util

fun formatName(firstName: String, lastName: String): String {
    return "$firstName $lastName"
}

Paketi kullanma:

package com.example.app

import com.example.util.formatName

fun main() {
    val fullName = formatName("John", "Doe")
    println(fullName)
}

Modüllerle proje yapısı örneği (Gradle):

myproject/
├── app/          // Uygulama modülü
│   ├── build.gradle.kts
│   └── src/
│       └── main/kotlin/com/example/app/Main.kt
└── util/         // Yardımcı modül
    ├── build.gradle.kts
    └── src/
        └── main/kotlin/com/example/util/Util.kt

app/build.gradle.kts dosyasında, util modülüne bağımlılık belirtilir:

// app/build.gradle.kts
plugins {
    kotlin("jvm")
}

dependencies {
    implementation(project(":util")) // util modülüne bağımlılık
}