Está en la página 1de 5

Interoperabilidad Java y Kotlin

Interoperabilidad Java y Kotlin 1


¿Qué aprenderás? 2
Introducción 2
Interoperabilidad Java y Kotlin 3
¿Qué es la interoperabilidad? 3

¡Comencemos!

_ 1

www.desafiolatam.com
¿Qué aprenderás?

● Usar la Interoperabilidad entre Java y Kotlin

Introducción
Kotlin siempre fue pensado como un lenguaje cien por ciento compatible con Java y esto
permite que sean interoperables, de manera que podremos trabajar con ambos lenguajes a
la vez, algo que nos permitirá ir migrando lentamente nuestro código. Literalmente podemos
ir migrando clase a clase y evitar tener que generar una gran migración de código
obligadamente al cambiarnos de Java a Kotlin.

Otra ventaja de esto es: si nos imaginamos un proyecto real, el cual ya tenemos escrito en
Java y comenzamos a migrar a kotlin, pero tenemos ciertas bibliotecas que son antiguas
pero no podemos prescindir de ellas, no tendríamos problema, ya que aunque nuestro
código esté usando Kotlin, podría comunicarse sin problemas con cualquier library aunque
este hecha en Java.

Ahora veremos bien, como es el tema de la interoperabilidad y como nos puede simplificar
la vida en nuestro desarrollo en Android.

¡Vamos con todo!

_ 2

www.desafiolatam.com
Interoperabilidad Java y Kotlin

¿Qué es la interoperabilidad?

El Instituto de Ingenieros Eléctricos y Electrónicos (IEEE) define la interoperabilidad como la


habilidad de dos o más sistemas o componentes para intercambiar información y utilizar la
información intercambiada.

El concepto de interoperabilidad entre Kotlin y Java aplica a que en el mismo proyecto se


puede escribir código en ambos lenguajes y utilizar bibliotecas (libraries) en forma
independiente.

A continuación crearemos una app en Kotlin con un layout, para que podamos ver nuestro
resultado en ejecución y utilizaremos un método de una clase Java para ver un ejemplo
práctico del funcionamiento.

Luego de crear un nuevo proyecto usando el template de actividad en blanco, verificamos el


layout creado que contiene un TextView.

<?xml version="1.0" encoding="utf-8"?>


<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="cl.desafiolatam.MainActivity">

<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>

_ 3

www.desafiolatam.com
El MainActivity que utilizará el layout se ve de la siguiente forma:

class MainActivity : AppCompatActivity() {



override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}

Ya tenemos la clase Calculadora implementada previamente en Java que tiene el método


suma(int a, int b) como parte de su definición.

public class Calculadora {

public int suma(int a, int b) {


return a + b;
}
}

Ahora para ejemplificar la interoperabilidad de Kotlin y Java, llamaremos a esta clase desde
nuestra actividad y modificaremos el valor desplegado por el TextView.

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {


super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

// Se obtiene la vista del TextView


val textview = findViewById<TextView>(R.id.textview)

// La variable calculadora tiene una instancia de Calculadora


var calculadora = Calculadora()

// Se modifica el texto del TextView


textview.text = "Tu resultado es: " + calculadora.suma(1, 1)
}
}

_ 4

www.desafiolatam.com
La clase Calculadora escrita en Java es utilizable desde el código Kotlin de la actividad de
forma transparente para el programador. Usando var calculadora = Calculadora() se
crea una nueva instancia y se asigna a la calculadora para poder ser utilizada.

Al ejecutar la app, la actividad actualiza el valor desplegado en el TextView, interactuando


código en Java y Kotlin sin complicaciones.

Imagen 1. Resultado al correr el proyecto.


Fuente: Desafío Latam.

¿Por qué se usa textview.text y no textview.setText()?

Esto lo veremos en el próximo capítulo sobre "Ventajas de usar Kotlin"

Para finalizar con la interoperabilidad, dejamos una referencia que Google ofrece como Guía
de interoperabilidad de Kotlin-Java con un conjunto de reglas a aplicar para hacer más fluido
el trabajo entre ambos lenguajes.

_ 5

www.desafiolatam.com

También podría gustarte