Etiqueta: Diseño web

Usabilidad de una aplicación web

Diseño web

 

El término usabilidad es relativamente reciente. Se puede decir que surgió poco después de la expansión de Internet, a finales de los años 90. Pero realmente la idea que quiere expresar es bastante anterior, aunque se conocía con otros nombres como por ejemplo el Diseño Centrado en el Usuario o Human-Computer Interaction (HCI).

La usabilidad se refiere a la capacidad de un software o sistema interactivo de ser comprendido, aprendido, usado fácilmente y atractivo para un usuario, en condiciones específicas de uso. También es la efectividad, eficiencia y satisfacción con la que un producto permite alcanzar sus objetivos específicos (1).

Conceptos básicos de usabilidad

Facilidad de manejo de la aplicación

Generalmente el diseñador de una aplicación es un usuario subjetivo del programa, por lo que sabe exactamente cómo manejarlo. El problema de esto, es que en ocasiones no se tiene en cuenta el nivel de experiencia de los usuarios medios.

Para solucionar este problema surge la usabilidad. Como se definió anteriormente, la usabilidad se centra en la facilidad e intuitividad en el manejo de las aplicaciones.

Equilibrar diseño y contenido

En muchas ocasiones los diseñadores inexpertos hacen uso de la regla de oro “una imagen dice más que mil palabras”. Esto no es lo adecuado, ya que en un principio podría lucir fascinante el diseño pero no están considerando la carga de todo el contenido multimedia y las limitaciones de algunos usuarios con la velocidad de internet que poseen.

Adaptación de la aplicación al medio

Uno de los problemas que se tiene que enfrentar cuando se diseña una aplicación, es el entorno en donde se ejecutara ya que no se sabe a ciencia cierta en medio donde se desempeñara.

Para afrontar esto, lo principal es preguntar al cliente el tipo de entorno donde se desarrollará; sin embargo esto no aplica para todas las aplicaciones, ya que en la actualidad y con los avances tecnológicos en hardware y con el creciente uso de dispositivos móviles, es indispensable crear aplicaciones independientes a este.

Accesibilidad de la aplicación

Un último aspecto que hace que una aplicación sea usable es que sea accesible para personas con necesidades diferentes. Hemos de centrar especialmente nuestra atención en estos usuarios y nuestra aplicación deberá adoptar ciertas medidas para que puedan utilizarla. Algunas de las medidas que se pueden tomar para alcanzar este objetivo son:

  • Utilizar una correcta combinación de colores.
  • Dar la opción de aumentar el tamaño de la letra o algún tipo de zoom en la aplicación.
  • Proporcionar la opción de imprimir o guardar en disco toda la información que ofrece la aplicación.

Poniendo Audio con HTML5

HTML5

Si naciste igual que yo en los 90’s o antes, y tuviste computadora conectada a internet , sabrás de que era imposible poder ver videos en el navegador o poner un reproductor en nuestro sitio ya que los navegadores de esa época no eran compatibles con esos formatos, a esta problemática existencial llegaron los famosos archivos FLV ( Flash Video ) , que hasta hace poco era el reino y señor de los contenidos multimedia embebidos en el navegador , pero con la llegada de HTML 5 y sus API para poder tener un reproductor de archivos sonoros con solo una líneas de código o un sencillo pero práctico reproductor de videos que soporta múltiples formatos , han hecho que los desarrolladores implementen esta nueva forma tan sencilla de mostrar contenido multimedia en sus sitios y aplicaciones. Si no me creen que es tan sencillo sigue leyendo este post y aprende como poder tener un reproductor de música funcional en nuestro sitio en menos de 5 min.

Audio.

Para reproducir un archivo de audio en una página web, debemos utilizar la etiqueta <audio>, que en sintaxis mínima e ideal llevaría esta sencilla estructura

 

Pero esto no producirá ningún resultado, ni visual, ni auditivo, ya que estaría faltando definir atributos que controlen la visualización del reproductor y la manera en que se comenzará a reproducir o no el archivo en cuestión. Veamos entonces cuáles son las opciones existentes.

Atributos

Al entrar al sitio web se empezará a reproducir el archivo que hayamos puesto en el atributo src
y es tan simple hacer esto con tan solo definir el atributo autoplay en el tag audio.

 


Otro atributo para el control de esta etiqueta es loop que sirve para que el archivo vuelva a reproducirse cada vez que finalice de manera infinita, un caso de aplicación sería una música de fondo que queremos que escuche nuestro visitante y ambientar nuestro sitio según el enfoque del mismo, por ejemplo para un sitio de algún restaurante o museo de alta categoría se pondría de fondo una canción tranquila como una sinfonía, en cambio para una empresa dedicada a vender equipo de supervivencia usaríamos sonidos parecidos a los de una jungla o escenarios de naturaleza.

En lo personal a mí me gusta usar este atributo pero siempre con la visualización de los controles para que los visitantes puedan parar el sonido en cualquier momento.

Para poder visualizar los controles de stop, play, la barra de tiempo, regulación de sonido, y la duración total tenemos que definir el atributo controls, con esto tendremos listo nuestro reproductor de música sin ningún código extra con solo HTML5.

< audio src="archivo.ogg" autoplay controls loop>

Al usar el tag de audio tenemos tener en cuenta que no todos los navegadores soportan los mismos formatos de archivo de sonido, es por eso que tenemos que poner varias opciones de formato, en la tabla de abajo se muestra el navegador y el formato que soporta. De igual manera algunas versiones de los navegadores no soportan elementos de audio, puedes ver las versiones de los diferentes navegadores que soportan este elemento en la tabla de abajo.

Browser

MP3

WAV

OGG

Internet Explorer

YES

NO

NO

Chrome

YES

YES

YES

Firefox

YES

YES

YES

Safari

YES

YES

NO

Opera

YES

YES

YES

Elemento

Chrome

IE

Firefox

Safari

Opera

<audio>

4.0

9.0

3.5

4.0

10.5

Para definir las diferentes opciones del archivo que queramos reproducir se necesita poner el tag  <source src="horse.ogg" type="audio/ogg">  donde el atributo type se define el tipo de archivo con el cual el navegador identificara cual soporta y ese va a reproducir, este paso quedaría de la siguiente manera.

En esta tabla se muestra como debemos definir los media types según el formato que manejemos, como vieron no es muy complicado tener un reproductor en nuestro sitio,es algo básico pero depués les mostraré como  personalizarlo con algo de CSS3 y javascript para hacer cosas interesantes.

 

Formato del archivo

Media Type

MP3

audio/mpeg

Ogg

audio/ogg

Wav

audio/wav

Código del video Tutorial

 

Calcular el tiempo transcurrido Javascript

Javascript

Calcular el tiempo transcurrido

El método getTime devuelve el número de milisegundos transcurridos desde la medianoche del 1 de enero de 1970. Para cualquier fecha anterior a esa, devuelve un número negativo.

Puede usar el método getTime para establecer una hora inicial y final para calcular el tiempo transcurrido. Se puede utilizar para medir unidades pequeñas, como unos segundos, y unidades grandes, como días.

En el ejemplo siguiente se calcula el tiempo transcurrido en segundos. El método getTime obtiene el número de milisegundos desde la fecha cero.

Para trabajar con unidades más controlables, puede dividir los milisegundos proporcionados por el método getTime por un número adecuado. Por ejemplo, para convertir los milisegundos en días, divida el número por 86.400.000 (1.000 milisegundos x 60 segundos x 60 minutos x 24 horas).

En el siguiente ejemplo se muestra el tiempo que ha transcurrido desde el primer día del año especificado. Se usan operaciones de división para calcular el tiempo transcurrido en días, horas, minutos y segundos. No tiene en cuenta el horario de verano.

 

 

Objetos JSON

Javascript

JSON significa JavaScript Object Notation o notación de objetos JavaScript. No es más que una forma muy potente y poco conocida de crear e instanciar objetos que tomo un significado nuevo a partir de las aplicaciones AJAX.

Su notación es tan sencilla que en la actualidad se utiliza en muchos lenguajes para el transporte liviano de objetos.

Sintaxis

Un objeto JSON está encerrado entre llaves ( { } ) y contiene propiedades separadas por comas, cuyos nombres deberían estar encerrados entre comillas ( aunque la mayoría de las implementaciones los acepta sin ellas ); cada propiedad tiene un valor separado por dos puntos ( : ) y cada valor puede ser :

  • Un String encerrado entre comillas.
  • Un número.
  • Una función.
  • Otro objeto JSON.

Ventajas

Las ventajas son muchas, es sencillo y rápido de escribir , su lectura es comprensible y se puede navegar por el objeto con notación de punto, como cualquier objeto JavaScript.

Un JSON como todo objeto JavaScript puede recorrerse con un for in para saber las propiedades que posee.

JSON con funciones

Un JSON también puede contener funciones, que pueden transportarse como cualquier otra variable.

Usos

En el presente , JSON se utiliza para :

  • Definir enumeraciones o constantes para evitar problemas de escritura por ejemplo:

  • Transportar objetos entre el cliente y el servidor a través de AJAX, en remplazo de XML. Para ello, se recibe el objeto como string. Por medio de la propiedad responseText para hacer que JavaScript interprete a JSON como tal y no solo como string, hace falta ejecutar el código siguiente que evalúa el JSON:

Antes de hacer eval , es necesario están seguros que es un JSON valido, si no generará una excepción, la cual se puede capturar con un try ,o ejecutar código JavaScript si lo fuera , con la posibilidad de un problema de seguridad de inyección.

Del lado del servidor

Cuando enviamos un objeto JSON al servidor , tenemos que tener instalado una librería especial para poder manejar la información, en PHP desde la versión 5.2.X , esta librería ya viene instalada por defecto su uso es el siguiente:

La función JSON_decode() , decodifica el objeto JSON y lo convierte en un arreglo asociativo en cambio , JSON_encode() hace la función inversa , de un arreglo asociativo a un objeto JSON.

AJAX con JavaScript

Javascript

Esta entrada daremos la introducción a la tecnología de AJAX, este será la primera publicación sobre este tema, en futuras entregas publicare como implementarla para desarrollar aplicaciones ricas en internet.

Lo primero que se preguntaran es, ¿Qué es AJAX?, la palabra es el acrónimo de Asynchronous JavaScript And XML (JavaScript asíncrono y XML), es una técnica de desarrollo web para crear aplicaciones interactivas o RIA (Rich Internet Applications). Estas aplicaciones se ejecutan en el cliente, es decir, en el navegador de los usuarios mientras se mantiene la comunicación asíncrona con el servidor en segundo plano.

Toda aplicación que usa AJAX usa al objeto XMLhttpRequest , por eso mismo veremos un poco de historia y después como usar este objeto para desarrollar aplicaciones interactivas.

El objeto XMLHttpRequest

Empezaremos con un poco de historia , corría el año de 1998 cuando Microsoft libero una tecnología conocida como Remote Scripting que permitia por medio de un applet Java, realizar peticiones desde JavaScript al servidor sin que el usuario lo notara y sin que cambiara la URL del sitio web.

Al año siguiente la empresa lanzo Internet Explorer 5.0 (La pesadilla de los desarrolladores web de la época) y en este incorporó, bajo la tecnología ActiveX un objeto llamado XMLHttp, que remplazaba a Remote scripting sin necesidad de que el usuario tenga instalada una máquina virtual Java.

Esta tecnología paso desapercibida hasta que 5 años después un conjunto de empresas (Google, Yahoo, AOL, etc.) retomaron el concepto y comenzaron a aplicarlo en sus servicios web para lograr interfaces ricas jamás antes vistas desde la llegada del HTML.

Es así como el objeto XMLHttp es el corazón de toda aplicación AJAX dado que es el que permite realizar peticiones al servidor en forma asíncrona y sin cambiar de URL.

La competencia de IE implementaron un objeto clon que lo denominaron XMLHttpRequest. Este objeto es nativo de JavaScript y tiene los mismos métodos y propiedades que el objeto ActiveX de Microsoft.

Estas dos versiones del objeto XMLHttp se convirtieron durante mucho tiempo en el dolor de cabeza de muchos desarrolladores, hasta que IE 7 implementó el objeto XMLHttpRequest en forma nativa.

Modo de uso

Ya que nos pusimos en contexto veamos cómo se implementa esta tecnología.

Para hacer una petición al servidor es necesario seguir los pasos siguientes:

  1. Instanciar el Objeto antes mencionado.
  2. Configurar y abrir la petición.
  3. Definir una función que se encargue de administrar la evaluación de la petición.
  4. Enviar la petición y los datos al servidor.
  5. En la función definida antes, manipular el estado de la petición y en que caso correcto recibir los datos y actuar en consecuencia con ellos, según lo que se quiera hacer.

 

Instanciar el Objeto

Para esto declaramos una variable y asignamos el objeto como lo muestra el código de abajo:

 

Configurar y abrir la petición.

Para configurar y preparar la petición antes de enviarla al servidor usaremos el método open(), este recibe los datos de configuración como son el método por el cual se enviaran los datos, los más utilizados son GET o POST , la URL a donde se hará la petición y si la petición será asíncrona o no, el uso del método seria como el siguiente:

Código para preparar la conexión.

 

Ya que se configuro y esta lista la petición para su envió, usaremos el método send(), cabe mencionar que si en el método anterior configuramos como método de envio a GET , el método send recibe como parámetro NULL, ya que los datos fueron enviados por medio de la URL.

En caso contrario los datos serán pasados en el formato

.

Código del uso del método send().

Propiedades

Ahora veremos las propiedades para poder llevar el monitoreo y administración de nuestra petición.

ReadyState

La propiedad de solo lectura readystate devuelve el código numérico entre 0 y 4, inclusive, que indica en qué estado se encuentra la petición.

 

Código

Estado

Descripción

0

Sin inicializar

El requerimiento solo fue instancionado. Muchos navegadores no manejan este código y pasan directamente al siguiente

1

Cargando

El requerimiento se configuro con open pero todavía no se envía.

2

Cargado

El requerimiento de envió o se está enviando, aunque todavía no tenemos respuesta alguna del servidor

3

Interactivo

El servidor ya respondió la petición, ya tenemos disponibles las cabeceras pero el contenido todavía se esta descargando.

4

Completo

La petición ya finalizó y el contenido está completo.

 

 

Status

Es muy importante no confundir esta propiedad con la anterior, la propiedad status devuelve el código HTTP que nos devolvió el servidor.

Código

Descripción

200 La petición se pudo procesar en forma correcta.
404 La URL a la que realizamos la petición no existe en el servidor.
500 Error interno del servidor. Puede indicarnos que el servidor está saturado o que hay algún error en el script ejecutado en el servidor.
400 La petición enviada al servidor es errónea. Hay algún inconveniente con las cabeceras o con la información POST enviada.
403 No tenemos permiso de acceder al recurso en el servidor.
405 No se acepta el método. Hay un problema al definir los métodos POST o GET.
414 La URL pedida es muy larga. Puede producirse cuando se envían muchos datos por GET. En este caso, se debe cambiar al método a POST.
503 El servidor esta temporalmente no disponible.

 

Como vemos en la tabla anterior, el código que se debe esperar de una petición correcta será 200.

Ahora agregamos esta condición a la anterior.

ResponseText

Esta propiedad de solo lectura devuelve un string con el contenido del cuerpo devuelto por el servidor ante la petición. Solo tenemos seguridad de que los datos están correctos cuando readystate sea 4 y status sea 200.

Esta propiedad se utiliza para recibir del servidor tanto información textual como HTML, código JavaScript u objetos JSON.

Onreadystatechange

De todas las propiedades descritas hasta ahora, esta es la única que se utiliza antes de enviar la petición.

El objeto XMLHttpRequest posee un solo evento estándar, que se puede y se debe capturar para procesar la petición dado que se está tratando con una petición asíncrona donde el objeto se encarga de avisarnos cuando la petición termina.

La propiedad onreadystatechange, entonces debe asignarse a una función que se ejecutara de manera automática cada vez que la propiedad readystate cambie su valor de entre 0 y 4.

De esta forma cuando el estado llegue a 4 ya estaremos listos para leer los datos que nos devuelve el servidor.

Para asignarle una función a esta propiedad tenemos dos opciones, la primera es definir una función anónima o en línea y la segunda es almacenar una función en una variable, al usar la segunda opción tenemos que tener cuidado de no usar los paréntesis ya que en vez de almacenar la función estaríamos ejecutándola.

Esta propiedad deberá definirse antes o después del método open y antes del send para que el código funcione correctamente.

Implementación

Ya que vimos los métodos y propiedades del objeto XMLHttpRequest haremos una pequeña demostración para esto haremos una petición al servidor para que nos devuelva un mensaje «Hola Mundo en AJAX», este tutorial tenemos dos archivos index.html y Ajax.php.

En el archivo index.html pondremos el código javascript y la estructura HTML, en Ajax.php ira el mensaje que nos devuelve el servidor, estos dos archivos tienen que estar en algún servidor web y en la misma carpeta.

Ajax.php

Como crear un menú con HTML5

HTML5

Una de las partes  más importantes de un sitio web es el menú de navegación ya que a través  de él  nuestros usuarios interactúan con el sitio, hoy veremos cómo crear un menú usando las nuevas etiquetas de HTML5, una introducción a estilos con CSS  y cómo empezar a usar esta nueva especificación que  ha creado muchas controversias respecto a usarlo o no.

 

Galería de imágenes con Jquery CSS y HTML

HTML5Jquery

En este tutorial les mostrare como crear una galería de imágenes usando Jquery  y html5, para esto usaremos  un plug in de Jquery.

Un plug In de Jquery   no es más que  una función que se agrega el objeto JQuery para poder realizar  efectos o animaciones más fáciles  ya que la mayoría reciben parámetros de configuración, en este caso en específico usaremos el plug In llamado Cycle  que nos permite con unas cuantas líneas de código crear un slider de imágenes con diferentes efectos.

Sin más preámbulo les dejo abajo el video  tutorial de mi canal de YouTube  y los enlaces de descarga del plug in, jquery

 

 

Enlace de jquery:

https://ajax.googleapis.com/ajax-libs/jquery/1.7.2/jquery.min.js

Enlace de Cycle:

http://cloud.github.com/downloads/malsup/cycle/query.cycle.all.latest.js

Enlace de Efectos:

http://www.malsup.com/jquery/cycle/browser.html

Newsletter

Suscríbete y recibe contenido exclusivo.

* indicates required