Aprende cómo desarrollar para el iPhone

Hoy les mostraré cómo crear una página alternativa y una hoja de estilo para el iPhone y el iTouch. Cubriremos cómo detectar si el usuario está utilizando un iPhone para ver su página, así como la orientación del dispositivo, ya sea horizontal o vertical. Para lograr esto, utilizaremos javascript y algunas etiquetas CSS específicas para dispositivos móviles de Safari..

Empezando

Vamos a comenzar con 2 psd que hice y conseguiremos que trabajen en una página de iPhone. Estoy usando imágenes para el fondo y el encabezado, aunque podría usar colores rectos en lugar de imágenes. El lado positivo de no usar imágenes es que, obviamente, se carga más rápido, pero también cuando se cambia entre horizontal y vertical, las imágenes tardan un momento en cargarse, dependiendo de su tamaño. Puede encontrar los archivos psd de origen aquí o puede crear los suyos propios. Algo a tener en cuenta es que estamos construyendo una página específicamente para el iPhone o iTouch. Si no tiene el dispositivo, puede descargar el iPhone SDK libremente desde Apple e incluye un simulador de iPhone. Si desea detectar el iPhone en la página de su navegador estándar y cargar el iPhone css y html a través de declaraciones condicionales o enviar al usuario a una página completamente diferente, use el siguiente código:

 

El código explicado anteriormente:

  • Línea 2: cree una variable que contenga el tipo de navegador del usuario (entre otras cosas)
  • Línea 3: Asigne un valor al tipo de navegador si el navegador de iPhone está presente.
  • Línea 4 - 8: una declaración if que redirige al usuario a una "página con formato de iPhone" si la variable "users_browser" devuelve un valor (lo que significa que el usuario está usando un iPhone o iTouch para ver la página actual).

Debajo del código se usarán las declaraciones condicionales html para ocultar el código de un navegador normal.

     

Paso 1: El HTML

Así que ahora sabemos cómo dirigir al usuario a la página de su iPhone si están en un dispositivo iPhone o iTouch. Ahora, comenzaremos a trabajar en la página HTML del iPhone; El siguiente código tiene algunas diferencias clave con respecto a un documento de transición XHTML normal..

     Mi página de iPhone  

El código arriba explicado línea por línea:

  • Línea 1 - 5: Este es el estándar 1.0 XHTML Transitional Doctype. Nada especial aun.
  • Línea 6: esta línea es específica para iPhone y iTouch. Establece los valores iniciales para la ventana gráfica en el navegador del dispositivo. width = device-width indica que el ancho de la página sea el mismo ancho del dispositivo. la escala inicial y la escala máxima establecen el punto de inicio para el zoom de la página, la escala máxima es la escala del tamaño de la caña de la página.
  • Línea 9: este elemento de enlace apunta al icono de páginas web. esto se usa cuando un usuario guarda la página en su "Pantalla de inicio".
  • Línea 10: un elemento de enlace apunta a la hoja de estilo del iPhone. Este elemento tiene asignado el id orient_css. Esto es para que podamos señalarlo con javascript para cambiar el archivo css al que se refiere cuando se trata de ajustar el diseño para la orientación del dispositivo..

Paso 2: Extender los Divs

Ahora continuamos con el resto del html antes de agregar cualquier función de javascript para la detección de orientación. Comienza con terminar la cabeza y luego comienza el cuerpo. En el elemento body agregamos onorientationchange = orient () ;. Así que solo mentí, eso es un poco de javascript, pero esto es necesario para llamar a nuestra función "orientar" (revisaremos esto un poco) cuando el dispositivo detecte una orientación diferente.

   

Este es el área de contenido principal de la página..

Usando css y javascript podemos manipular cualquiera de estos divs usando un archivo css alternativo. Los archivos css en este proyecto son para vistas horizontales y verticales..

Un poco más de texto de relleno aquí para mostrar la página.

Paso 3: La Orientación Javascript

En el encabezado de la página querrá colocar el código que se ve a continuación.

 

switch (window.orientation) funciona fuera del método onorientationchange () en el elemento body. Esto verificará si la rotación actual es igual al "valor de caso", si devuelve verdadero, ejecutará lo que está después de los dos puntos. Después de que una orientación ha sido igualada, se sale de orient () ;. window.onload () ejecuta la función orientar cuando la página termina de cargarse.

Después de cada caso (valor): tenemos javascript que apunta a la identificación de los elementos de enlace a la que se adjunta nuestro archivo css. Dependiendo del valor del caso, 0, 90 o -90 (también hay 180, pero no es compatible con el iPhone en este momento) el archivo css vertical o landscape se adjunta a la etiqueta href en el elemento de enlace. 0 está en posición vertical (retrato), 90 es horizontal en sentido contrario a las agujas del reloj. -90 es horizontal girado en el sentido de las agujas del reloj y 180, aunque no es compatible, representaría que el dispositivo está boca abajo.

Paso 4: Implementando el CSS

Incluso con todo este código, la página no hace mucho. Eso es porque tenemos que agregar imágenes de fondo y darle estilo a todo. Crearemos 2 archivos css, uno llamado iphone_portrait.css y otro llamado iphone_landscape.css. Colocaremos el archivo css vertical en el elemento de enlace como el archivo css predeterminado para usar.

 cuerpo fondo-color: # 333; margen superior: -0px; margen izquierdo: -0px;  #wrap desbordamiento: auto; ancho: 320px; altura: 480px;  #header background: url (… /images/header.jpg); repetición de fondo: no repetición; altura: 149px;  #content background: url (… /images/middle.jpg); Repetición de fondo: repetir y; margen superior: -5px;  p margen: 5px; relleno-izquierda: 25px; ancho: 270px; tamaño de fuente: 10px; Familia tipográfica: arial, "san serif";  #bottom background: url (… /images/bottom_corners.jpg); repetición de fondo: no repetición; altura: 31px; margen superior: -5px; 

El código anterior es para el archivo iphone_portrait.css y es bastante sencillo. Algunas cosas a tener en cuenta son:

  • en la descripción de estilo de envoltura desbordamiento: auto se asegura de que los elementos flotantes se mantengan dentro de la división de envoltura para mantener la página limpia y ordenada.
  • Las dimensiones de la página son 320 px de ancho por 480 px de alto. Asegúrese de indicar esto en el div envoltura.

A continuación se muestra el código que se colocará dentro del archivo iphone_landscape.css. Las únicas diferencias entre los archivos css verticales y horizontales son las imágenes de fondo, las dimensiones de ajuste se invierten y los márgenes se ajustan en consecuencia.

 cuerpo fondo-color: # 333; margen superior: -0px; margen izquierdo: -0px;  #wrap desbordamiento: auto; ancho: 480px; altura: 320px;  #header background: url (… /images/l_header.jpg); repetición de fondo: no repetición; altura: 120px;  #content background: url (… /images/l_middle.jpg); Repetición de fondo: repetir y; margen superior: -5px;  p margen: 5px; relleno-izquierda: 25px; ancho: 370px; tamaño de fuente: 10px; Familia tipográfica: arial, "san serif";  #bottom background: url (… /images/l_bottom_corners.jpg); repetición de fondo: no repetición; altura: 37px; margen superior: -5px; 

Si está usando mis imágenes de fondo cortadas, su página debería verse como la imagen de abajo cuando está en modo retrato.

O bien, en modo paisaje?

A dónde ir desde aquí?

Así que ahora que tiene una página con formato y estilo para iPhone e iTouch, ¿qué más puede hacer? Bueno, si su página está destinada a ser más una aplicación web, es posible que desee revisar el IUI de Joe Hewitt, que es un marco que hace que sus páginas se vean como aplicaciones nativas de iPhone o iTouch. También tenga en cuenta que puede establecer 3 archivos css específicos; para que pueda tener un archivo css que estilice la página si se gira en el sentido de las agujas del reloj a horizontal y nuevamente un archivo diferente para cuando se gire en sentido contrario a las agujas del reloj en horizontal. Esto permitirá algunos resultados interesantes. Buena suerte!