Este artículo es una traducción de este otro original en inglés.

Nos alegra anunciar que hemos liberado la versión 1.2.20 de Kotlin, una nueva actualización con correcciones y mejoras en las herramientas para Kotlin 1.2. En esta actualización:

  • Añadimos soporte para la cache de construcción de Gradle (Gradle build cache)
  • Mejoramos la compilación incremental para Android y proyectos mezclados Kotlin/Java
  • Proporcionamos soporte en el IDE para la nueva guía de estilo de Kotlin
  • Ahora mostramos indicadores en el editor para parámetros implícitos y receptores de lambdas, así como valores devueltos desde lambdas
  • Soportamos modo de desarrollo en la tarea de gradle del DCE de JavaScript
  • Introducimos nuevas inspecciones, mejoras de rendimiento y correcciones en el plugin de IntelliJ

Esta actualización es compatible con todas las versiones de IntelliJ IDEA desde la 2017.1 hasta la 2017.3, así como con Android Studio 3.0 y 3.1 Canary.

La lista completa de cambios en esta versión se puede encontrar en el changelog.

Nos gustaría también agradecer a todos los contribuidores externos cuyas pull requests se han incluido en esta versión: Toshiaki Kameyama (con un número de contribuciones impresionantes – 46 commits!), Yoshinori Isogai, Kenji Tomita, Kirill Rakhman, Sergey Ryabov, Alexey Belkov, Michal Bendowski, AdamMc331, Andre Perkins, Andrey Mischenko, Artem Zinnatullin, Chris Povirk, Denis Vnukov, Dereck Bridie, Ilya Zorin, Jake Wharton, Joscha Alisch, Kartik Patodi, AJ Alt, Ramon Wirsch, Vladimir Kasatkin, Yusuke Hosonuma, a2kaido, scache.

Mejoras de rendimiento del compilador

Los tiempos de compilación siguen siendo una prioridad para nosotros, y en esta versión nos hemos centrado mayormente en el plugin de Gradle.

La primera mejora es el soporte de la caché de construcción de Gradle (Gradle build cache). Si estáis usando Gradle 4.3 o superior con la caché de construcción activada (no está activada por defecto y requiere o bien <code class="EnlighterJSRAW" data-enlighter-language="generic">--build-cache o <code class="EnlighterJSRAW" data-enlighter-language="generic">org.gradle.caching=true), el plugin reutilizará los resultados de compilación de ejecuciones previas. Por ejemplo: si estáis construyendo la rama master de vuestro código, os cambiáis de rama, construís de nuevo, y volvéis a master, el código no se recompilará – se reutilizarán los resultados previos de la compilación de master.

La caché de Kotlin para los procesadores de anotaciones están deshabilitados por defecto, porque las dependencias de los procesados de anotaciones no se pueden trazar de forma precisa por Gradale, así que puede utilizar de forma incorrecta los resultados de una ejecución previta de un procesador de anotaciones. Para habilitar el cacheado aún así, podéis añadir las siguientes líneas a vuestro build script:

kapt { useBuildCache = true }

La segunda mejora es un trazado de cambios más preciso para los archivos de Java, que permite evitar recompilaciones de Kotlin cuando los cambios en Java no afectan al código Kotlin. Esta característica es experimental; para habilitarla, añadid la siguiente línea a vuestro archivo gradle.properties:

kotlin.incremental.usePreciseJavaTracking=true

Finalmente, los cambios en los archivos XML de los layouts de Android ya no hace que se recompile el código Kotlin; solo se recompilan los archivos Kotlin que referencien las propiedades generadas por las extensiones Android de Kotlin (<code class="EnlighterJSRAW" data-enlighter-language="generic">kotlinx.android.synthetic.*).

La guía de estilo de Kotlin

Hace poco que hemos sacado una guía de estilo oficial para Kotlin, que cubre el formateado de código Kotlin y el uso ideomático del lenguaje y las librerías. Desde esta versión, el formateador soporta completamente la nueva guía de estilo. Y además, muchas de las violaciones de la guía de estilo se pueden detectar y corregir mediante quick fixes con las inspecciones de IntelliJ IDEA.

El formateo sugerido por la nueva guía de estilo es diferente en varios aspectos del formateo por defecto que se usaba anteriormente en Kotlin. Y para evitar cambios de formato no deseados, tenéis que aplicar la nueva guía de estilo de forma explícita. Para hacer eso, tenéis que ir a Settings -> Editor -> Code Style ->Kotlin y usar el enlace “Set from…” para elegir el estilo.

Modo de desarrollo para el DCE de JavaScript

El plugin de eliminación de código JavaScript (DCE) se utiliza para reducir el tamaño de la salida del compilador de Kotlin a JavaScript. El proceso de DCE lleva algo más de tiempo, y el tamaño de la salida no es tan relevante durante el desarrollo, así que ahora es posible deshabilitar la eliminación de código muerto (dead code elimination). Esto se hace usando la siguiente opción:

runDceKotlinJs.dceOptions.devMode = true

Cómo actualizar

Para actualizar el plugin, usad Tools -> Kotlin -> Configure Kotlin Plugin Updates y pulsad el botón “Check for updates now”. ¡Ah! Y no os olvidéis de actualizar las versiones del compilador y de la librería estándar en vuestros build scripts de Maven y Gradle.

Como de costumbre, si os encontráis con cualquier problema con esta nueva verisón, os invitamos a pedir ayuda en los foros, en Slack (invitación aquí), o reportar problemas en el gestor de incidencias.

¡A Kotlinear!

``