Bit - loader

Kotlin para Android; beneficios y primeros pasos


Netmind - Kotlin para Android; beneficios y primeros pasos    Artículo | Android Programming
Ricardo Ahumada | 08/11/18

Desde que Google hiciera oficial Kotlin como lenguaje de programación de Android en el Google IO 2017 el lenguaje ha ido evolucionando y afianzándose en el desarrollo de aplicaciones.

Esto implica la posibilidad de trabajar con un lenguaje de programación más moderno y robusto, lo que permitirá olvidar paulatinamente las limitaciones del uso obligatorio de Java 6 en Android; pudiendo interoperar con Java y las librerías actuales sin problema. Y sin el miedo de perder el soporte en Android.

De hecho Kotlin se ha vuelto el lenguaje oficial de desarrollo para Android de algunas grandes marcas de referencia.

 

Kotlin para Android; beneficios y primeros pasos 0

 

Origen de Kotlin

Kotlin se empezó a desarrollar hace 7 años por compañía checa Jetbrains, responsable de IntelliJ (el mejor IDE para Java, en mi opinión) y base de Android Studio.

La idea inicial era sustituir Java en los proyectos dentro de la compañía. Era fundamental basarse en la JVM para poder ser totalmente interoperable con Java y su ecosistema.

 

Los principios de Kotlin son:

  • Sencillo y pragmático: Debería ser un lenguaje potente y fácil de usar. La curva de aprendizaje es bastante más ligera que otros lenguajes como Scala, por ejemplo. Lo que apoya su adopción.
  • Interoperable al 100% con Java: Cualquier código escrito en Java se puede usar directamente desde Kotlin.
  • Ligero: Para que Android pudiera adoptarlo, el lenguaje debía ser ligero para poder ser ejecutado en cualquier dispositivo sin sobrepasar el peso específico de las APKs en Android.

 

Kotlin actualmente está en la versión 1.3, en esta versión permite ser independiente si queremos de la JVM. Pudiendo desarrollar JS a través de Kotlin JS o, incluso hacer aplicaciones para iOS con Kotlin/Native. Lo que implica que Kotlin es un lenguaje que puede ir mucho más a allá de Android.

 

Porqué usar Kotlin para Android

Estas son algunas de las razones por las que deberíamos comenzar a usar Kotlin para desarrollar aplicaciones Android:

  1. Kotlin es un lenguaje maduro, que ha pasado por varios años de alfas y betas hasta su lanzamiento final.
  2. Kotlin es simplicidad mezclada con poder, que facilita el desarrollo de aplicaciones.
  3. Se integra perfectamente con Android Studio.
  4. Su evolución está bien cubierta por Jetbrains y Google.
  5. Si eres un desarrollador de Android, necesitas reciclarte. Seamos realistas: trabajar con Java 6 nos hace programadores obsoletos. Además te vuelves mucho más versátil.
  6. Es mucho más seguro que Java: Las características de Kotlin se traducen en más trabajo realizado en menos tiempo y menos tiempo dedicado a corregir errores.
  7. Menos errores: si hay menos código, es más difícil que ese código falle y, por lo tanto, se vuelva más estable.
  8. Cuando el compilador le ayuda a detectar esos errores en el momento de la compilación, nunca ocurren en tiempo de ejecución (obvio pero verdadero).
  9. El código es más fácil de entender cuando alguien más lo lee y, nuevamente, es más difícil introducir errores.
  10. Es más claro lo que hace el código.
  11. Hay empresas conocidas que ya lo utilizan en producción
  12. Las empresas empiezan a solicitarlo en sus ofertas de trabajo
  13. Kotlin es multiplataforma: Android, servidor, frontend, scripts de Gradle e incluso aplicaciones nativas.
  14. Es muy fácil de aprender

 

A finales de 2015 se consiguió publicar la primera beta de la versión 1.0, aunque ya se estaba trabajando en algunos proyectos, esto certificaba que la cosa iba en serio y se podría usar en un futuro cercano en proyecto en producción. La versión definitiva llegó hace apenas un año.

 

Kotlin para Android; beneficios y primeros pasos 1

 

Qué implica Kotlin para Android

Tanto Google como Jetbrains han dejado bastante claro los beneficios de Kotlin en el ecosistema Android desde el principio, máxime al usar un lenguaje moderno y tener interoperabilidad.

 

Entre las principales aclaraciones se encuentra el impacto que tendrá en el desarrollo diario de Android y sus herramientas. Android Studio 3.0 soporta completamente Kotlin, sin necesidad de instalar ningún plugin de Kotlin adicional.

 

Se puede crear un proyecto íntegramente en Kotlin, convertir código Java en Kotlin, debuggear Kotlin y cualquier otra cosa que se venía haciendo con Java. Además de lo recientemente anunciado de revisar el performance de las apps desde el propio IDE.

 

Como ya hemos mencionado, Kotlin es totalmente interoperable y podemos llamar a cualquier API de Android como si fuera Java. Incluso si trabajamos con C++ podemos usar JNI con Kotlin del mismo modo.

 

Las preocupaciones a nivel de rendimiento de las aplicaciones en Kotlin también es recurrente. Kotlin no tienen ningún impacto sobre el rendimiento, y se comporta tal cual como lo hace Java.

 

No hay problema en las versiones mínimas de Android que podrán soportar esta mejora con Kotlin, ya que es compatible con JDK 6, como ya decíamos antes, y podrá ejecutarse en versiones antiguas de Android sin problema.

 

Por tanto, tanto Google como Jetbrains nos están haciendo muy fácil incorporar Kotlin a nuestros proyectos.

 

Kotlin para Android; beneficios y primeros pasos 2

 

Primeros pasos con Kotlin en Android

Tanto Kotlin en su sitio web, como el Google tienen excelente documentación sobre cómo usar Kotlin en Android.
Es muy recomendable el curso gratuito creado por Google en Udacity “Kotlin Bootcamp for Programmers”.

 

Sintaxis básica

La referencia oficial del lenguaje está en la web KotlinLang.

La sintáxis de Kotlin es muy similar a Java o Javascript, pero mucho menos verbosa

Por ejemplo, el siguiente programa permite identificar si un número es par o impar.

 

 

import java.util.*




fun main(args: Array<String>) {




val reader = Scanner(System.`in`)




print("Enter a number: ")

val num = reader.nextInt()




if (num % 2 == 0)

println("$num is even")

else

println("$num is odd")

}


 

Kotlin permite expresiones Lambda y Higher-Order Functions (HOF); ambas herramientas muy potentes para generar código con cierto estilo funcional.

Una función HOF es una función que devuelve otra función:

 

 

fun <T, R> Collection<T>.fold(

initial: R,

combine: (acc: R, nextElement: T) -> R

): R {

var accumulator: R = initial

for (element: T in this) {

accumulator = combine(accumulator, element)

}

return accumulator

}

 

Una expresión lambda es una función anónima que se ejecuta según la circunstancia definida (un callback).

 

 

val items = listOf(1, 2, 3, 4, 5)




// Lambdas are code blocks enclosed in curly braces.

items.fold(0, {

// When a lambda has parameters, they go first, followed by '->'

acc: Int, i: Int ->

print("acc = $acc, i = $i, ")

val result = acc + i

println("result = $result")

// The last expression in a lambda is considered the return value:

result

})




// Parameter types in a lambda are optional if they can be inferred:

val joinedToString = items.fold("Elements:", { acc, i -> acc + " " + i })




// Function references can also be used for higher-order function calls:

val product = items.fold(1, Int::times)


 

Asimismo, como no puede ser de otra manera, Kotlin soporta clases y objetos; con toda la riqueza ya conocida de java.

 

 

public abstract class Car {

private String name;

Car(String name){

this.name = name;

}

}

public class Ford extends Car{

private String model;

private String color;




Ford(String model, String color){

super("Ford");

this.model = model;

this.color = color;

}

}




Ford focus = new Ford("Focus", "blue")




Ford focus = new Ford("Focus", "blue")

focus.getName()    //java way




val focus = Ford("Focus", "Blue")

focus.name         //kotlin way

 

 

Comenzar a introducir 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.

 

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

 

  •  Comienza por escribir pruebas en Kotlin para verificar la regresión del código y generar 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 las pruebas en la app durante el empaquetado, son un lugar seguro para agregar Kotlin al código base.

 

  • 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.

 

  • Actualiza el código existente a 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.

 

Kotlin para Android; beneficios y primeros pasos 3

 

Ejemplos de Kotlin y API de Android

Como Kotlin brinda interoperabilidad completa con el lenguaje Java. Se pueden ahora ahora puedes combinar esas llamadas a la API de Android con las funciones de sintaxis de Kotlin.

A continuación, se muestran alg

 

unos 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:

 

Declarar una actividad

Java:

public class MyActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity);

}

}

 

Kotlin:

class MyActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity)

}

}

 

Crear un listener de un clic

Java:

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);

fab.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {
...
}

});

 

Kotlin:

val fab = findViewById(R.id.fab) as FloatingActionButton

fab.setOnClickListener {

...
}

 

Crear un listener al hacer clic en un elemento

 Java:

private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener

= new BottomNavigationView.OnNavigationItemSelectedListener() {

@Override

public boolean onNavigationItemSelected(@NonNull MenuItem item) {

switch (it
em.getItemId()) {

case R.id.navigation_home:

mTextMessage.setText(R.string.title_home);

return true;

case R.id.navigation_dashboard:

mTextMessage.setText(R.string.title_dashboard);

return true;
}

return false;

}

};

 

 

Kotlin:

private val mOnNavigationItemSelectedListener

= BottomNavigationView.OnNavigationItemSelectedListener { item ->
when (item.itemId) {

R.id.navigation_home -> {

mTextMessage.setText(R.string.title_home)

return@OnNavigationItemSelectedListener true

}

 

R.id.navigation_dashboard -> {

mTextMessage.setText(R.string.title_dashboard)

return@OnNavigationItemSelectedListener true

}

}
false

}

 

Reflexiones finales

Kotlin para Android; beneficios y primeros pasos 4Tal como hemos en este artículo, Kotlin es una gran alternativa para desarrollar aplicaciones Android.
Es un lenguaje más moderno, con una sintáxis menos verbosa y más clara. Además tiene un conjunto de beneficios asociados a su us

o, sobre todo el relacionado con menos código, claridad y menor propención a errores.
Como hemos visto, está plenamiente soportado por Google y el IDE Android Studio, lo cual nos da una garantía sobre su futuro.
Tal como nos indican sus creadores, no tiene impacto en el performance de las aplicaciones y puede mejorar su legibilidad.
Kotlin es un lenguaje que ya ha sido adoptado por empresas de referencia para implementar aplicaciones android y esto nos da garantías de que es fiable y una buena apuesta de futuro.

 


Ricardo Ahumada


Cursos relacionados
Nuestro sitio utiliza cookies para análisis. Si no estás seguro de ello, echa un vistazo a nuestra política de privacidad.