ScrollView en Android

El ScrollView es para que en nuestra activity podamos hacer scroll de arriba abajo en la pagina.

En la activity tendremos que poner el componente ScrollView como  contenedor (root element) y este a su vez contendrá el ConstrainLayout o cualquier otro layout.

El ConstrainLayout por si solo no tiene scroll.

Si lo intentamos arrastrar directamente en la paleta visual, no nos deja ponerlo como root element en la primera posicion.

 

La solucion es insertarlo como hijo, y luego en la parte de diseño Text, lo pasamos a la primera posicion.

Como ahora el root será el ScrollView, tendremos que pasarle esas 4 propiedadesque tiene el ContraintLayout:

  • xmlns:android
  • xmlns:app
  • xmlns:tools
  • tools:context

 

Y se nos quedaría algo así:

Toast y SnackBar en Android

Toast

 

Snackbar

Añadir al Gradle:

**Versiones de  las Librerías de Soporte

 

 

Snackbar con Botón

  ==Action Button==> 

 

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.

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.

 

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

 

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:

 

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.

Cadenas

Pueden ser creadas con comillas dobles o triples

String Templates, Plantillas de cadena o Interpolacion de cadena

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

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() :

 

Se puede crear un array mixto:

 

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

 

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

 

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.

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.

Ligatures, mejorar la legibilidad Android Studio

El IDE Android Studio nos proporciona una funcionalidad para mejorar la legibilidad de expresiones en el código lllamandolo ligatures.

Por ejemplo, aquí vemos la transformación visual que nos hace de las expresiones:

font ligatures

Las podemos activar en nuestro Android Studio desde: File-> Settings-> Editor->Font ->Activamos la casilla Enable Font Ligatures

activar font ligaures Android Studio

 

Gradle en Android

¿Qué es el Gradle en Android?

El Gradle en Android es una herramienta que nos permite automatizar la construcción de nuestros proyectos, donde tendremos las dependencias, las versiones con las que vamos a usar kotlin, las versiones con las que queremos interactuar con el SDK… que nos ayudara a la hora de sincronizar y construir el proyecto.

 

Teniendo la vista como proyecto Android, dentro de Gradle Scripts, encontramos dos:

  • Gradle a nivel de proyecto
  • Gradle a nivel de modulo

 

La principal diferencia entre ambos es:

  • En el de Módulo es donde tendremos nuestras dependencias, herramientas de terceros…
  • En el de Proyecto es configuración más a nivel global del proyecto, como la versión de Kotlin que vamos a usar…

 

El que más se usa es el de nivel de módulo, donde aplicamos los plugins, dependencias…

Parámetros que nos encontramos en el Gradle de Módulos

  • compileSdkVersion: Le dice al Gradle que versión de Android SDK usar para compilar el proyecto. Si tenemos una versión antigua, no podremos usar las funcionalidades más nuevas implementadas. Afecta en tiempo de compilación no en tiempo de ejecucion, ya que solo es para compilar. Se recomienda que usemos de las ultimas versiones.

 

  • minSdkVersion: Hace referencia a la mínima version de Android que va a soportar la App. Es que ponemos en el asistente al crearlo. Se pueden modificar a posteriori desde aqui.

Si usamos una librería que su minSdkVersion es mayor, para usarla deberemos subir nuestra minSdkVersion para poder usarla.

 

  • targetSdkVersion: Proveer el forward compatible. Se recomienda la más nueva igual de igual modo que en la compileSdkVersion.   No puede ser superior a la compileSdkVersion.

 

  • versionCode: Codigo de version de nuestra App. Cada vez que lancemos una nueva actualizacion, este codigo debe ser incrementado

 

  • versionName: Es el nombre de la versión

 

En la pestaña de la derecha de Android Studio, podremos ver nuestro Gradle y con el botón de las flechas, sincronizar nuestro proyecto ( reconstruir nuestro proyecto, descargar dependencias….).

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