Cómo comenzar a usar Kotlin en Android

Gracias a la compatibilidad de Kotlin con Android Studio 3.0 y versiones posteriores, es fácil crear proyectos nuevos con archivos de este lenguaje, agregar archivos Kotlin a un proyecto existente y convertir el código Java en Kotlin. También puedes usar todas las herramientas existentes de Android Studio con el código Kotlin, como el autocompletado, la verificación de lint, la reestructuración y la depuración, entre otras.

¿Quieres comenzar? Echa un vistazo a las muestras de Kotlin. Para obtener más información sobre este lenguaje, consulta los Recursos sobre Kotlin.

Cómo agregar Kotlin a una app existente

Para adquirir habilidades y confianza a la hora de usar Kotlin, te recomendamos adoptar un enfoque gradual:

  1. Comienza por escribir pruebas en Kotlin, ya que son útiles para verificar la regresión del código y generan un nivel de confianza a la hora de reestructurarlo. Las pruebas son muy útiles para convertir código Java existente en Kotlin. Dado que no se incluyen en la app durante el empaquetado, son una forma segura de agregar Kotlin al código base.
  2. Escribe código nuevo en Kotlin. Antes de convertir código Java existente en Kotlin, agrega pequeñas partes de nuevo código Kotlin en tu app. Comienza con una función de ayuda pequeña o de nivel superior. Asegúrate de agregar anotaciones pertinentes al código Kotlin para garantizar una interoperabilidad adecuada con el de Java.
  3. Actualiza el código existente a Kotlin. Una vez que te sientas cómodo para escribir uno nuevo, convierte el código Java en Kotlin. Extrae pequeñas partes de la funcionalidad de Java y conviértelas en clases de Kotlin y funciones de nivel superior.

    Comienza por usar el convertidor de códigos de Android Studio, que convierte el código de un archivo Java en Kotlin. También puedes convertir el código Java pegado desde el portapapeles en un archivo Kotlin.

Ejemplos de Kotlin y API de Android

Kotlin brinda interoperabilidad completa con el lenguaje Java, así que realizar llamadas a las API de Android suele verse como el código de Java correspondiente, salvo que ahora puedes combinar esas llamadas de método con las funciones de sintaxis de Kotlin.

Además, estamos trabajando para que toda la documentación de la API de Android esté disponible con referencias idiomáticas de Kotlin. Puedes encontrar los vínculos a los recursos disponibles en la descripción general de referencia de Android.

A continuación, se muestran algunos ejemplos de cómo se ven las llamadas a la API de Android en Kotlin, en comparación con el mismo código en lenguaje Java:

Al declarar una actividad

Kotlin

    class MyActivity : AppCompatActivity() {
      override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity)
      }
    }
    

Java

    public class MyActivity extends AppCompatActivity {
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity);
      }
    }
    

Al crear un objeto de escucha con un clic

Kotlin

    val fab = findViewById(R.id.fab) as FloatingActionButton
    fab.setOnClickListener {
      ...
    }
    

Java

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View view) {
        ...
      }
    });
    

Al crear un objeto de escucha para hacer clic en un elemento

Kotlin

    private val onNavigationItemSelectedListener
        = BottomNavigationView.OnNavigationItemSelectedListener { item ->
      when (item.itemId) {
        R.id.navigation_home -> {
          textMessage.setText(R.string.title_home)
          return@OnNavigationItemSelectedListener true
        }
        R.id.navigation_dashboard -> {
          textMessage.setText(R.string.title_dashboard)
          return@OnNavigationItemSelectedListener true
        }
     }
     false
    }
    

Java

    private BottomNavigationView.OnNavigationItemSelectedListener onNavigationItemSelectedListener
        = new BottomNavigationView.OnNavigationItemSelectedListener() {
      @Override
      public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()) {
          case R.id.navigation_home:
            textMessage.setText(R.string.title_home);
            return true;
          case R.id.navigation_dashboard:
            textMessage.setText(R.string.title_dashboard);
            return true;
        }
        return false;
      }
    };
    

Recomendaciones

A medida que te familiarices con Kotlin, intenta seguir estos lineamientos:

  • Prioriza la legibilidad antes que minimizar las líneas del código. Es fácil extenderse al escribir la sintaxis de Kotlin.
  • Es una buena idea establecer convenciones y modismos de codificación que funcionen mejor para tu equipo. Las guías de estilo de Kotlin y Android Kotlin ofrecen sugerencias sobre cómo formatear el código Kotlin.