Migrar a Kotlin 2.0 un proyecto Android o Multiplatform [Paso a Paso]
![Migrar a Kotlin 2.0 un proyecto Android o Multiplatform [Paso a Paso]](/src/assets/blog/217.png)
Para migrar un proyecto Android a Kotlin 2.0, necesitamos hacer las siguientes modificaciones:
1. Actualizar la versión de Kotlin en el catálogo de versiones
En libs.versions.toml
, cambiar la versión de Kotlin:
[versions]
kotlin = "2.0.0"
2. Añadir la carpeta .kotlin
a .gitignore
Ahora hay una nueva carpeta donde se añaden ficheros necesarios para el funcionamiento del compilador K2. Se llama .kotlin
. y se crea en el nivel raíz del proyecto.
Para que esos ficheros no se suban al repositorio, hay que añadirlo al .gitignore
:
/.kotlin
2. Configurar el nuevo compilador de Compose
Desde la versión 2.0 de Kotlin, el compilador de Jetpack Compose está incluido como un plugin más del propio Kotlin.
De esta forma, no tenemos que preocuparnos por mantener la versión del compilador alineada con la de Kotlin.
A cambio, tenemos que añadir explícitamente el uso de este plugin.
En libs.versions.toml
:
[plugins]
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
En el build.gradle
del proyecto:
plugins {
...
alias(libs.plugins.compose.compiler) apply false
}
Y en el build.gradle
de cada módulo que lo necesite:
plugins {
...
alias(libs.plugins.compose.compiler)
}
Esto implica eliminar el bloque de composeOptions
:
composeOptions {
kotlinCompilerExtensionVersion = "1.5.11"
}
El nuevo compilador además tiene un DSL de configuración más sencillo. De esta forma, no es necesario añadir argumentos de compilación como hacíamos antes para temas como el strongSkippingMode
, o los informes de los que hablábamos en [[Domina las recomposiciones en Jetpack Compose]]:
composeCompiler {
enableStrongSkippingMode = true
}
3. Actualizar el plugin de KSP
Si lo estás usando en tu proyecto, necesitas actualizar para la nueva versión de Kotlin:
[versions]
ksp = "2.0.0-1.0.21"
[plugins]
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
Cómo conseguir la localización amplia en Android
Cómo pedir permisos en Jetpack Compose