Contenido

Gestión de eventos Touch del iPhone

18 Ago

+ 3

Hace ya más de un año hablamos, medio en cachondeo, sobre los nuevos eventos DOM de los nuevos dispositivos multitáctiles, como el iPhone o iPod Touch. En aquel artículo divagaba con un compañero de trabajo de la posibilidad de controlar estos eventos desde Javascript para así ampliar las opciones de las aplicaciones web para estos dispositivos.

Pues ya son una realidad, gracias a las opciones que la gente de Apple nos pone a nuestra disposición, podemos gestionar estos eventos fácilmente.

// Inicio del evento Touch
document.addEventListener('touchstart', function(e) {}, false);
// Durante el evento Touch
document.addEventListener('touchmove', function(e) {}, false);
// Termina el evento Touch
document.addEventListener('touchend', function(e){}, false);

Como podemos ver en el código anterior nos encontramos 3 nuevos eventos , ‘touchstart‘, ‘touchmove‘ y ‘touchend‘ que se encargan de gestionar los 3 estados en los que el evento provocar. Al igual que toda la gestión de eventos DOM seguimos una misma estructura:

document.addEventListener('EVENTO', ACCION, CAPTURE);

La ACCION que definimos será una función que recibirá por parámetro el elemento event con la información necesaria sobre el evento.

document.addEventListener('touchstart', function(e) {
        // Posición inicial del evento touch
        var touch = e.touches[0];
	// Posición X
	pageX = touch.pageX;
	// Posición Y
	pageY = touch.pageY;
}, false);

Para repescar la información del evento debemos usar el array de touches en el que encontraremos la información necesaria para conocer la posición, inicial en este caso, de nuestro movimiento. Los atributos pageX y pageY nos dan las coordenadas X,Y de nuestro dedo en la pantalla.

Conociendo esto podemos hacer un pequeño experimento:

// Valores iniciales
var pageX = pageY = 0;
// Sensibilidad en pixels
var sensibilidad = 10;
// Evento START
document.addEventListener('touchstart', function(e) {
	// Posición inicial del evento touch
	var touch = e.touches[0];

	// Posición X
	pageX = touch.pageX;

	// Posición Y
	pageY = touch.pageY;
}, false);

// Evento MOVE
document.addEventListener('touchmove', function(e) {
        // Evitamos que se mueva la página
        e.preventDefault();
	var touch = e.touches[0];
	// Variación de la posición Y
	var Y = pageY - touch.pageY;

	// Variación de la posición X
	var X = pageX - touch.pageX;

	// Dirección Y
	if (Y < sensibilidad) dirY = 'abajo';
	else if (Y > sensibilidad) dirY = 'arriba';
	else dirY = 'centro';

	//Dirección X
	if (X < sensibilidad) dirX = 'derecha';
	else if (X > sensibilidad) dirX = 'izquierda';
	else dirX = 'centro';

	document.getElementById("info").innerHTML = '<h2>' +dirY+ " " + dirX + '</h2>';
}, false);

// Evento END
document.addEventListener('touchend', function(e){return;}, false); // No hacemos nada

Si tienes un iPhone o un iPod Touch puedes verlo funcionando en un ejemplo que he montado en 2 minutos.

Ocultar la barra de navegación en Mobile Safari

17 Ago

+ 6

Si estamos desarrollando una aplicación para el iPhone, probablemente nos guste la idea de ocultar la barra de navegación, en muchas aplicaciones web diseñadas para estos dispositivos ya lo podemos ver, entre ellas el iMeneame.

Ocultándola, ganamos espacio de lectura inmediatamente después de acabar la carga de la página, lo que en ciertas aplicaciones, permite una o dos líneas más de contenido. La barra no desaparece, sino que hacemos que el scroll baje hasta ocultarla, de esa forma podemos disponer de ella para cuando la necesitemos simplemente dirigiéndonos a la parte superior de la página.

El javascript necesario

addEventListener("load", function() { setTimeout(hideURLbar, 0); }, false);
function hideURLbar(){ window.scrollTo(0,1);}

Como podemos ver, únicamente se trata de un función que nos coloca el scroll de la página en la posición indicada al ejecutarse el evento onload. Añadiendo esto a nuestro fichero JS tendremos la barra de navegación oculta. Más fácil imposible :D

Aplicación nativa de Worpdress para iPhone disponible

22 Jul

+ 5

Ya tenemos la opción de descargar la aplicación nativa con la que podremos controlar nuestro Wordpress desde nuestro iPhone/iTouch.[Descargar]

Administra tu blog nativamente desde el iPhone

11 Jul

+ 11

Con la salida del nuevo iPhone 3G y la apertura del App Store con aplicaciones nativas para este dispositivo, Wordpress ha aprovechado y ha creado una aplicación con la que podremos administrar nuestro Wordpress sin necesidad de usar Safari para ello.

ss1ss2ss3

[Ver video de demostración]

Framework CSS y XHTML para desarrollar en iPhone y iPod Touch

7 Jul

+ 6

Diego Martín Lafuente (aka MiniD) nos ha sorprendido esta madrugada con la presentación de un framework CSS/XHTML para desarrollar aplicaciones web para el iPhone e iPod Touch.

IMG

El framework, sigue la línea de iUI desarrollado por Joe Hewitt, emulando una aplicación nativa evitando romper el equilibrio que Apple consiguió con su dispositivo.

Gracias a que el iPhone/iTouch utiliza Safari, nos permite utilizar las propiedades en selectores de CSS3 extendiendo las posibilidades que Diego ha sabido aprovechar, que junto a un HTML estandarizado y semánticamente correcto nos permite hacer una aplicación de cálidad con muy poca inversión de tiempo.

Diego nos ha dejado una demo para que veamos que ta ha quedado, sinó dispones de un iPhone/iTouch, puedes visualizarlo correctamente con Safari. Un 10 Diego (No serás Maradona??)

Nuevo Google Reader para el iPhone/iPod Touch

13 May

+ 4

Hace unos meses hablabamos de los cambios en Google Reader para adaptarlo a las posibilidades del iPhone/iPod Touch.

reader4iphone.jpg

Estás mejoras ayudaban a los usuario de estos dispositivos a ver claramente los artículos sindicados sin tener que ampliar o reducir el contenido para poder leerlo.

Ahora la gente de Google Reader estrena un nuevo rediseño enfocado más aún a facilitar esta tarea, mediante el uso de Ajax, consigue mitigar las recargas de páginas y se centra únicamente en el contenido.

mobilescroll-small

Podemos ver una demos, pulsando aqui.

WPTouch, el nuevo theme para iphone

30 Abr

+ 15

WPTouch es un nuevo theme para Wordpress pensado y adaptado para los dispositivos de Apple, especialmente los iPhone e IPod Touch.

WPTouch

Al igual que otros que ya hemos visto, este adapta el aspecto de nuestro Wordpress para que encaje perfectamente en estos dispositivos. Además WPTouch nos alegra con una serie de funcionalidades interesates:

  • Ajax y efectos, con Prototype + Script.aculo.us
  • Páginas de busqueda, login, archive, categories, pages, tags.
  • Sistema navido de enlaces sociales
  • Sistema de personalización desde el panel de administrador
  • Paginación mediante Ajax
  • Soporte de envio de mails nativo del iPhone/iTouch
  • Insercción de comentarios mediante Ajax
  • Personalización de iconos
  • Sistema de control de las páginas que mostremos y las que no.
  • Interacción con Flickr.

Instalación

Como todos los themes y plugins, el sistema de instalación es relativamente sencillo.

  1. Descargamos el fichero
  2. Subimos a la carpeta wp-content/plugins/ de nuestro Wordpress
  3. Activamos desde el panel de administración
  4. Lo disfrutamos.

Configuración

WPTouch 2

Todas las posibles configuraciones las encontraremos en Opciones > WPTouch.

Descargar

Versión 1.0

La documentación de jQuery en tu iPhone/iTouch

25 Abr

+ 2

Útil adaptación de la documentación de jQuery para que podamos verla perfectamente desde nuestro iPhone/iTouch.

aNieto2k ahora personalizada para iPhone e iTouch

25 Mar

+ 24

Hace tiempo que quería hacer una versión personalizada para los usuarios que visitan el blog desde el iPhone e iTouch, aprovechando el descubrimiento de Massive News “Mobile Edition” he pensado en hacer uso de él y condicionar la visualización del blog dependiendo del dispositivo desde el que se ve.

anieto2k_iphone.jpg

Usando el fichero my-hacks.php he añadido una condición que me indica si el usuario está accediendo desde un iPhone/iPod Touch y en caso afirmativo le digo que para ese usuario me cargue el theme Massive News “Mobile Edition”.

<?php
function is_iphone($user_agent) {
        return (bool)eregi('(iPhone|iPod)', $user_agent);
        }

function theme_for_iphone($tpl) {
        if (!is_iphone($_SERVER['HTTP_USER_AGENT'])) return $tpl;
        else return "mobile";
}

add_filter('template', 'theme_for_iphone');
?>

 Como podemos ver, es un código bastante claro que me ayuda a distinguir entre iPhone/iPod y el resto.

Para que todo funcione correctamente, he introducido el theme en el directorio wp-content/themes/ y he activado el plugin wp-pagenavi, que se complementa perfectamente para mejorar gráficamente la paginación del theme.

Por el momento no he podido hacer que funcione con 1BlogCacher o WP-Cache, pero solo es cuestión de tiempo :D

Añade un icono webclip para el iPod Touch a tu web

16 Ene

+ 8

Ayer, en la keynote de Apple, además de presentar el Macbook Air, Apple presentó la nueva actualización de pago para el iPod Touch. Esta actualización, permite disponer de las aplicaciones que tiene por defecto el iPhone y “Home Screen”.

ipod-touch-features1.png

Home Screen te permite organizar los iconos de la pantalla, cambiar los elementos del dock y añadir hasta 8 páginas de inicio llamadas WebClip, simplemente son enlaces directos a tus páginas preferidas desde el menú principal de dispositivo.

Entre las demás mejoras, Safari sufre una modificación y se le incorpora la posibilidad de añadir al menú principal directamente desde el menú de inferior. Lo que facilita la insercción de nuestros WebClip en nuestro iTouch.

add_to_home_ipod_touch_1.jpgadd_to_home_ipod_touch_2.jpg

Para hacer que nuestro sitio esté preparado para esta nueva funcionalidad, tendremos que añadir el siguiente código y cargar una imagen que será importada como icono para lanzar nuestra aplicación.

<head>
    <title>aNieto2k</title>
    <link rel="apple-touch-icon" href="/anieto2k-webclip.png"/>
</head>

La imaden que crearemos tendrá que ser un PNG de 57×57 pixeles (si el tamaño es diferente, se cortará o expandirá lo que haga falta), y tendrá el nombre indicado en el href="" de nuestro <link />.