Toast y SnackBar en Android

Toast

Toast.makeText(this,"Hello from the Toast",Toast.LENGTH_LONG).show() //Parametros: (Contexto,Texto,Duracion)

 

Snackbar

Añadir al Gradle:

implementation 'com.android.support:design:27.0.0'

**Versiones de  las Librerías de Soporte

 

val layout = findViewById<ConstraintLayout>(R.id.constraint)

Snackbar.make(layout,"Hello fron SnackBar!",Snackbar.LENGTH_LONG).show()//Igual que el Toast pero le pasas un View

 

Snackbar con Botón

  ==Action Button==> 

Snackbar.make(layout,"Hello fron SnackBar!",Snackbar.LENGTH_LONG).setAction("UNDO") { // Parametros de setAction(Texto, Action ó Callback))
     Snackbar.make(layout,"Email has been restored!!",Snackbar.LENGTH_LONG).show()
}.show()

 

Variables y Tipos en Kotlin

Tipos de Variables

Las «variables» pueden ser mutables e inmutables(constantes).

variables -> var

constantes -> val

Declaración de Variables

Los tipos son definidos después del nombre de la variable, con dos puntos y espacio( var nombre:tipo).

También se puede emitir el tipo en la declaración y Kotlin «inteligentemente»  (porque el compilador infiere de manera implícita el tipo usando interfaz tipo), asume el tipo introducido.

val firstName: String = "Ruben" // String porque se lo hemos especificado
val lastName = "Tejera" // String porque kotlin ve su contenido y lo da por hecho

Interfaz Tipo o Deducción del Tipo

Es un mecanismo empleado por el compilador para averiguar el tipo desde el contexto. Este mecanismo ayuda a reducir el código empleado.

val name = "Ruben"  // El compilador le infiere el tipo String
val age = 30 // El compilador le infiere el tipo Int

 

**Aun declarando una variable mutable, no se puede cambiar a otro tipo de valor más adelante, solamente a valores del mismo tipo.

var edad: Int = 30 //Declaracion de una variable
edad = "30"  //Aun siendo una variable no podremos asignarle un dato de distinto tipo
edad = 25  //Siendo del mismo tipo, podemos modificar el valor de la variable

 

Se recomienda el uso de variables inmutables (constantes)(val) siempre que sea posible.

Aclarar que no se puede hacer una declaración de múltiples variables en una misma linea como en Java. Hay que realizarlas en lineas diferentes:

val name = "Ruben", lastName = "Tejera"  // No funciona en Kotlin

//En Kotlin 
val name = "Ruben"
val lastName = "Tejera"

 

https://devexperto.com/variables-kotlin/

Tipos Básicos

  • Tipos númericos:
    • Int: Para enteros de hasta 32bits. –> val numeroDias: Int = 36526
    • Long: Para enteros de hasta 64bits. –> val numeroCochesMundo: Long = 384400000L
    • Short: Para enteros de hasta 16bits.. –> val diasAno: Byte = 3650
    • Byte: Para enteros de hasta 8bits. –> var edad: Byte = 30
    • Float: Para decimales de hasta 32bits. –> var peso: Float = 86.7F
    • Double: Para decimales de hasta 64bits. –> var temperatura: Double = 12.23
  • Char: Para almacenar caracteres de forma individual. –> var letraDNI: Char = ‘D’
  • Boolean: Para almacenar los valores lógicos true y false. –>val esUnaVariable: Boolean = true
  • String: Permite almacenar cadenas de caracteres.–> var nombre: String = «Ivan»
  • Arrays: Permite almacenar listas de objetos. –>val misColoresFavoritos = arrayOf(«naranja», «azul», «rojo», «negro»)

Números

Para convertir un numero de un tipo a otro hay que invocar de manera explicita la función de conversión correspondiente. No hay conversión implícita entre tipos de números.

var edad = 19
var edadDinosaurio: Long = edad //Error, No hay conversión de manera implícita
var edadDinosaurio: Long = edad.toLong()
val edad = "30".toInt()

Cadenas

Pueden ser creadas con comillas dobles o triples

var cadena1 = "Hola Mundo \n Adios Mundo!" //Java Style

var cadena2 = """
                Hola Mundo
                Adios Mundo
              """ //Kotlin Style

String Templates, Plantillas de cadena o Interpolacion de cadena

var points = 9;
var maxPoints = 10;

var cadena1 = "Hola tengo " + points + " puntos sobre " + maxPoints // Java Style
var cadena2 = "Hola tengo $points puntos sobre $maxPoints" // Kotlin Style
var cadena3 = "Hola tengo {$points * 10} puntos sobre {$maxPoints * 10}" // Kotlin Style

Como vemos se puede crear lógica dentro de las llaves

val age = 40
val anotherMessage = "You are ${if (age > 60) "old" else "young"}" // You are young

Arrays o Arreglos

Hay dos manera de crear un array, con la función arrayOf() o el constructor Array():

Funcion arrayOf()

Se crean usando arrayOf() :

val myArray = arrayOf(4, 5, 7, 3)

 

Se puede crear un array mixto:

val myArray = arrayOf(4, 5, 7, 3, "Chike", false)

 

Podemos decirle en la declaración del array que todos los valores van a ser de un tipo determinado:

val ejemploArrray = arrayOf<Int>(4, 5, 7, 3)
val ejemploArray2 = intArrayOf(4, 5, 7, 3)

 

Para crear un array vacío lo haremos mediante arrayOfNulls():

var arrayEjemplo = arrayOfNulls<Int>(10) //Solo acepta Int

 

Constructor Array()

El constructor de esta clase requiere un tamaño y una función lambda (una manera simple en línea de declarar una función anónima). En este caso, el trabajo de la función lambda es inicializar el arreglo con elementos.

val numbersArray = Array(5, { i -> i * 2 })  // {0,2,4,6,8}

En este ejemplo:

  • Primer argumento: Tamaño del arreglo.
  • Segundo argumento: Toma una función lambda, la cuál toma el índice del elemento del arreglo y después devuelve el valor para ser insertado en ese índice en el arreglo.

Hola Mundo con Android Studio y Kotlin

Vamos a crear el Hola Mundo con Android Studio y Kotlin. Seguiremos los siguientes pasos:

1.- Abrimos Android Studio y seleccionamos File->New-> New Project

2.- En la pantalla  que emerge, hacer los siguientes pasos:

  • Darle un nombre al proyecto
  • Darle un nombre de dominio
  • Lo más importante, si trabajamos con Kotlin, marcar la casilla Include Kotlin Support al final de la pantalla.

 

3.- En la siguiente pantalla seleccionaremos la versión mínima que soportara el proyecto.

Al seleccionar versiones más antiguas, tendremos el soporte a más dispositivos.

Por contra, entre más antiguo sea el soporte, más funcionalidades nuevas perderemos, ya que no serían soportadas por todas las versiones.

Si pulsamos en Help me choose, nos saldrán todas las versiones con las mejoras de cada una de ellas, y el porcentaje de móviles Android en el mundo que podremos abarcar dando soporte.

Por ejemplo en esta gráfica a dia de hoy, si implementáramos de versión mínima la 4.4 KitKat, daríamos soporte a el 90.1% de los móviles Android en el mundo.

 

4.- La siguiente ventana nos muestran plantillas por si quisiéramos arrancar el proyecto con alguna de ellas. Casi siempre empezaremos el proyecto con la EmptyActivity

 

5.- En esta ventana le daremos un nombre, por defecto dejamos el MainActivity.

* La casilla Backwards Compatibility(AppCompat) es para tener compatibilidad con versiones antiguas.

6.- Damos a Finalizar y se nos crea el proyecto

 

7.- Una vez finalizado, se nos crean dos archivos, uno con codigo kotlin y otro con la vista del Hola Mundo.

 

8.- Si le damos al Play nos abrirá el emulador de un móvil y lanzara la aplicación a él.

Pantalla Emulador Hola Mundo Android Studio

 

¿ Qué es Kotlin?

logo Kotlin

¿Qué es Kotlin?

Kotlin es un lenguaje de programación estrictamente tipado (obliga a definir el tipo de la variable) para aplicaciones multiplataformas modernas(JVM, Android, JAvascript, Native).

*Ventajas Tipado Estático:

Mayor velocidad de ejecución ya que solo valida solo en tiempo de compilación.

Nos ahorramos errores de tipado en tiempos de compilación, el IDE nos ayuda a completar el código y nos lanzaría los errores.

  • Lenguaje creado y desarrollado por JetBrains en 2010.
  • Es de código libre
  • Orientado a objetos con capacidades de programación funcional lo cual le hace tomar ambas ventajas
  • Cuando compilamos código para Android producimos byte code java, código en bytes, 100% compatible con Java y JVM.
  • Google, Amazon … lo usan.