Sobes.tech
Junior

Vysvetlite, ako sú v Kotlinu usporiadané balíčky a moduly.

sobes.tech AI

Odpoveď od AI

Balíčky sa používajú na organizáciu kódu, na zabránenie konfliktom mien a na zlepšenie čitateľnosti. Deklarujú sa kľúčovým slovom package na začiatku súboru.

Moduly sú súbory Kotlin, skripty na zostavenie, zdroje a nastavenia projektu. Používajú sa na kompiláciu, spustenie, testovanie a nasadenie. V projektoch IntelliJ IDEA zodpovedá modul IDE modulu; v Gradle — koreňovému alebo podprojektu.

Rozdiely:

  • Úroveň organizácie: Balíčky na úrovni zdrojového kódu, moduly na úrovni zostavenia projektu.
  • Účel: Balíčky na logické skupinovanie kódu, moduly na správu závislostí, kompiláciu a nasadenie.
  • Hierarchia: Balíčky tvoria hierarchiu pomocou bodiek (napríklad com.example.util), moduly môžu mať hierarchiu (podprojekty v Gradle) alebo byť nezávislé.
  • Závislosti: Závislosti sa uvádzajú medzi modulmi, nie medzi balíčkami.

Príklad balíčka:

// Súbor: Util.kt
package com.example.util

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

Použitie balíčka:

package com.example.app

import com.example.util.formatName

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

Príklad štruktúry projektu s modulmi (Gradle):

myproject/
├── app/          // Modul aplikácie
│   ├── build.gradle.kts
│   └── src/
│       └── main/kotlin/com/example/app/Main.kt
└── util/         // Utility modul
    ├── build.gradle.kts
    └── src/
        └── main/kotlin/com/example/util/Util.kt

V súbore app/build.gradle.kts bude uvedená závislosť od modulu util:

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

dependencies {
    implementation(project(":util")) // Závislosť od modulu util
}