1. Code
  2. Coding Fundamentals
  3. Tools

Como usar Kotlin en tus Proyectos Android

Kotlin, el lenguaje de programación de código abierto diseñado por JetBrains, se está popularizando cada vez más entre los desarrolladores de Java. Con frecuencia es llamado el sucesor de Java. Comparado con Java, ofrece una experiencia de desarrollo más rica, porque es más moderna, expresiva y concisa.
Scroll to top

Spanish (Español) translation by Javier Salesi (you can also view the original English article)

Kotlin, el lenguaje de programación de código abierto diseñado por JetBrains, se está popularizando cada vez más entre los desarrolladores de Java. Con frecuencia es llamado el sucesor de Java. Comparado con Java, ofrece una experiencia de desarrollo más rica, porque es más moderna, expresiva y concisa.

Si estás buscando un lenguaje de programación alternativo para desarrollo en Android, deberías probar Kotlin. Puede fácilmente ser usado en lugar de o junto con Java en tus proyectos Android.

En éste tutorial, te mostraré cómo usar Kotlin y los plugins de Kotlin en tus proyectos de Android Studio.

Requisitos Previos

Para seguirme, necesitas tener:

  • la versión más reciente de Android Studio
  • un básico entendimiento de la sintaxis de Kotlin

Si no estás familiarizado con el lenguaje de programación Kotlin, entonces te recomiendo leer la sección de Iniciando de la guía de Kotlin para agilizar el conocimiento del lenguaje.

1. Instalando Plugins de Kotlin

En el menú de inicio rápido de Android Studio, selecciona Configure > Plugins.

Configure PluginsConfigure PluginsConfigure Plugins

En la próxima pantalla, da click en Install JetBrains plugin... en la parte inferior.

Install JetBrains pluginInstall JetBrains pluginInstall JetBrains plugin

Selecciona Kotlin Extensions For Android de la lista y da click en Install Plugin a la derecha.

Install Kotlin Extensions For AndroidInstall Kotlin Extensions For AndroidInstall Kotlin Extensions For Android

Debido a que el plugin depende del plugin de Kotlin, se te preguntará si instalar ambos. Da click en Yes para comenzar la instalación.

Plugin Dependencies DetectedPlugin Dependencies DetectedPlugin Dependencies Detected

Cuando la instalación se complete, reinicia Android Studio para activar los plugins.

2. Crear una Activity (Actividad) en Kotlin

En Android Studio, da click derecho en el nombre de tu paquete y selecciona New > Kotlin File.

New Kotlin FileNew Kotlin FileNew Kotlin File

En el cuadro de diálogo que aparece, ingresa el nombre de la nueva Activity y selecciona Class de la lista desplegable. He nombrado a mi clase Main Activity.

New Kotlin file dialogNew Kotlin file dialogNew Kotlin file dialog

Una vez que la clase ha sido creada, verás una alerta pidiéndote configurar el módulo de tu aplicación para soportar Kotlin.

Configure Kotlin alertConfigure Kotlin alertConfigure Kotlin alert

Da click en el enlace de la alerta y, en el cuadro de diálogo que aparece, da click en OK para elegir los valores predeterminados.

Configure Kotlin dialogConfigure Kotlin dialogConfigure Kotlin dialog

Para configurar que tu proyecto soporte Kotlin, el plugin de Kotlin hace varios cambios en el archivo build.gradle. Aplica éstos cambios al dar click en el botón Sync Now como se muestra abajo.

Sync Now pop upSync Now pop upSync Now pop up

En éste punto, la configuración de tu proyecto está completa. Regresa a la clase Kotlin que creaste hace un momento para comenzar a codificar en Kotlin.

3. Usar Kotlin

Para mantener sencillo el ejemplo, te mostraré cómo crear una Activity con un simple TextView que muestra un String.

Asegúrate que tu clase sea una subclase de Activity y sobreescribe su método onCreate. Claro, tienes que hacer eso en Kotlin. Si eres nuevo en Kotlin, te sugiero usar la funcionalidad de generación de código de Android Studio al presionar Control+O para obtener  las firmas del método.

Override Members dialogOverride Members dialogOverride Members dialog

Tu clase se debería ver así:

1
package com.hathy.kotlinsample
2
3
import android.app.Activity
4
import android.os.Bundle
5
6
public class MainActivity: Activity() {
7
    override fun onCreate(savedInstanceState: Bundle?) {
8
        super.onCreate(savedInstanceState)
9
    }
10
}

Crea una instancia de TextView como una variable local de asignación única al usar la palabra reservada val.

1
val myMessage = TextView(this)

Llama a su método setText para establecer el String que quieres mostrar y luego llama a setContentView para mostrar la vista del texto.

1
myMessage.setText("Hello")
2
setContentView(myMessage)

Como lo harías para una Activity en Java, necesitas declarar tu Activity Kotlin en el AndroidManifest.xml de tu aplicación para que sea reconocido por el sistema Android. Si ésta es la única Activity en tu proyecto, tu archivo manifiesto debería verse así:

1
<activity android:name=".MainActivity">
2
    <intent-filter>
3
        <action android:name="android.intent.action.MAIN"/>
4
        <category android:name="android.intent.category.LAUNCHER"/>
5
    </intent-filter>
6
</activity>

Ahora puedes compilar y ejecutar tu aplicación en tu dispositivo Android o emulador. Mientras el compilador de Kotlin es ligeramente más lento que el de Java, es improbable que veas algún cambio significativo en el tiempo de compilación de tu proyecto.

4. Usar Extensiones Android en Kotlin

El plugin Kotlin Android Extensions te permite tratar los widgets que defines en el layout XML de una Activity como si fueran las propiedades de esa Activity. En otras palabras, si usas éste plugin, nunca tendrás que llamar a findViewById. Éstas propiedades son adecuadamente llamadas synthetic properties.

Para usar ésta característica en tu aplicación, necesitas agregar org.jetbrains.kotlin:kotlin-android-extensions como una dependencia del script de compilación  en el build.gradle del módulo de tu aplicación como se muestra abajo. No olvides dar click en el botón Sync Now para sincronizar tu proyecto.

1
buildscript {
2
    dependencies {
3
        classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
4
    }
5
}

Ahora vamos a crear una Activity similar a la que creamos en el paso anterior, pero usa un layout XML para definir el TextView. Crea un nuevo archivo layout XML llamado another_activity.xml. En el archivo XML, define un TextView con un id de myMessage.

1
<?xml version="1.0" encoding="utf-8"?>
2
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3
    android:orientation="vertical" android:layout_width="match_parent"
4
    android:layout_height="match_parent">
5
6
    <TextView
7
        android:layout_width="wrap_content"
8
        android:layout_height="wrap_content"
9
        android:textAppearance="?android:attr/textAppearanceLarge"
10
        android:text="Large Text"
11
        android:id="@+id/myMessage" />
12
</LinearLayout>

Crea otra clase Kotlin, AnotherActivity, que extiende de Activity y sobreescribe su método onCreate. Así es como se debería ver la implementación:

1
package com.hathy.kotlinsample
2
3
import android.app.Activity
4
import android.os.Bundle
5
6
public class AnotherActivity: Activity() {
7
8
    override fun onCreate(savedInstanceState: Bundle?) {
9
        super.onCreate(savedInstanceState)
10
    }
11
}

Llama a setContentView en el método onCreate para usar el layout XML que acabas de crear como el layout de ésta Activity.

1
setContentView(R.layout.another_activity)

Ahora, en lugar de llamar a findViewById para obtener una referencia al TextView, puedes importarlo usando el siguiente fragmento de código:

1
import kotlinx.android.synthetic.another_activity.myMessage

Si tuvieras más widgets en tu layout, puedes importarlos todos usando el siguiente fragmento de código:

1
import kotlinx.android.synthetic.another_activity.*

Ahora puedes accesar a tu TextView usando su id como si fuera una propiedad de la clase Activity. Por ejemplo, para cambiar el texto del TextView, puedes escribir:

1
myMessage.setText("Hello")

5. Convertir clases Java a Kotlin

Puedes usar el plugin de Kotlin para convertir clases Java existentes a clases Kotlin. Para probar ésta característica, crea una nueva clase Java con la siguiente implementación. Es una Activity sencilla que registra la suma de los dos enteros.

1
public class YetAnotherActivity extends Activity {
2
3
    private int a,b;
4
5
    @Override
6
    protected void onCreate(Bundle savedInstanceState) {
7
        super.onCreate(savedInstanceState);
8
        a=10;
9
        b=20;
10
        Log.d("MESSAGE", "The sum is "+(a+b));
11
    }
12
}

Convierte la clase Java a clase Kotlin al presionar Control+Alt+Mayúsculas+J, o, del menú, seleccionando Code > Convert Java File to Kotlin File.

Convert Java file to Kotlin fileConvert Java file to Kotlin fileConvert Java file to Kotlin file

Después de la conversión, tu clase se verá así:

1
public class YetAnotherActivity : Activity() {
2
3
    private var a: Int = 0
4
    private var b: Int = 0
5
6
    override fun onCreate(savedInstanceState: Bundle?) {
7
        super.onCreate(savedInstanceState)
8
        a = 10
9
        b = 20
10
        Log.d("MESSAGE", "The sum is " + (a + b))
11
    }
12
}

Tambén notarás que la extensión del archivo ha cambiado de .java a .kt.

Conclusión

En éste tutorial, has aprendido cómo usar Kotlin en tus proyectos Android después de instalar el plugin de Kotlin y el plugin de Kotlin Android Extensions para Android Studio. Como las clases Kotlin y Java son largamente interoperables, si aún estás aprendiendo Kotlin, es mejor introducirlo en tus proyectos Android gradualmente.

Para aprender más sobre Kotlin, recomiendo leer la guía de Kotlin. La sección de Iniciando te ayudará a agilizar tu conocimiento en éste nuevo lenguaje.

¡Sé el primero en conocer las nuevas traducciones–sigue @tutsplus_es en Twitter!