Diseño Android : Endless RecyclerView

Última actualización: 01/01/2019

android

En numerosos listados en los que se puedan mostrar una gran cantidad de elementos resulta necesario algún mecanismo de paginación que permita ir obteniendo, por ejemplo desde un servicio web REST, los elementos a mostrar a medida que el usuario solicita más datos al hacer scroll del listado:

  • Hacia arriba. Si existen elementos más recientes que los actualmente mostrados deberían añadirse en la parte superior del listado. Por tanto, en este tipo de listados al intentar avanzar más allá del primer elemento, se obtienen los más recientes y se añaden. Este patrón es fácil de utilizar gracias a SwipeRefreshLayout.
  • Seguir leyendo

Introducción a Bower

bower

En los últimos años hemos vivido una revolución en el desarrollo de aplicaciones web, incluyendo las aplicaciones híbridas para dispositivos móviles, en lo que respecta al frontend (interfaces/interacción con el usuario) gracias al imparable auge de herramientas y frameworks como AngularJS, jQuery, Backbone.js, Bootstrap o Ionic. Esta revolución incluso ha llegado al backend de la mano de Node.js y sus frameworks como Express.

Bower es un gestor de paquetes que nos ayudará en la utilización de todas estas APIs y frameworks de JavaScript y CSS. Gracias a Bower no tendremos que descargar y copiar manualmente en los proyectos estas dependencias, haciendo asimismo su actualización muy sencilla.

Seguir leyendo

Diseño Android: Pull To Refresh con SwipeRefreshLayout

android

El patrón de diseño Swipe To Refresh, más conocido como Pull To Refresh, puede ser considerado como el mecanismo estándar en aplicaciones móviles para actualizar el contenido de un listado o grid de datos con los elementos más recientes los cuales son añadidos en la parte superior del listado. Al deslizarse el listado hacia abajo y mostrarse el primer elemento, si el usuario intenta seguir deslizando un poco más (a veces se muestra un mensaje informando al usuario de esta posibilidad) se procede a la obtención de nuevos datos mostrando un Progress Dialog indeterminado.

android pull to refresh

Seguir leyendo

Android RecyclerView: Listas verticales y horizontales

Última actualización:01/12/2018

android

El widget RecyclerView es una de las novedades más importante que ha recibido Android en los últimos tiempos desde el punto de vista del desarrollador ya que permite reemplazar widgets fundamentales como ListView y GridView por “algo mejor” y más potente.

RecyclerView es un ViewGroup cuya misión es mostrar Views que se repiten múltiples veces, por ejemplo un listado, de forma que estas Views se van reutilizando para generar solamente aquellas que se muestran en pantalla. Este comportamiento también lo tiene ListView, pero RecyclerView obliga a implementar el ViewHolderPattern para mejorar el rendimiento evitando llamadas a findById que pueden ralentizar enormemente el scroll. En la ListView, es responsabilidad del programador seguir el ViewHolderPattern a la hora de implementar un Adapter.

Seguir leyendo

Diseño Android: Tarjetas con CardView

android

Las tarjetas son un componente gráfico popularizado por Google Now y que ahora forman parte de Material Design. El concepto de tarjeta es el de una ficha de papel o portada de una carpeta que proporciona sólo el resumen de cierto contenido y permite acceder al contenido completo. El resumen puede estar compuesto por un conjunto de elementos heterogéneos que incluye imágenes, títulos, textos, íconos, menús contextuales, acciones…

Android SDK proporciona una implementación del componente tarjeta con el widget CardView en un módulo propio de la librería de compatibilidad. En este tutorial diseñaremos una tarjeta más o menos típica con este componente haciendo uso también del widget Toolbar.

Seguir leyendo

Diseño Android: Notificaciones con Snackbar

android

La Snackbar es un nuevo componente de notificación que forma parte de Material Design. Estas notificaciones se muestran en la parte inferior de la pantalla y desaparecen automáticamente tras un cierto periodo de tiempo al igual que los Toast (aunque como veremos también se pueden mostrar de forma indefinida) y opcionalmente ofrecen al usuario la posibilidad de realizar alguna acción. Sólo habrá una Snackbar visible en pantalla y nunca mostrarán imágenes.

google keep snackbar

Seguir leyendo

Diseño Android: Floating Action Button con Design Support Library

Última actualización : 20/02/2016
android

Floating Action Button, FAB para los amigos, es un elemento visual introducido en Material Design cuyo objetivo es destacar la acción principal de una pantalla siempre y cuando esta constituya una operación muy habitual y “natural” como por ejemplo redactar un nuevo email en una aplicación de correos.

La acción flotante debe ser única y se muestra como un botón circular y plano en la parte inferior derecha de la pantalla aunque en ocasiones es posible que el FAB se “incruste” en otro elemento de la interfaz:

floating action button

Seguir leyendo

Diseño Android: ActionBar con Toolbar

Última actualización : 08/12/2018

android

La ActionBar es la barra superior presente en la inmensa mayoría de aplicaciones y habitualmente suele mostrar el nombre de la pantalla visualizada, el icono de la aplicación (o el del menú de navegación) y las acciones disponibles.

action bar

La ActionBar forma parte del profundo rediseño acometido por Google para Android 3/4 y su adopción fue bastante rápida. Para poder utilizarla en Android 2 era necesario recurrir a implementaciones propias o de terceros como la popular ActionBarSherlock pero en 2013 se incluyó en las librerías de compatibilidad.

Con Lollipop llegó Material Design y un nuevo paradigma visual tan importante como el que supuso la llegada de Android 4. Una de las novedades ha sido la aparición de la Toolbar que pretende ser un reemplazo de la ActionBar más potente y flexible. Mientras que la ActionBar es un elemento del sistema que se muestra en una Activity si se hereda de un tema que la incluya, Toolbar es simplemente un widget que aporta grandes ventajas: Seguir leyendo

Maven: aplicaciones ejecutables

logo java

Las aplicaciones web Java se empaquetan en ficheros war o ear y son desplegadas por un contenedor de servlets o servidor de aplicaciones JEE siguiendo siempre los estándares. En cambio, a la hora de empaquetar una aplicación de escritorio o consola tendremos que encontrar una estrategia que permita una fácil distribución y ejecución de estas aplicaciones. En este artículo veremos de forma muy práctica varias alternativas utilizando plugins de Maven.

Seguir leyendo

Servicios Web SOAP con JAX-WS, Spring y CXF (III): Securización TLS + BASIC

Última actualización: 20/02/2016

logo java

En la mayoría de servicios web será necesario incluir mecanismos tanto de autenticación como de cifrado que “securicen” la utilización del servicio. En SOAP se pueden utilizar varias alternativas, las dos que probablemente se utilizan con mayor frecuencia son las siguientes:

  • HTTPS(TLS) + BASIC: La autenticación BASIC consiste simplemente en el envío en el header del request de un par usuario/contraseña y con el uso del protocolo TLS las comunicaciones se cifran lo que garantiza la confidencialidad de los datos envíados. Esta combinación es fácil de implementar y suele aplicarse tanto a servicios web SOAP como REST proporcinando en muchos casos un nivel de seguridad suficiente.
  • WsSecurity: es un protocolo específico para SOAP y proporciona un elevado nivel de seguridad ya que, entre otras características, permite realizar una firma y cifrado de los mensajes a nivel de aplicación mientras que con TLS sólo garantizamos el cifrado y validez del mensaje a través de la red hasta el servidor de destino. Este mecanismo implica un pequeña merma del rendimiento ya que las aplicaciones clientes y servidor deben firmar los mensajes.

En esta tercera parte del tutorial se va a implementar el mecanismo TLS + BASIC en los ejemplos de los capitulos anteriores.

  1. Servidor
  2. Clientes
  3. Securización TLS + BASIC
  4. Handlers

Seguir leyendo

Diseño Android: Tipografías personalizadas

android

Existen dos motivos que pueden llevarnos a tener que definir explícitamente el tipo de letra a utilizar en nuestra aplicación:

  • Queremos utilizar un tipo específico como parte del diseño de la aplicación.
  • Evitar que en caso de que el usuario cambie el tipo de letra por omisión de su dispositivo Android el diseño de nuestra aplicación pueda quedar “afeado”. Esta funcionalidad no está incluída originalmente en Android pero es proporcionada por algunos fabricantes como Samsung y algunas apps en dispositivos rooteados.

El atributo android:typeface de TextView sólo se aplica a las familias de tipos de letras por omisión del sistema por lo que no existe una forma directa de utilizar una letra personalizada incluída en la aplicación simplemente desde XML. En este artículo veremos algunas de las opciones más habituales para utilizar tipos de letras TrueType personalizados.

Seguir leyendo