NOTA: Este artículo es una traducción manual de este otro artículo.

Nos complace anunciar que acabamos de liberar Kotlin 1.0.5, que continúa la serie con correcciones de errores y actualizaciones de las herramientas para Kotlin 1.0.

Nos gustaría agradecer a nuestros contribuyentes externos cuyas Pull Requests han sido integradas en esta versión: Kirill Rakhman, Vladislav Golub, Vsevolod Tolstopyatov, Yoshinori Isogai, takahirom y gitreelike . ¡Y gracias también a todos los que habéis probado las versiones EAP y nos habéis proporcionado feedback!

La lista completa de cambios de esta versión se puede encontrar en el changelog. Y algunos de los cambios que vale la pena destacar son:

Conversión de bucle a lambda

El plugin de IntelliJ IDEA ahora es capaz de detectar muchos casos donde se pueden reescribir bucles for en una forma más compacta e idiomática usando la librería estándar de funciones como filter y map. Como un ejemplo sencillo, considerad el siguiente fragmento:

val result = arrayListOf<String>()
for (s in list) {
    if (s.isNotEmpty()) {
        result.add(s)
    }
}

Que ahora se puede convertir automáticament a:

val result = list.filter { it.isNotEmpty() }

Para producir la conversión, colocad el cursor en la palabra clave reservada for y pulsad Alt-Enter.

Completado de código Postfix

Kotlin ya soporta el completado de código postfix de IntelliJ IDEA, con un conjunto bastante amplio de plantillas. Notad que dicha característica depende de algunos cambios de plataforma que se han hecho en IntelliJ IDEA 2016.2 y por lo tanto no están disponibles en Android Studio 2.2; se soportarán en versiones nuevas de Android Studio basadas en versiones posteriores de la plataforma de IntelliJ.

Nuevas refactorizaciones

El plugin de Kotlin ahora soporta las refactorizaciones “Extraer interfaz” y “Extaer Superclass”, que anteriormente solo se soportaban en Java y otros lenguajes. También incluimos una nueva refactorización completamente nueva llamada “Introducir Parámetros Tipados”, proporcionando una forma fácil de cambiar una clase o función en una versión genérica.

Mejoras en el soporte del IDE de Android

Kotlin 1.0.5 actualiza las comprobaciones Lint para estar a la par con las comprobaciones Java de Android Studio 2.2, corrigiendo un montón problemas en el proceso. También añade una característica largamente esperada: la intención “Extraer recurso de cadena”, permitiendo mover un literal de cadena hardcodeado de código Kotlin a un archivo de recursos de cadena.

Mejoras del soporte de JavaScript

Kotlin 1.0.5 añade dos características mayores al backend de JavaScript:

  • La anotación @JsName que permite controlar los nombres de las funciones y propiedades generadas en JavaScript, haciendo mucho más fácil llamar a código compilado de Kotlin desde JavaScript.
  • Ya se soportan los literales de clase Foo::class. El valor de una expresión ::class no implementa la API completa de KClass; únicamente define una propiedad simpleName para acceder al nombre de la clase.

Cómo actualizar

Para actualizar el plugin, usad Tools, Kotlin, Configure Kotlin Plugin Updates y pulsad el botón “Check for updates now”. También, no olvidéis actualizar las versiones del compilador y la biblioteca estándar en vuestros build scripts de Maven y Gradle.

Como de costumbre, si os encontráis con cualquier problema con esta nueva versión, sois bienvenidos a pedir ayuda en los foros, en Slack (obtened una invitación aquí), o reportad problemas en el issue tracker.

¡A Kotlinear!