57
Experto en Desarrollo de Aplicaciones para Dispositivos Móviles © 2012-2013 Depto. Ciencia de la Computación e IA Programación web para móviles Sesión 1: Introducción al desarrollo Web para móviles

Programación web para móviles - ua

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IA 

Programación webpara móviles

Sesión 1: Introducción al desarrollo

Web para móviles

Page 2: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 2

Contenido• Introducción al desarrollo web para móviles

• HTML

• CSS

• HTML 5

• CSS 3

Page 3: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 3

Programación Web para móviles

• Aplicación móvil vs. Aplicación nativa

• Introducción a la Web para móviles

• Reglas de usabilidad

• Dominio

Page 4: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 4

Aplicación móvil vs. Aplicación nativa

Las aplicaciones nativas tienen la ventaja de poder usar funciones no disponibles para la web móvil:

• Interfaces nativas que proveen los propios SDK como iPhone o Android.

• Bases de datos locales. Aunque en HTML 5 se puede usar el

almacenamiento local, estas tecnologías están más avanzadas en los

sistemas nativos.

• Notificaciones push.

• Geolocalización.

• Soporte para cámara o vídeo.

Page 5: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 5

Aplicación móvil vs. Aplicación nativa

Sin embargo, estas diferencias cada vez son menores:

• Mejoras en HTML5, CSS3 y JavaScript.

• Mejores frameworks de desarrollo para aplicaciones móviles, como JQuery Mobile o

Sencha Touch.

• Apariencia cercana a las de las aplicaciones nativas.

• Adapta el contenido según el dispositivo usado.

• Multiplataforma.

• El desarrollo web no ha muerto por la aparición de las aplicaciones móviles, sino que se

ve afectado por un proceso de cambio hacía la adopción de nuevas tecnologías.

• PhoneGap: crear una aplicación nativa instalable a partir de una página Web

• Da acceso a: cámara, acelerómetro, geolocalización, listado de contactos,

comprobar el estado de la conexión, etc.

Page 6: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 6

Introducción a la Web para móviles• La Web móvil es la misma Web que la de escritorio, utiliza:

• la misma arquitectura.

• las mismas tecnologías.

• Pero existen claras diferencias que impiden que su funcionamiento y manejo sea el

mismo, como son:

• Tamaño de la pantalla.

• Diferentes formas de manejo (táctil, teclado, cursor, etc.).

• Ancho de banda.

• ¡Es móvil!

• Diferente tipo de uso.

Page 7: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 7

Introducción a la Web para móviles• Al diseñar este tipo de aplicaciones tenemos que orientarlas a su uso principal,

introduciendo cambios en:

• Contenido.

• Información más clara y directa.

• Apariencia.

• Estructura

• Regla del 20%:

• El 80% del contenido del sitio web de escritorio no es válido para una web móvil.

• Hemos de centrarnos en ese 20% restante:

• Averiguar cual es.

• Optimizar el sitio para este uso.

Page 8: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 8

Reglas de usabilidad

1. Reducir la cantidad de contenido

2. Usar una sola columna

3. Muestra los enlaces de navegación de forma diferente

4. Minimiza la cantidad de datos solicitados

5. Decide si necesitas más de una Web para móvil

6. Diseña para pantallas táctiles, pero también para teléfonos no-táctiles

7. Aprovecha las funcionalidades que incorporan los móviles

Page 9: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 9

Dominio

• Existen diferentes alternativas que podemos usar:

• Podemos tener un subdominio de nuestro sitio Web especializado para

dispositivos móviles.

www.midominio.com → m.midominio.com.

Facebook tiene: m.facebook.com, touch.facebook.com, 0.facebook.com

• Redireccionar desde el dominio principal.

• Dominio ".mobi" (especial para web móvil).

• Recomendación: tener varias opciones disponibles, con la intención

de facilitar al máximo el acceso.

• En este caso deberemos crear redirecciones 301 al dominio principal.

Page 10: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 10

HTML• Introducción• Etiquetas• Estructura básica de una

Web• Elementos de la

cabecera• Etiquetas básicas HTML

• Listas• Tablas• Cajas (etiqueta <div>)• Enlaces• Imágenes

Page 11: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 11

Introducción• HTML (HyperText Markup Language).

• Lenguaje de marcado predominante para la elaboración de páginas web.

• Describe la estructura y el contenido en forma de texto.

• Se escribe en forma de “etiquetas”, mediante las cuales podemos

describir la estructura lógica y apariencia del contenido.

• Se puede complementar con otros lenguajes como JavaScript o CSS.

• Actualmente se usa el estándar de HTML 4.01 (1999).

• HTML5 a fecha de 2012 sigue siendo un borrador.

Page 12: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 12

Etiquetas

• Deben de ir encerradas entre corchetes angulares “<>”

• Pueden ser de dos tipos:

• Apertura y cierre (<p>texto</p>).

• Sólo apertura (<br/>).

• Los atributos se deben de colocar en la etiqueta de inicio:

<etiqueta atributo1="valor1" atributo2="valor2">...</etiqueta>

• O para las etiquetas de solo apertura:

<etiqueta atributo1="valor1" atributo2="valor2"/>

Page 13: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 13

Estructura básica de una Web

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"

"http://www.w3.org/TR/html4/strict.dtd">

<html>

<head>

<title>Ejemplo</title>

</head>

<body>

¡Hola mundo!

</body>

</html>

CUERPO

CABECERA

Page 14: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 14

Elementos de la cabecera

• <title>Título</title>: define el título de la página, que aparecerá en la barra de título

encima de la ventana.

• <link/>: para vincular el sitio con hojas de estilo:

<link href="style.css" rel="stylesheet" type="text/css"/>

• <style></style>: añadir definición de estilo en línea.

<html>

<head>

<style type="text/css">

Estilos CSS

</style>

</head>

<body>...</body>

</html>

Page 15: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 15

Elementos de la cabecera

• <meta/>: para indicar metadatos como: description, keywords, author

• <script></script>: permite incluir un script en la Web.

El código se puede cargar desde un fichero externo:

<script src="fichero.js" type="text/javascript"></script>

O escribir directamente entre las etiquetas de <script>:<script type="text/javascript">

Código de un script integrado en la página

</script>

Page 16: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 16

Etiquetas básicas HTML• <h1></h1> a <h6></h6>: encabezados o títulos del documento.

• <p></p>: definición de un párrafo.

• <br/>: salto de línea.

• <strong></strong> (<b></b>): texto en negrita.

• <em></em> (<i></i>): texto en cursiva.

• <del></del> (<s></s>): texto tachado.

• <u></u>: texto subrayado.

• Etc.

Page 17: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 17

Listas

• <ol></ol>: Lista ordenada (con numeración).

• <ul></ul>: Lista con puntos (o viñetas).

• <li></li>: Elemento de una lista.

Ejemplo:

<ol>

<li>Elemento 1</li>

<li>Elemento 2</li>

</ol>

1. Elemento 12. Elemento 2

Page 18: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 18

Tablas

• <table></table>: define el inicio y fin de una tabla.

• <tr></tr>: fila de una tabla.

• <td></td>: celda de una tabla.

• <th></th>: celda de “cabecera”.

Ejemplo:<table>

<tr>

<td>Fila 1 izqda</td>

<td>Fila 1 dcha</td>

</tr>

<tr>

<td>Fila 2 izqda</td>

<td>Fila 2 dcha</td>

</tr>

</table>

Fila 1 izqda Fila 1 dcha

Fila 2 izqda Fila 2 dcha

Page 19: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 19

Cajas (etiqueta <div>)

• La etiqueta <div></div> define una caja contenedora.

• Puede contener cualquier tipo de elemento (texto, imágenes, etc.)

u otras etiquetas <div> para crear subdivisiones.

• Se usan para organizar la disposición de elementos.

• Podemos indicar su posición de forma absoluta o relativa.

• Se recomienda su uso junto con CSS cuando se desea alinear

contenido (en vez de la etiqueta <table>).

Page 20: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 20

Imágenes

• Para incluir una imagen se utiliza la etiqueta:

<img src="" alt=""/>

• Donde:

• src=“” ruta de la imagen.

• alt=“texto alternativo”, texto a mostrar en caso de no poder

cargar la imagen (también se utiliza en opciones de accesibilidad).

• “width” y “height” para redefinir el ancho y el alto de la imagen.

• Por ejemplo:

<img src="cabecera.jpg" alt="Cabecera"/>

Page 21: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 21

Enlaces

• Vinculan partes de un documento con otros documentos o con otras partes del mismo documento.

<a href="URL">Nombre del enlace</a>

• href=”” establece la dirección URL a la que apunta el enlace.

• Por ejemplo:

<a href="es.wikipedia.org">Wikipedia</a>

• Podemos crear enlaces sobre otros objetos, como imágenes:

<a href="dirección_URL"><img src="imagen.jpg"/></a>

Page 22: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 22

CSS• Introducción

• Adjuntar una hoja de estilo

• Definición de estilos para etiquetas HTML

• Identificadores y Clases

• Estilos CSS básicos

• Pseudo-clases

• Capas

Page 23: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 23

Introducción

• Hojas de estilo en cascada: Cascading Style Sheets.

• Permite definir la apariencia de una Web.

• Separa el contenido de la forma.

• El W3C (World Wide Web Consortium) es el encargado

de formular su especificación:

• 1ª versión → CSS 1 (1996)

• Última versión → CSS 2.1 (2011)

Page 24: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 24

Introducción

• En versiones antiguas de HTML se añadía el formato dentro de las propias etiquetas:<font face="verdana" color="blue" size="12">Texto</font>

• Desventajas:• Obligaba a especificar el mismo formato en todas las etiquetas

para tener un diseño consistente. • Al cambiar un formato hay que cambiarlo en todas las etiquetas.

• Con CSS las etiquetas HTML no deben proporcionar información sobre apariencia.

Page 25: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 25

Ventajas del uso de CSS

• Control centralizado.

• Fácil actualización.

• Mayor claridad en el código.

• Menor tamaño.

• Personalización según dispositivo (temas, impresora,

dispositivo móvil).

Page 26: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 26

Adjuntar una hoja de estilo

Puede ser adjuntada de tres formas diferentes: 1. Hoja de estilo externa

<head>

<link rel="stylesheet" type="text/css" href="estilo.css"/>

</head>

2. Hoja de estilo interna<head> <STYLE type="text/css"> H1 {color:blue; text-align:center} </STYLE></head>

3. Estilo en línea (inline)<h1 style="color: blue; font-size: 16pt;"> … </h1>

Page 27: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 27

Definición de estilos para etiquetas HTML

• Para definir una etiqueta HTML usamos la sintaxis:

etiqueta {

estilo CSS 1;

estilo CSS 2;

...

}

• Podemos definir varias etiquetas a la vez separándolas con comas:

etiqueta1, etiqueta2, etiqueta3 {

estilos CSS;

}

Page 28: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 28

Definición de estilos para etiquetas HTML

• Definir etiquetas “dentro” de otras etiquetas.

contenedor etiqueta {

estilos CSS;

}

• Por ejemplo, definir el estilo de un enlace cuando esté dentro de un párrafo:

p a {

estilos CSS;

}

El estilo solo se aplicará cuando la etiqueta redefinida se encuentre dentro de la etiqueta contenedora.

Page 29: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 29

Identificadores y Clases

• Permiten crear clases de estilos aplicables a etiquetas HTML, con la diferencia de:

• Identificador: único en todo el documento HTML.

#identificador { estilos CSS; }

• Clases: pueden repetirse.

.clase { estilos CSS; }

• Los identificadores se suelen usar con etiquetas "neutras" como <div> o <span>, para marcar partes de un documento.

Page 30: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 30

Identificadores y Clases

• En HTML usamos “id” para asignar una clase tipo identificador y “class” para usar una clase:

<div id="capitulo">

<p>...</p>

<p class="destacado">....</p>

</div>

• En la hoja de estilos tendríamos:

#capitulo {

estilos CSS;

}

.destacado { estilos CSS;}

Page 31: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 31

Estilos CSS

• La sintaxis básica para definir un estilo es:

atributo: valor;

• Los estilos se separan con punto y coma (;).

• Después del atributo se ponen dos puntos (y no un igual).

• Unidades de medida: • píxeles (px)• puntos (pt)• centímetros (cm) • pulgadas (in)

Page 32: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 32

Estilos CSS básicos

• color: valor RGB | nombre de color (white, black, gray, blue, red, green, yellow)

color: #009900; color: red;

• font-size: xx-small | x-small | small | medium | large | x-large | xx-large | Unidades de CSS

font-size: 12pt; font-size: x-large;

• text-align: left | right | center | justify

text-align: right; text-align: center;

• background-color: Un color, con su nombre o su valor RGB

background-color: green; background-color: #000055;

• width o height: Unidades CSS | Porcentaje

width: 50px; width: 100%;

Page 33: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 33

Estilos para Cajas

CONTENIDO

margin

padding

border

Page 34: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 34

Pseudo-clases

• Permiten definir un estilo solo cuando suceda un determinado evento o se den unas

condiciones:

• a:hover - enlace con el puntero del ratón encima, pero no seleccionado.

• a:visited - enlaces ya visitados.

• Por ejemplo:

a:hover { color: blue; }

a:visited { color: darkgreen; }

Page 35: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 35

Capas (DIV)

• float: none | left | right

Sirve para alinear un elemento a la izquierda o la derecha de un elemento anterior.

• clear: none | right | left

Indica que no se permiten elementos por ese lado del objeto.

float: left; float: left; float: left;

clear: left;

Page 36: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 36

Capas (DIV)

• position:relative; - Su posición depende de la de los demás.

• position:absolute; - Coloca los elementos en una posición exacta.

• top, bottom, left, right - Para indicar la posición.

position: relative;top: 10px;left: 10px;

position: absolute;top: 10px;left: 10px;

Page 37: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 37

HTML 5• Introducción

• Navegadores

• Doctype

• Mejor estructura

• Canvas

• Geolocalización

• Almacenamiento Offline

Page 38: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 38

Introducción

• La quinta revisión del lenguaje de programación HTML pretende remplazar al actual

(X)HTML, actualizándolo a nuevas necesidades que demanda la web de hoy en día.

• Actualmente se encuentra en modo experimental, lo cual indica la misma W3C.

• Cambios en HTML5:

• Añade semántica y accesibilidad implícitas.

• Establece nuevos elementos y atributos que reflejan el uso típico de los sitios web

modernos.

• Otros elementos proporcionan nuevas funcionalidades a través de una interfaz

estandarizada, como los elementos <audio> y <video>.

• Algunos elementos de HTML 4.01 han quedado obsoletos (<font> y <center>).

Page 39: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 39

Navegadores que lo soportan

• De los navegadores de escritorio, el que mayor soporte da es Google

Chrome, seguido muy de cerca por Mozilla Firefox y Apple Safari.

• El que menor compatibilidad ofrece es Internet Explorer.

• Para comprobar la compatibilidad de un navegador podemos visitar

la Web “http://www.html5test.com/” donde se realiza un test de todas

las funcionalidades de HTML5.

• También existen librerías JavaScript que detecta si son compatibles

elementos de HTML5 y CSS3: http://www.modernizr.com

Page 40: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 40

Doctype

• El doctype es el encargado de indicarle al navegador el tipo de

documento que está abriendo, con el fin de renderizar la pagina de

manera correcta. Por ejemplo, el doctype de HTML 4 es:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

• Para HTML 5 el doctype se ha simplificado mucho y además es

compatible con las versiones anteriores de HTML:

<!DOCTYPE html>

Page 41: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 41

Mejor estructura

• Hasta ahora se utilizaba de forma abusiva <div> y tablas para

estructurar webs.

• HTML5 nos brinda nuevas etiquetas que mejoran esta estructuración.

• Introduce un nuevo nivel semántico que hace que la estructura de la

web sea más coherente y fácil de entender.

• Ventajas:

• Detección de secciones más importantes.

• Facilitar la tarea a los buscadores.

• Interpretación de sitios.

Page 42: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 42

Estructura en HTML

<div id=“header”>

<div id=“nav”>

<div id=“footer”>

<div id= “article”>

<div id=“section”>

<div id=“sidebar”>

Page 43: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 43

Estructura en HTML5

<header>

<nav>

<footer>

<article>

<section>

<sidebar>

Page 44: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 44

Canvas

• <canvas>: Entorno para crear imágenes dinámicas.

• Dispone de API en JavaScript para dibujado.

• El texto que escribamos entre la apertura y cierre de la etiqueta solamente será interpretado por

navegadores que no lo soporte.

<canvas id="myCanvas" width="360" height="240">

<p>Tu navegador no soporta canvas</p>

</canvas>

• El resto de trabajo se ha de realizar con código JavaScript.

• Primero debemos referenciar este elemento y adquirir su contexto (que de momento solo está

disponible para 2D):

var canvas = document.getElementById(’myCanvas’);

var context = canvas.getContext(’2d’);

Page 45: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 45

CanvasLos principales métodos disponibles en la API son:

• fillRect(x, y, width, height): rectángulo relleno de color según el estilo activado.

• strokeRect(x, y, width, height): dibuja solo el borde de un rectángulo.

• clearRect(x, y, width, height): borra el área indicada.

• beginPath(): inicializa el dibujado de un “trazo”.

• closePath(): cierra la figura creando una línea desde el último punto hasta el primero.

• moveTo(x, y): mueve el puntero del trazo hasta las coordenadas indicadas.

• lineTo(x, y): dibuja un trazo desde la posición actual hasta las coordenadas indicadas.

• stroke(): dibuja el trazo indicado desde el último “beginPath()”.

• fill(): cierra el trazo definido desde el último “beginPath()” y lo rellena.

Page 46: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 46

CanvasEjemplo:

// Primero definimos las propiedades con las que vamos a dibujar

context.fillStyle = ’#0000ff’; // color de relleno azul

context.strokeStyle = ’#ff0000’; // color de borde rojo

context.lineWidth = 4; // grosor de línea

// Y a continuación dibujar algunas figuras

context.fillRect (0, 0, 150, 50); // rectángulo relleno

context.strokeRect(0, 60, 150, 50); // rectángulo solo borde

context.clearRect (30, 25, 90, 60); // borrar área del canvas

context.strokeRect(30, 25, 90, 60); // Orden: izqda, arriba, ancho, largo

Page 47: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 47

Geolocalización

• Existen muchas formas de obtener la posición:

• Dirección IP, conexión de red inalámbrica, torre de telefonía móvil, GPS...

• HTML5 incorpora una nueva funcionalidad para facilitar esta tarea.

• Disponible a partir de Opera 10.6, Firefox 3.5, Chrome 5, Safari 5 e Internet Explorer 9.

if( navigator.geolocation )

{

navigator.geolocation.getCurrentPosition(showPosition);

}

function showPosition( position )

{

var lat = position.coords.latitude;

var lng = position.coords.longitude;

alert( "Latitud: " + lat + ", longitud: " + lng );

}

Page 48: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 48

Almacenamiento Offline

• HTML5 ofrece dos nuevas formas de almacenamiento offline:

• localStorage: almacenamiento local, persiste aún cuando se cierre el navegador.

• sessionStorage: almacenamiento por sesión, limitado a lo que dure la ventana (o

pestaña).

• Los datos se almacenan de forma muy sencilla, por pares clave/valor,

de la forma:

// Para almacenamiento persistente en local:localStorage.setItem("miValor", valor);

// Para almacenamiento por sesión:

sessionStorage.setItem("miValor", valor);

Page 49: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 49

Almacenamiento Offline

• Para recuperarlos los datos:

var miValor = localStorage.getItem("miValor");

var miValor = sessionStorage.getItem("miValor");

• Borrar los valores almacenados:

localStorage.remove("miValor");

localStorage.clear();

Page 50: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 50

CSS3• Bordes

• Fondos

• Texto

• Columnas

• Transiciones

Page 51: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 51

Introducción

• Soporte a nuevas necesidades de las webs actuales, sin tener que recurrir a trucos de

diseñadores o lenguajes de programación.

• Aunque CSS3 está todavía en fase de desarrollo, la mayoría de navegadores ya dan

soporte a casi todos los nuevos estilos, como Firefox, Chrome o Safari.

• Por el contrario Internet Explorer no lo ha hecho hasta la versión 9.

• Las principales propiedades nuevas en CSS3 son:

• Selectores de atributos y propiedades

• Nuevas pseudo-clases

• Formatos de color.

• Bordes.

• Fondos. imágenes de fondo

• Texto.

• Modelo de caja básico.

• Transiciones y transformaciones

Page 52: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 52

Bordes

CSS3 incorpora nuevas propiedades para dar formato a los bordes de una caja. Dado que todavía no lo soportan muchos navegadores, usaremos también las propiedades nativas para dar un mayor soporte (añadiremos los prefijos -webkit- y -moz-).• border-radius: permite crear cajas con esquinas redondeadas.

-webkit-border-radius: 30px;

-moz-border-radius: 30px;

border-radius: 30px;

• Además también podemos indicar cada uno de los bordes por separado:-moz-border-radius-topleft: 10px;

-moz-border-radius-topright: 20px;

-moz-border-radius-bottomright: 30px;

-moz-border-radius-bottomleft: 40px;

-webkit-border-radius: 10px 20px 30px 40px;

border-radius: 10px 20px 30px 40px;

Page 53: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 53

Bordes

• box-shadow: Permite dar sombra a elementos de bloque.

Tiene 4 atributos: la distancia horizontal de la sombra, la distancia vertical de

la sombra, el desenfoque (blur) y el color de la sombra.

• Podemos usar valores negativos para las distancias horizontal y vertical para

crear sombras en otros sentidos.

-moz-box-shadow:3px 3px 6px #888888;

-webkit-box-shadow:3px 3px 6px #888888;

box-shadow:3px 3px 6px #888888;

Page 54: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 54

Texto

Las nuevas propiedades de CSS3 para dar formato a textos son:

• text-shadow: Permite dar sombra a un texto. Sus propiedades son: distancia

horizontal, distancia vertical, desenfoque (blur) y color de la sombra.

text-shadow: 2px 2px 2px #9e9e9e;

filter: dropshadow(color=#9e9e9e, offx=2, offy=2);

• word-wrap: break-word; - Permite separar palabras muy largas dentro de

un elemento de bloque.

Page 55: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 55

Columnas

Nuevas propiedades nos permiten crear columnas directamente a partir de un texto:

• column-count: número de columnas en el que se va a dividir el texto.

• column-width: ancho de la columna (en unidades CSS).

• column-gap: espacio entre las columnas (en unidades CSS).

• column-rule: línea separadora entre las columnas, se define igual que un borde: ancho tipo color.

-webkit-column-count: 3;

-webkit-column-rule: 1px solid silver;

-webkit-column-gap: 10px;

-moz-column-count: 3;

-moz-column-rule: 1px solid silver;

-moz-column-gap: 10px;

column-count: 3;

column-rule: 1px solid silver;

column-gap: 10px;

Page 56: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 56

TransicionesSe pueden aplicar transiciones a la mayoría de propiedades. Tenemos que añadir los prefijos “-webkit-”, “-moz-” y “-o-” para dar un mayor soporte.

• transition: propertyName duration timingFunction delay;

• PropertyName: propiedad sobre la que se aplicará la transición (all, background, color, height, width, border, etc.).

• Duration: duración en segundos o milisegundos.

• TimingFunction: función de tiempo que seguirá la transición, indica los cambios de velocidad a lo largo de la animación: ease (default), linear, ease-in, ease-out, ease-in-out...

• Delay: retraso inicial en segundos o en milisegundos.

transition: all 1s linear 0.2s;

• Lo mejor es declarar la transición en el estilo base, sin pseudo-clases. De esta forma conseguiremos que se ejecute en ambas direcciones, por ejemplo:

.btn1 { background: #9c3; transition: background 0.3s ease;}.btn1:hover { background: #690; }

Page 57: Programación web para móviles - ua

Experto en Desarrollo de Aplicaciones para Dispositivos Móviles

© 2012-2013 Depto. Ciencia de la Computación e IAProgramación web para móviles Introducción - 57

¿Preguntas...?