Está en la página 1de 44

Android 8.

X
¿Qué es Kotlin?

Kotlin es un nuevo lenguaje que utiliza la JVM.


Todo comenzó en Julio del 2011 cuando JetBrains comenzó el
proyecto de crear un lenguaje nuevo, que compilará tan rápido
como Java nativo.
En Febrero del 2012, Kotlin fue publicado como OpenSource bajo la
licencia de Apache 2.
Kotlin es 100% interoperable entre Java y Android.
Ventajas de Kotlin

• Rendimiento.
• Fácil de aprender e intuitivo.
• Integración gratuita con Android Studio.
• Interoperabilidad.
• Fácil de escribir e interpretar.
• Seguro contra Nulos.
¿Cómo funciona Kotlin?
Prerrequisitos de Kotlin

En el diagrama anterior usted pudo notar que para escribir código


de Kotlin necesita tener instalado IntelliJ IDEA o Android Studio
como IDE y Java JDK para ejecutar compilar y ejecutar el código.
IntelliJ IDEA

IntelliJ IDEA es un el ide de programación que utilizaremos para


aprender a programar y utilizar Kotlin antes de comenzar a trabajar
con el junto a Android.
IntelliJ IDEA

Para crear una nuevo proyecto, debe hacer clic en Create New
Project.
Instalando IntelliJ IDEA

A continuación, seleccione Kotlin, luego Kotlin/JVM y haga clic en


Next.
Instalando IntelliJ IDEA

Escriba el nombre del proyecto, además de seleccionar la ubicación


de su proyecto, luego haga clic en Finish.
Instalando IntelliJ IDEA

Para agregar un nuevo archivo, haga clic derecho en src, luego


mueva el mouse sobre New entonces seleccione Kotlin File/Class.
Instalando IntelliJ IDEA

Escriba el nombre del archivo que desea agregar, seleccione el tipo,


en este caso lo dejaremos en File, luego haga clic en OK.
Aprendiendo Kotlin

A continuación aprenderá los elementos y sintaxis básica para


trabajar en Kotlin. En la siguiente imagen puede ver el Método
main.
Aprendiendo Kotlin

Para ejecutar y compilar el código, haga clic en el botón Run


Cuando ejecute el código, tendrá el siguiente resultado:
Aprendiendo Kotlin

¿Cuál será el resultado del siguiente código?


Aprendiendo Kotlin

¡Correcto! El resultado es:


Aprendiendo Kotlin

-¿Dónde están los ;?


-¿Y mis tipos de datos?
-¿Qué es un val?
-Todas esas preguntas serán resueltas a medida que vayamos
aprendiendo sobre Kotlin.
-No olvide que Kotlin trabaja con la JVM de Java, así que es un
primo de Java, pero no es idéntico. La sintaxis es diferente,
pero la lógica de programación es la misma,
Variables en Kotlin

1-Variables mutables
Una variable mutable es una que su valor puede ser modificado en
cualquier momento. Para declarar una variable mutable deber escribir var
directamente antes de la variable.
Variables en Kotlin

2-Variables Inmutables
Una variable inmutable es una que su valor no puede ser modificado,
como una constante, no puede ser modificada luego de ser inicializada.
Para declarar una variable inmutable deber escribir val directamente antes
de la variable.
En la siguiente imagen puede ver la línea roja bajo la variable y, cuando
usted trata de cambiar el valor
Variables en Kotlin

Java Kotlin
Tipos de Datos en Kotlin

String
Los tipos String son utilizados para almacenar palabras o sentencias.

Si desea declarar el tipo de la variable como String explicitamente, debe


utilizar el siguiente código:
Tipos de Datos en Kotlin

Character
Los tipos Char son utilizados para almacenar un solo carácter, como
‘a’,’Z’,’&’,’9’. Char puede ser una letra, número o símbolo especial. Siempre
van entre comillas simples, mientras que String en comillas dobles.
Tipos de Datos en Kotlin

Boolean
Un tipo Boolean tiene 2 valores posibles, true/false (verdadero o falso).
Los Booleanos son usados en la sentencias de decisión.
Tipos de Datos en Kotlin

Numéricos
Kotlin proporciona los siguientes tipos integrados que representan
números:
Valor por
Tipo de Dato Descripción
defecto
El tipo de dato Byte es un entero de 8-bits. Su rango de valor es de
Byte 0
-128 a 127
El tipo de dato Short es un entero de 16-bits. Su rango de valor es
Short 0
de - 32768 a 32767

El tipo de dato Int es un entero de 32-bits. Su rango de valor es de


Int 0
-2,147,483,648 to +2,147,483,647

Long El tipo de dato Long es un entero de 64-bits. 0L


El tipo de dato Float un punto flotante de 32-bits de precision
Float 0.0f
simple
El tipo de dato Double un punto flotante de 64-bits de precision
Double 0.0d
doble
Tipos de Datos en Kotlin

Numéricos
El siguiente Ejemplo muestra como declarar variables de tipo numérico:

El siguiente ejemplo, tiene el mismo resultado:


Tipos de Datos en Kotlin

Numéricos con decimal


El siguiente Ejemplo muestra como declarar variables de tipo numérico
con valor decimal:

El siguiente ejemplo, tiene el mismo resultado:


Tipos de Datos en Kotlin

¿Cuál será el tipo de dato por defecto para el siguiente código?


A. Byte
B. Int
C. Double
Tipos de Datos en Kotlin

Este será considerado un Int por defecto


Nulos y No Nulos

Dentro de Kotlin existe el concepto de Null Safety, lo que permite al


código controlar que los elementos no puedan ser nulos, amenos que se
les permita de manera explicita.
Podemos observar que nuestra
variable de tipo String no permite
ser asignado el valor null, para
poder permitir el uso de nulos en
Kotlin, se debe utilizar el operador ?,
junto al tipo de dato
Nulos y No Nulos

Dentro del Null-Safety, existen funciones de Kotlin que no permiten ser


ejecutar en tipos de datos nulos, como por ejemplo la función lenght.

Nuestra variable b, al ser declarada


como un String? Puede permitir null,
de esta forma la función lenght no
puede ser ejecutada, para evitar un
posible NullPointerException.
Para solucionar este problema
existen 2 soluciones. Una llamada
segura o imponer un non-null
Nulos y No Nulos

Para realizar una llamada segura de nulls se debe utilizar el operador ?


Junto al nombre de la variable a utilizar.

La ventaja de utilizar una Safe Call, es que


si el valor de nuestra variable es null, al
momento de ejecutar la llamada de la
función esta será retornará null, en vez de
ejecutar un NullPointerException, cómo lo
haría en Java
Nulos y No Nulos

Para realizar una imposición de non-null se debe utilizar el operador !!


Junto al nombre de la variable a utilizar.
Al realizar un non-null asserted, este nos
permitirá compilar y ejecutar nuestro
código, pero quita la segurar de nulos, ya
que si el valor es null y es utilizado de
alguna forma esto lanzará
NullPointerException. El Operardor !!,
volvería a Kotlin idéntico a Java en el
manejo de nulos
Tipos de Datos en Kotlin

Tipos de conversión
Para convertir un tipo de dato a otro compatible, por ejemplo convertir un
Int a un Short, debe usar la funciones de conversión.

• toByte()
• toShort()
• toInt()
• toLong()
• toFloat()
• toDouble()
• toChar()
Entrada de información

readLine() es una función que permite ingresar valores de tipo String a


través de la consola de Kotlin. Por ejemplo:
Entrada de información

Al ejecutar el programa, el resultado sería similar a:


Operadores relacionales

En Kotlin existen los mismos operadores relacionales que en Java, así que
los recordaremos.

Operador Significado
== Igual a
!= No igual a (Distinto)
< Menor que
<= Menor o igual que
> Mayor que
>= Mayor o igual que
Sentencias if - else

La sentencias if – else, nos permiten tener sentencias de decisión, para


realizar una acción en caso de ser verdadero y otra en caso contrario. El flujo
if-else es igual que en Java, así que es un viejo conocido para nosotros.
Operadores lógicos

Los operadores lógicos nos permiten anidar más de una consulta lógica

Operador Significado
&& AND
|| OR
! NOT

AND OR
Valor1 Valor2 Resultado Valor1 Valor2 Resultado
Verdadero Verdadero Verdadero Verdadero Verdadero Verdadero
Verdadero Falso Falso Verdadero Falso Verdadero
Falso Verdadero Falso Falso Verdadero Verdadero
Falso Falso Falso Falso Falso Falso
Sentencia when

La sentencia when nos permite poder realizar flujos de control con varios
caminos posibles, es equivalente a muchos if anidados. La sentencia when es
similar a la sentencia switch de Java.
En caso de que nuestro
valor no se encuentre en
ninguna de las opciones
del when, se ejecutará el
código dentro de la opción
else.
Sentencia for

Al igual que en Java, Kotlin nos permite realizar distintos tipos de ciclos, para
poder ejecutar sentencias de código n cantidad de veces, dependiendo de
nuestras necesidades, como es el caso de for.

Podemos observar que la sentencia


for funciona igual que en Java, pero
tiene una sintaxis diferente, es más
similar a un foreach. En el ejemplo
nuestra variable local x tendrá el valor
de 1 y avanzara 1 en 1 hasta llegar a 5,
incluyendo el último valor.

En ese caso for( x in 0..100) println(x)


¿Cuál será el resultado?
Sentencia for

Entonces si for va desde 1 a 5 sería 1..5, pero ¿Si queremos ir en reversa?


Desde 5 a 1 ¿Cómo debemos hacerlo?

Como se puede observar en el


ejemplo en ese caso, la
estructura del for se modifica y
debe agregar la sintaxis
downTo, que le dirá al for ve
desde tu valor inicial hacia
abajo hasta el siguiente valor
asignado.
Sentencia for

¿Y si quiero avanzar de 2 en 2, o en algún otro numero no secuencial, ¿Cómo


debo hacerlo?

Como se puede observar en el


ejemplo en este caso, para
avanzar en otra secuencia que
no sea 1 en 1, se debe agregar
la sintaxis step y el valor que
sea avanzar, en este caso ir de
2 en 2 entre 0 y 10
Sentencia while

La sentencia while nos permite hacer ciclos basados en una consulta lógica y
no matemática como el for, es decir se repetirá mientras la condición a
evaluar sea verdadera. Este ciclo se realizara de 0 a n veces dependiendo de la
consulta.
Como se puede observar
en el ejemplo, while,
trabaja y tiene la misma
sintaxis que en java.
Sentencia do - while

La sentencia do - while nos permite hacer ciclos basados en una consulta


lógica y no matemática como el for, es decir se repetirá mientras la condición
a evaluar sea verdadera. Este ciclo se realizara de 1 a n veces, dependiendo de
consulta,
Como se puede observar
en el ejemplo, do - while,
trabaja y tiene la misma
sintaxis que en java.
ACTIVIDAD
Calculadora

Indicaciones de Actividad:
• Forma un grupo de trabajo de a lo más dos personas.

• Resuelve la Guía N° 1.3: “Calculadora”

• Consulta a tu docente en caso que sea necesario.

• De ti depende tu aprendizaje!
Material presencial