Junior
Explica cómo están estructurados los paquetes y módulos en Kotlin.
sobes.tech AI
Respuesta de la IA
Los paquetes se utilizan para organizar el código, prevenir conflictos de nombres y mejorar la legibilidad. Se declaran con la palabra clave package al inicio del archivo.
Los módulos son conjuntos de fuentes Kotlin, scripts de compilación, recursos y configuraciones del proyecto. Se utilizan para compilar, ejecutar, probar y desplegar. En los proyectos de IntelliJ IDEA, un módulo corresponde a un módulo de IDE; en Gradle, a un proyecto raíz o subproyecto.
Diferencias:
- Nivel de organización: Los paquetes están a nivel de código fuente, los módulos a nivel de compilación del proyecto.
- Propósito: Los paquetes para agrupación lógica de código, los módulos para gestionar dependencias, compilación y despliegue.
- Jerarquía: Los paquetes forman una jerarquía mediante puntos (por ejemplo,
com.example.util), los módulos pueden tener jerarquía (subproyectos en Gradle) o ser independientes. - Dependencias: Las dependencias se indican entre módulos, no entre paquetes.
Ejemplo de paquete:
// Archivo: Util.kt
package com.example.util
fun formatName(firstName: String, lastName: String): String {
return "$firstName $lastName"
}
Uso del paquete:
package com.example.app
import com.example.util.formatName
fun main() {
val fullName = formatName("John", "Doe")
println(fullName)
}
Ejemplo de estructura de proyecto con módulos (Gradle):
myproject/
├── app/ // Módulo de aplicación
│ ├── build.gradle.kts
│ └── src/
│ └── main/kotlin/com/example/app/Main.kt
└── util/ // Módulo de utilidades
├── build.gradle.kts
└── src/
└── main/kotlin/com/example/util/Util.kt
En app/build.gradle.kts se indicará la dependencia del módulo util:
// app/build.gradle.kts
plugins {
kotlin("jvm")
}
dependencies {
implementation(project(":util")) // Dependencia del módulo util
}