Vamos a armar una app con un login básico y una pantalla de bienvenida. La idea es aprender los conceptos básicos de android.
Crear un proyecto nuevo en android vacío
Crear una launcher activity vacía llamada "LoginActivity". Las activities "launcher" son las que después aparecen en el menú de aplicaciones del dispositivo.
Darle play y ver una pantalla en blanco
Usar un LinearLayout en la vista y agregar 2 edit text y un botón que ocupen todo el ancho de la pantalla. https://github.com/lugarbarini/android_workshop/blob/master/workshop_screenshots/ws2.png?raw=true
Agregar un margen de 16dp a la pantalla
Agregar un margen bottom de 24dp a los textos y un margen top de 24dp al botón.
Extraer los valores al archivo dimens y reutilizar los valores iguales.
https://github.com/lugarbarini/android_workshop/blob/master/workshop_screenshots/ws3.png?raw=true
Agregar el texto "Continuar" en el botón
Extraer el valor en el archivo dimens
Agregar color blanco al texto del botón y extraerlo al archivo colors
Agregar el color accent al fondo del botón y cambiarlo a celeste. Esto cambia también el color de resaltado de inputs.
https://github.com/lugarbarini/android_workshop/blob/master/workshop_screenshots/ws4.png?raw=true
Enchular los EditText.
Le ponemos un hint para que se entienda qué representa cada campo. El primero es el nombre de usuario y el segundo la contraseña.
MaxLines = 1 para que no pueda pasarse a varias líneas.
Fading edge para cuando el texto es muy largo.
Input type email para el usuario y number password para la contraseña. Esto nos modifica el teclado y la password se ofusca.
Ime options para cambiar la acción del botón del teclado.
https://github.com/lugarbarini/android_workshop/blob/master/workshop_screenshots/ws5-1.png?raw=true
https://github.com/lugarbarini/android_workshop/blob/master/workshop_screenshots/ws5-2.png?raw=true
Agregar un id a cada vista.
Ir a la activity y obtener una referencia a las vistas.
Agregar un click listener al botón
Loggear el contenido de los inputs
Crear una nueva activity vacía llamada "WelcomeActivity"
En el click del botón, armar un intent e ir a la nueva pantalla.
https://github.com/lugarbarini/android_workshop/blob/master/workshop_screenshots/ws8.gif?raw=true
Agregar un text view en la nueva pantalla
Desde código, settear el string de bienvenida
https://github.com/lugarbarini/android_workshop/blob/master/workshop_screenshots/ws9.png?raw=true
Desde la primer pantalla, pasar el nombre de usuario mediante un extra.
Desde la segunda pantalla, obtener el extra y mostrarlo en el mensaje de bienvenida.
https://github.com/lugarbarini/android_workshop/blob/master/workshop_screenshots/ws10.png?raw=true
Descargar las imágenes y copiarlas al proyecto.
Agregar el asset a la vista de bienvenida
https://github.com/lugarbarini/android_workshop/blob/master/workshop_screenshots/ws11.png?raw=true
Agregar las traducciones para Inglés e Inglés de Nueva Zelanda. Por default usar Español https://github.com/lugarbarini/android_workshop/blob/master/workshop_screenshots/ws12-1.png?raw=true https://github.com/lugarbarini/android_workshop/blob/master/workshop_screenshots/ws12-2.png?raw=true https://github.com/lugarbarini/android_workshop/blob/master/workshop_screenshots/ws12-3.png?raw=true
Cambiar los colores para cuando la pantalla está en modo landscape https://github.com/lugarbarini/android_workshop/blob/master/workshop_screenshots/ws13.png?raw=true
Crear una clase para validar que el campo user name y password tengan data
Armar un test de JUnit para esta clase
Cuando username y password validan ir a la Welcome Activity.
Cuando no validan, abrir una activity que muestre un error usando el deeplink workshop://error
- Jugar con el constraint layout para armar una ui de bienvenida más copada
- Demostrar el ciclo de vida.