Kotlin multiplataforma (KMP) permite compartir el código Kotlin en en diferentes plataformas. Antes de que comiences a compilar apps con KMP, deberás hacer lo siguiente: configuren su entorno como se describe en este documento. También puedes consultar Documentación oficial de Jetbrain
Instala o actualiza las herramientas necesarias
- Instala la versión estable más reciente de Android Studio o actualízala.
- Actualiza el complemento de Kotlin que se incluye con Android Studio. a la versión más reciente para evitar problemas de compatibilidad.
- (Opcional) En el caso del desarrollo de iOS, instala Xcode para compilar la IU y agrega código de Swift o Objective-C según sea necesario.
Cómo crear un proyecto multiplataforma de Kotlin
Puedes usar el asistente multiplataforma de Kotlin de Jetbrains para realizar las siguientes tareas: crear un nuevo proyecto KMP. Asegúrate de elegir el botón No compartir IU para mantener la IU nativa.
Estructura del proyecto
Los proyectos de KMP siguen una estructura de proyecto similar a los proyectos de Android.
Un proyecto KMP contiene módulos específicos de la plataforma junto con un módulo compartido. Agrega el código específico de la plataforma al módulo correspondiente. Por ejemplo, agrega IU de la app para Android en el módulo androidApp y la IU de la app para iOS en iosApp. Cualquier código que desees compartir entre plataformas va en el módulo shared.
El módulo compartido usa Gradle como sistema de compilación, al igual que el resto de los en un proyecto final. Puedes declarar dependencias comunes y específicas de la plataforma con conjuntos de origen. Por ejemplo, si tu app usa Ktor para las redes, debes agregar una dependencia de OkHttp para Android y una dependencia de darwin para iOS. Ten en cuenta que algunos las bibliotecas solo requieren dependencias comunes y no necesitan dependencias dependencias.
sourceSets {
commonMain.dependencies {
//put your multiplatform dependencies here
//...
implementation(libs.ktor.client.core)
implementation(libs.ktor.client.content.negotiation)
implementation(libs.ktor.serialization.kotlinx.json)
//...
}
androidMain.dependencies {
implementation(libs.ktor.client.okhttp)
}
iosMain.dependencies {
implementation(libs.ktor.client.darwin)
}
}
Cuando agregues una nueva biblioteca al módulo compartido de tu app, asegúrate de comprobar las dependencias necesarias para cada plataforma.