Android: Selección de tema claro y oscuro, pantalla de ajustes

android

Siguiendo la propuesta del tutorial Diseño Android: Tema claro y oscuro con Material Components, tenemos una app de ejemplo diseñada con un tema claro y otro oscuro. De momento la única forma de cambiar de tema es activar el ahorro de batería o el tema oscuro introducido en Android 10, pero las aplicaciones que ofrecen ambos estilos permiten al usuario seleccionar el que quieren utilizar, normalmente con una opción en la típica pantalla de ajustes o configuración.

Seguir leyendo

Diseño Android: Tema claro y oscuro con Material Components

android

Sin duda alguna, los temas oscuros están pegando fuerte en el mundo del software en general, y en el de las aplicaciones móviles en particular. Aunque muchas aplicaciones ya utilizaban este tipo de diseño desde hace años como Spotify, a nivel de sistema operativo Apple abrió camino en 2018 con el lanzamiento de Mojave y le han seguido iOS (13), Android (10) y Windows.

Seguir leyendo

Diseño Android: Menu inferior Bottom Navigation con Material Components

logo android

La especificación de Material Design incluye un tipo de menú de navegación que en los últimos tiempos está adquiriendo gran popularidad y que encontramos en apps tan conocidas como Spotify o Instagram, además de las aplicaciones propias de Google tales como YouTube o Google Play. Se trata de una barra de navegación situada en la parte inferior de la pantalla que muestra con iconos y, opcionalmente, textos, entre tres y cinco elementos de navegación. Asimismo, en muchas apps esté menú se complementa como un menú lateral.

bottomnavigationview examples
Seguir leyendo

Introducción a CDI Beans 2.0 (JEE 8)

logo java

JEE (Java Enterprise Edition) es una colección de especificaciones especialmente orientadas al desarrollo de aplicaciones empresariales generalmente del lado del servidor (aplicaciones web). Incluye tecnologías tales como Servlet, JSP, EJB, JAX-WS, JPA o JMS. La versión más actual en el momento de escribir el presente tutorial es la 8 (su versionado no coincide con el de Java SE que es el core del propio lenguaje Java).

El desarrollo de JEE es controlado por Oracle y realizado dentro del Java Community Process(JCP), pero a finales de 2017 Oracle cedió JEE a la fundación Eclipse y, por cuestiones legales en el uso de la marca Java EE, ha pasado a llamarse Jakarta EE. La primera versión es Jakarta EE 8 y coincide exactamente con las especificaciones Java EE 8. Los cambios han llegado con Jakarta EE 9 a finales de 2020 pero no a nivel funcional: simplemente se ha cambiado el nombre de los paquetes javax.* a jakartaee.*, y unas pocas especificaciones han pasado a ser opcionales o directamente han dejado de ser parte de Jakarta EE 9. En cualquier caso, todo lo visto en este tutorial sigue siendo válido para Jakarta EE 8 y 9.

Seguir leyendo

Spring: Sistema de eventos

logo springLos sistemas de eventos permiten que múltiples componentes intercambien información reduciendo el acoplamiento entre ellos suponiendo en la práctica una generalización más abstracta de los principios del patrón de diseño observador. El core de Spring cuenta con un sistema de eventos que quizás no sea demasiado conocido, de hecho en la bibliografía se suele citar de pasada. Este sistema de eventos de Spring es muy básico y utiliza el propio ApplicationContext como bróker para el envío de eventos entre los beans gestionados por el mismo. En este tutorial echaremos un vistazo a este sistema eventos.

Seguir leyendo

Spring Boot Actuator

logo springSpring Boot Actuator es una librería que proporciona out-of-the-box una amplia colección de funcionalidades de monitorización y administración para aplicaciones desarrolladas con Spring Boot accesibles mediante endpoints vía REST y/o con JMX Beans. En este tutorial aprenderemos a utilizar Spring Boot Actuator con la versión 2.1 de Spring Boot. Téngase en cuenta que hay numerosas e importantes diferencias en el módulo Actuator entre Spring Boot 1.x y Spring Boot 2.x

Seguir leyendo

Spring REST: Securización BASIC y JDBC con Spring Security

Última actualización: 03/11/2020

logo spring

En este tutorial veremos cómo utilizar Spring Security para definir la autenticación y autorización de una Api REST. Como sistema de autenticación usaremos una base de datos relacional accesible mediante JDBC, y las credenciales deberán proporcionarse mediante el estándar BASIC. De este modo las credenciales viajan codificadas en Base 64 en el header de la petición y, aunque no están cifradas, en la práctica sólo deberíamos permitir llamadas a la Api mediante HTTPS.

Este mecanismo es sencillo de implementar aunque presenta el problema de que el cliente tiene que proporcionar la contraseña en cada petición por lo que esta deberá ser almacenada de algún modo. Sistemas más seguros y potentes, pero también un poco más difíciles de implementar, se basan en el uso de tokens con JWT) o del protocolo OAuth, aunque en ciertos escenarios la autenticación BASIC puede ser suficiente.

Seguir leyendo