0Pricing
Kotlin Academy · Lección

Estructura de proyectos KMM

Código compartido y específico de plataforma

Estructura de proyectos KMM es una lección gratuita de Kotlin Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Kotlin Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Kotlin Academy incluye 4 lecciones en total.

¿Qué es KMM?

Kotlin Multiplatform Mobile (KMM) permite compartir código entre iOS y Android manteniendo interfaces de usuario nativas. Escriba la lógica de negocio una sola vez en Kotlin.

El módulo shared

Un proyecto de KMM gira en torno a un módulo shared. Se compila como una biblioteca JVM para Android y como un framework nativo para iOS.

  • Android lo consume como una dependencia habitual
  • iOS lo importa como un framework de Objective-C/Swift

Conjuntos de fuentes

El módulo shared se divide en conjuntos de fuentes:

  • commonMain — código compartido e independiente de la plataforma
  • androidMain — código específico de Android
  • iosMain — código específico de iOS

commonMain

commonMain solo puede usar la biblioteca estándar de Kotlin y bibliotecas multiplataforma. No debe hacer referencia directamente a las API de Android o iOS.

// shared/src/commonMain/kotlin/Greeting.kt
class Greeting {
    fun greet(): String = "Hello, KMM!"
}

Configurar destinos

El archivo build.gradle.kts compartido declara las plataformas que se deben compilar mediante el plugin multiplataforma.

kotlin {
    androidTarget()
    iosX64()
    iosArm64()
    iosSimulatorArm64()
}

El framework de iOS

Los destinos de iOS se agrupan en un único framework que Xcode importa.

kotlin {
    listOf(iosX64(), iosArm64(), iosSimulatorArm64()).forEach {
        it.binaries.framework {
            baseName = "Shared"
        }
    }
}

Dependencias comunes

Las bibliotecas multiplataforma (coroutines, serialization, Ktor) se incluyen en commonMain para que todos los destinos las compartan.

sourceSets {
    val commonMain by getting {
        dependencies {
            implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1")
        }
    }
}

Módulo de la aplicación Android

El módulo de la aplicación Android depende de shared como cualquier módulo de Gradle y crea la interfaz de usuario de Android con Jetpack Compose o Views.

// androidApp/build.gradle.kts
dependencies {
    implementation(project(":shared"))
}

Aplicación iOS

La aplicación iOS es un proyecto estándar de Xcode. Vincula el framework Shared generado y llama a las clases de Kotlin desde Swift.

// Swift
// import Shared
// let text = Greeting().greet()

Qué compartir

Código compartido habitual: redes, modelos de datos, repositorios, casos de uso y validación. Mantenga nativas la interfaz de usuario, la navegación y los sensores de la plataforma.

Un saludo autónomo

La lógica compartida es Kotlin puro. Esta es la misma clase ejecutándose de forma independiente para mostrar que es código normal.

class Greeting {
    fun greet(): String = "Hello, KMM!"
}

fun main() {
    println(Greeting().greet())
}

Comprobación rápida

¿Dónde coloca el código que debe estar libre de cualquier referencia a las API de Android o iOS?

Resumen

Aprendió la estructura de KMM:

  • Un módulo shared con commonMain, androidMain e iosMain
  • Los destinos se declaran en el plugin multiplataforma; iOS obtiene un framework
  • Android depende de él mediante project(":shared"); iOS importa el framework

Siguiente: expect y actual.

Preguntas frecuentes

¿La lección «Estructura de proyectos KMM» es gratis?

Sí — el texto completo de «Estructura de proyectos KMM» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Kotlin Academy, actualiza a CoddyKit PRO. El curso de Kotlin Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Estructura de proyectos KMM»?

Código compartido y específico de plataforma Practicas Kotlin Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Kotlin Academy?

No se requiere experiencia previa. Kotlin Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Estructura de proyectos KMM»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Kotlin Academy?

Sí. Cada lección de Kotlin Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Estructura de proyectos KMM
  2. expect y actual
  3. Compartir la lógica de negocio
  4. API de plataforma
← Volver a Kotlin Academy