Indagamos por distintos espacios para así traerte la respuesta a tu problema, si continúas con alguna inquietud puedes dejar la inquietud y responderemos porque estamos para servirte.
Solución:
Respuesta corta: los paquetes recopilan clases relacionadas y corresponden aproximadamente a directorios; mientras que los módulos son de un nivel mucho más alto y corresponden a proyectos y/o ejecuciones del compilador.
Respuesta más larga:
En Java y Kotlin, las clases se organizan en paquetes. Se configuran usando el package
directiva en la parte superior de cada archivo. (En Java, esto corresponde exactamente a la estructura de directorios en la que se almacenan; eso también es común en Kotlin, aunque no es estrictamente necesario).
Proporcionan una forma de agrupar clases relacionadas: puede hacer referencia a clases (y funciones y campos de nivel superior) en el mismo paquete directamente, mientras que todas las demás clases deben ser import
ed, o sus nombres completos (paquete.paquete…clase) usó. Y en las versiones más recientes de Java, puede ‘sellar’ un paquete, lo que significa que nadie más puede agregarle clases más adelante.
Los módulos, por otro lado, son nuevos para Kotlin. Son un concepto de mucho más alto nivel, reuniendo todas las clases en un programa o biblioteca. (Algunos IDE y herramientas lo llaman ‘proyecto’ o ‘conjunto de fuentes’). Todos los archivos de un módulo deben compilarse juntos y los resultados generalmente se recopilan en un archivo .jar (o .war).
Un gran sistema puede consistir en un puñado de módulos, pero cada uno de ellos puede contener muchas decenas de paquetes.
Más específicamente, un módulo es un conjunto de archivos Kotlin compilados juntos. y está encima de los paquetes. Los paquetes, por otro lado, son carpetas que agrupan clases relacionadas.
Si estás contento con lo expuesto, tienes la libertad de dejar un tutorial acerca de qué le añadirías a esta sección.