Compose Multiplatform para Kotlin: Guía completa
Bienvenido a la guía más detallada sobre Compose Multiplatform (CMP), la tecnología moderna de JetBrains que permite crear interfaces de usuario nativas para Android, iOS, Desktop (Windows, macOS, Linux) y Web, utilizando un único código en Kotlin. En este artículo lo cubriremos todo: desde la instalación hasta técnicas avanzadas y mejores prácticas.
1. ¿Qué es y para qué sirve?
Compose Multiplatform es un framework declarativo para construir interfaces de usuario, basado en Jetpack Compose de Google, pero ampliado para funcionar en múltiples plataformas. A diferencia de los enfoques tradicionales (como layouts XML separados para Android y SwiftUI para iOS), CMP permite escribir la lógica de UI una sola vez y compilarla en código nativo para cada plataforma objetivo.
¿Por qué es útil? En primer lugar, reduce drásticamente el tiempo de desarrollo: en lugar de mantener dos o más bases de código, trabajas con una sola. En segundo lugar, consistencia de UI: la lógica de negocio y la apariencia de la aplicación son idénticas en todas las plataformas, lo que simplifica las pruebas y el mantenimiento. En tercer lugar, acceso a APIs nativas: puedes usar código específico de la plataforma (como la cámara o la geolocalización) mediante el mecanismo expect/actual, sin salir del ecosistema Kotlin.
Compose Multiplatform es ideal para startups, equipos de producto y desarrolladores que quieren llegar a la mayor audiencia posible sin duplicar esfuerzos. La biblioteca es desarrollada activamente por JetBrains y la comunidad, y en 2025 es una de las soluciones más prometedoras en el mundo del desarrollo multiplataforma.
2. Instalación
Como Compose Multiplatform no es una biblioteca en el sentido tradicional (como un paquete pip), sino más bien un conjunto de plugins y configuraciones para Gradle, la instalación se realiza a través del sistema de compilación de Kotlin Multiplatform. Aquí tienes la secuencia exacta para crear un nuevo proyecto:
Paso 1: Crear un proyecto con IntelliJ IDEA (recomendado)
Abre IntelliJ IDEA (Community o Ultimate), selecciona File → New → Project. En el asistente, elige la plantilla Compose Multiplatform. Asigna un nombre al proyecto y haz clic en "Finish". El IDE generará automáticamente la estructura y todas las dependencias necesarias.
Paso 2: Configuración manual (para proyectos existentes)
Añade el siguiente código al archivo build.gradle.kts raíz:
plugins {
kotlin("multiplatform") version "2.0.21"
id("org.jetbrains.compose") version "1.7.1"
id("org.jetbrains.kotlin.plugin.compose") version "2.0.21"
}
kotlin {
androidTarget()
listOf(
iosX64(),
iosArm64(),
iosSimulatorArm64()
).forEach { iosTarget ->
iosTarget.binaries.framework {
baseName = "ComposeApp"
isStatic = true
}
}
sourceSets {
val commonMain by getting {
dependencies {
implementation(compose.runtime)
implementation(compose.foundation)
implementation(compose.material3)
implementation(compose.ui)
}
}
val androidMain by getting {
dependencies {
implementation("androidx.activity:activity-compose:1.9.3")
}
}
}
}
Importante: Las versiones de los plugins y de Kotlin deben ser compatibles. Las versiones actualizadas siempre están disponibles en el repositorio de GitHub de Compose Multiplatform.
3. Inicio rápido — ejemplo mínimo funcional
Después de crear el proyecto, abre el archivo commonMain/kotlin/App.kt y reemplaza su contenido con el siguiente código:
import androidx.compose.foundation.layout.*
import androidx.compose.material3.*
i