En el capítulo anterior de la serie de artículos, De Java a Kotlin, vimos una pequeña introducción al lenguaje Kotlin y cómo se diferenciaba un HelloWorld en Java de uno en Kotlin.

En este capítulo vamos a ver el IDE que utilizaremos a lo largo de toda la serie de artículos, así como la sintaxis básica del lenguaje.

 

IntelliJ Idea

El IDE IntelliJ Idea en su versión Community Edition es una herramienta perfecta para trabajar con el lenguaje Kotlin. Se puede descargar desde la página oficial de JetBrains.

Si alguna vez has trabajado con Android Studio verás que se trata del mismo IDE ya que Android Studio se basa en IntelliJ IDEA más el plugin de Android.

 

Crear un proyecto

Como se puede observar en la figura 1.1 que tenemos a continuación, al empezar un nuevo proyecto en IntelliJ IDEA nos aparece la siguiente ventana donde se nos permite elegir el tipo de proyecto que vamos a crear. Para esta serie de artículos vamos a crear un proyecto Kotlin basado en JVM. Para ello vamos a seleccionar la casilla que nos dice Kotlin(Java) dentro del apartado de Gradle. En las siguientes ventanas se nos preguntará el nombre del proyecto el cual hemos puesto HelloKotlin.

Create project IntelliJ

Figura 1.1

Una vez creado el proyecto nos aparece una estructura muy similar a la que aparece en un proyecto de Gradle y Java. Sólo que ademas de aparecer la carpeta Java dentro de src/main, también aparece una carpeta de nombre Kotlin. No es necesario poner el código de Kotlin en la carpeta con su nombre, se puede añadir código Kotlin dentro de la carpeta Java, aunque por claridad es preferible mantener cada código en su carpeta.

 

Crear una clase o archivo Kotlin

Al hacer clic con el botón derecho del ratón encima de la carpeta src/main/Kotlin, nos aparece un menú en el que debemos elegir la opción de “New” y en el siguiente submenú elegiremos “Kotlin File/Class”. Le daremos el nombre de HelloKotlin y elegimos el tipo a “Class” en la nueva ventana que nos aparece al crear el archivo.

 

Definir paquetes

A la hora de definir los paquetes, al igual que en Java colocaremos la palabra package delante del nombre del paquete en la parte superior de la clase Kotlin.

package test

class HelloKotlin {

}

No es necesario hacer coincidir los nombres de los paquetes con el directorio donde se encuentra el archivo. Aunque por claridad es costumbre colocar cada archivo en el paquete correspondiente a su directorio.

 

Definir funciones

Las funciones en Kotlin se declaran con la palagra reservada “fun” seguida del nombre de la función. Después entre paréntesis colocamos los atributos que necesita la función. Tras los atributos colocamos dos puntos “:” y el valor que retorna esa función. Para que veáis la diferencia entre Java y Kotlin. Las siguientes funciones son equivalentes:

Java:

public int sum(int a, int b){
    return a+b;
}

Kotlin:

fun sum(a: Int, b: Int): Int {
    return a + b
}

Como se puede observar en Kotlin el modificador por defecto es public por lo que no es necesario colocarlo antes de la palabra fun.

También notar la diferencia entre los atributos de la función en Java y la función en Kotlin. En Kotlin se declara el nombre de la variable primero seguido de dos puntos y el tipo de variable. En este caso es un Int (a diferencia de int con minúscula en Java).

La palabra return funciona igual en Java que en Kotlin.

Una última cosa a fijarse es la ausencia de “;” en el código Kotlin. Ya que son opcionales aunque preferiblemente los evitaremos por convención.

Las funciones en Kotlin si devuelven un valor y el código que contienen no supera una línea. Podemos igualar la declaración de la función al valor que devuelve, por ejemplo:

fun sum(a: Int, b: Int) = a + b

Al tratarse de una igualación, ya no colocamos la palabra return y podemos obviar el tipo que devuelve la función ya que se infiere del valor que devuelve la operación de a+b en este caso.

En caso de que una función no devuelva ningún valor. El código en Java y Kotlin sería:

Java

public void printSum(int a, int b){
    System.out.println("sum of "+a+" and "+b+" is "+(a+b));
}

Kotlin

fun printSum(a: Int, b: Int) {
    println("sum of $a and $b is ${a + b}")
}

Como podéis observar la palabra reservada void en Java que denota que la función no devuelve ningún tipo de valor, en Kotlin la palabra clave reservada equivalente sería Unit, aunque no es necesario ponerla cuando no se devuelve un valor.

 

Conclusión

Como podéis observar el código Kotlin parece menos cargado y más fácil de entender. Ademas de ofrecer más opciones a la hora de escribir código que Java.

Bueno por hoy es bastante Kotlin-Java. En el próximo artículo veremos como se declaran variables, comentarios y se utilizan condicionales.