Web para iPhone (I)

manuales - iPhone

Si quieres iniciarte en el mundo del diseño de webs para iPhone / iPod touch y usar las ventajas que ofrece su navegador, creando una web a medida de ellos, estos manuales de sumolari.com te explicarán de manera muy sencilla y clara, como hacer esas pequeñas cosas que quedan tan bien como en las webs de gmail, yahoo o devianart para el iphone :)

fuente: http://sumolari.com/disenando-nuestra-web-para-el-iphone-parte-1/

El iPhone y el iPod Touch disponen de un navegador realmente bueno para tratarse de dispositivos móviles. Mobile Safarimuestra las páginas web prácticamente igual que lo haría su versión de escritorio, lo que hace que en muchos casos no sea necesario hacer un diseño específico de nuestra web para estos dispositivos.

Sin embargo, el tamaño de la pantalla del iPhone y del iPod Touch (a partir de ahora hablaremos sólo de iPhone para abreviar) hace que se nos haga incómodo navegar, teniendo que hacer zoom en múltiples ocasiones, lo que entorpece bastante la navegación. Afortunadamente, adaptar nuestra página web al iPhone es una tarea relativamente sencilla y gracias a Mobile Safari podemos lograr hacer que nuestra web tenga el aspecto de una aplicación nativa del iPhone.

Como podréis adivinar por el título, el tutorial está dividido en partes (que iré redactando poco a poco y publicando una vez las haya acabado de escribir). Esta primera parte la dedicaré a explicar cómo preparar nuestro entorno de desarrollo.

Servidor local

Antes de ponernos a diseñar necesitaremos instalar un servidor en nuestro equipo. Hay muchas opciones, sin embargo yo me quedaría con Apache + MySQL + PHP (conocido como WAMP, MAMP o LAMP, dependiendo de si se utiliza WindowsMac oLinux).

En Windows solía usar WampServer, una aplicación gratuita y fácil de instalar y administrar, y ahora en Mac utilizo la versión gratuita de Mamp. Como hace tiempo que no toco Linux, lo dejaré de lado en este tutorial. De todos modos, más adelante veréis que algunas de las herramientas útiles para comprobar nuestro diseño no están disponibles para Linux (algunas ni siquiera para Windows).

Una vez instalado el servidor, basta con que accedamos a localhost, 127.0.0.1nuestra dirección IP. Los tres métodos deberían mostrarnos exactamente lo mismo.

Mobile Safari

Configurando Safari

Configurando Safari

Ya tenemos el servidor local, con lo que podemos trabajar con MySQLPHP y si nuestro CMS está escrito en PHP, podremos instalarlo en nuestro servidor local y diseñar directamente para él (yo, por ejemplo, suelo diseñar directamente paraWordPress). Ahora necesitamos un navegador que funcione de forma similar a Mobile Safari para comprobar nuestro trabajo, y para ello tenemos 3 opciones diferentes.

Si disponemos de un iPhone lo tenemos muy fácil. En la barra de direcciones basta con introducir la IP de nuestro equipo servidor y listo. Recordad que ambos dispositivos deben estar en la misma red.

En caso de que no dispongamos de un iPhone pero sí de un Mac, tenemos la opción de hacernos desarrolladores para el iPhone, con lo cual tendremos acceso al iPhone Simulator, un simulador del iPhone que, adivinad… tiene Mobile Safari, con lo que podremos probar nuestros diseños en una simulación del iPhone. No es una opción demasiado interesante si no somos desarrolladores, pero si ya lo somos, siempre tenemos la posibilidad de usar el simulador para probar páginas web en lugar de aplicaciones.

Por último, tenemos la opción de usar Safari cambiando el agente de usuario por el del iPhone. Esto es algo que se puede hacer también en otros navegadores, sin embargo como SafariMobile Safari parten del mismo motor de renderizado, es más conveniente usar estos, ya que así nos aseguramos de que lo que vemos durante las pruebas es lo más parecido al resultado final.

Un diseño sólo para iPhone

Bien, ahora ya podemos comenzar a diseñar para el iPhone y lo primero que deberíamos hacer es asegurarnos de que nuestro diseño especial sólo se use en el iPhone. Para ello recurriremos al tutorial que publiqué la semana pasada sobre cómo detectar navegadores mediante PHP. De momento nuestro diseño podría comenzar así:

 

01 function is_browser($name, $version='') {
02 $user_agent = $_SERVER['HTTP_USER_AGENT']; // Cargamos el UserAgent en una variable
03 $wtr = false; // Esta variable es la que indica si se ha accedido con el navegador que buscamos o no. Por defecto es false, sólo cambia si se accede con el navegador buscado
04 $wtmb = ''; // Esta variable almacena el navegador del dispositivo móvil (sólo si buscamos un navegador de dispositivo móvil, esto no incluye ni Android ni iPod ni iPhone)
05 // Primero veamos a quién buscamos y luego comprobemos si es él
06 switch ($name) {
07 // Caso Internet Explorer
08 case 'IE':
09 if (strrpos($user_agent, "MSIE") === false) {} else {
10 if ($version != '') {
11 if (strrpos($user_agent, 'MSIE '.$version) === false) {} else { $wtr = true; }
12 } else {
13 $wtr = true;
14 }
15 }
16 break;
17 // Caso Firefox
18 case 'FF': if (strrpos($user_agent, "Firefox") === false) {} else { $wtr = true; } break;
19 // Caso Opera
20 case 'OP': if (strrpos($user_agent, "Opera") === false) {} else { $wtr = true; } break;
21 // Caso Konqueror
22 case 'KQ': if (strrpos($user_agent, "Konqueror") === false) {} else { $wtr = true; } break;
23 // Caso Chrome
24 case 'CH': if (strrpos($user_agent, "Chrome") === false) {} else { $wtr = true; } break;
25 // Caso Safari
26 case 'SF': if (strrpos($user_agent, "Safari") === false) {} else { $wtr = true; } break;
27 // Caso iPod
28 case 'IPD': if (strrpos($user_agent, "iPod") === false) {} else { $wtr = true; } break;
29 // Caso iPhone
30 case 'IPH': if (strrpos($user_agent, "iPhone") === false) {} else { $wtr = true; } break;
31 // Caso iPod o iPhone
32 case 'IPO':
33 if (strrpos($user_agent, "iPod") === false) {} else { $wtr = true; }
34 if (strrpos($user_agent, "iPhone") === false) {} else { $wtr = true; }
35 break;
36 // Caso Android
37 case 'AD': if (strrpos($user_agent, "Android") === false) {} else { $wtr = true; } break;
38 // Caso navegador móvil
39 case 'MB':
40 $mua = array(
41 'PIE4' => 'compatible; MSIE 4.01; Windows CE; PPC; 240x320',
42 'PIE4_Smartphone' => 'compatible; MSIE 4.01; Windows CE; Smartphone;',
43 'PIE6' => 'compatible; MSIE 6.0; Windows CE;',
44 'Minimo' => 'Minimo',
45 'OperaMini' => 'Minimo',
46 'AvantGo' => 'AvantGo',
47 'Plucker' => 'Plucker',
48 'NetFront' => 'NetFront',
49 'SonyEricsson' => 'SonyEricsson',
50 'Nokia' => 'Nokia',
51 'Motorola' => 'mot-',
52 'BlackBerry' => 'BlackBerry',
53 'WindowsMobile' => 'Windows CE',
54 'PPC' => 'PPC',
55 'PDA' => 'PDA',
56 'Smartphone' => 'Smartphone',
57 'Palm' => 'Palm'
58 );
59 foreach($mua as $nav => $ua){ if(strstr($user_agent, $ua) != false) { $wtmb = $nav; } }
60 if ($wtmb != '') { $wtr = true; }
61 break;
62 // Caso genérico
63 default: $wtr = false; break;
64 }
65 return $wtr;
66 }
67
68 if (is_browser('IPO')) {
69 /* Diseño especial para el iPhone / iPod Touch */
70 } else {
71 /* Diseño general para el resto de navegadores */
72 }

Y esto es todo de momento.

Más adelante…

En las próximas partes comenzaremos a diseñar para el iPhone. Explicaré desde cómo aprovechar las posibilidades de Mobile Safari para ahorrarnos trabajo (por ejemplo, creando degradados con CSS en lugar de con imágenes) hasta qué medidas usar, cómo detectar rotaciones del dispositivo (si está en vertical u horizontal)… en resumen, cómo simular la interfaz de una aplicación.

Eso sí, habrá unas cuantas partes más. En principio no tengo decidido cuántas habrá en total (ya he comentado al principio que no las tengo escritas), así que podéis pedir en los comentarios que me centre en alguna cosa en especial.