Emulador iOS 6, Simulator de Xcode y Web Inspector

post - - 2 replies - share
IOS6, XCode, Web inspector

Vaya “title” me acabo de marcar! :D

Los usuarios de Apple suele tener actualizado su sistema operativo, tanto de escritorio MacOS como de dispositivos móviles iOS. Supongo que su facilidad en los procesos de actualización tiene mucho que ver en ello.

Por suerte la compi @chavalina tenía todavía su iPad con iOS6 y pudo reportarme un fallo de CSS que curiosamente solo se producía en esa versión, tanto con Chrome como Safari. Sin embargo en iOS7 y bajo los mismos navegadores todo perfecto, también en el resto de navegadores y dispositivos.

Ya puestos en contexto vamos al grano.
Como emulador iOS 6 si ya tenemos actualizados nuestro iPad podemos recurrir a Xcode. Tenemos que ir a “Preferences > Downloads > Components” y descargar “iOS 6.1 Simulator“. Nos pide instalar y reiniciar la aplicación Xcode. A continuación creamos un proyecto Xcode “vacio”, al lado de los controles principales (Play y Stop) tenemos ahora la opción para seleccionar como sistema operativo iOS6.1 y hacemos clic en el botón Play.

Xcode con iOS6

Una vez emulado podemos usar la fabulosa herramienta Web Inspector de Safari, menú: Develop > iPad Simulator.

Web inspector

A partir de aquí a emular, probar y solucionar. Por curiosidad, os cuento que al final en mi caso, el problema era de CSS con la forma de interpretar -webkit-linear-gradient por parte de iOS6.

CSS adaptado al navegador con PHP

post - - 4 replies - share

Tener diferentes hojas de estilo dependiendo del navegador me parece algo horrible :( .  Pero si por algún motivo es necesario, podemos emplear una forma bastante fácil y limpia mediante PHP (Ref. Andrew Martin).

Para ello, (1) pondremos un CSS base que sea compatible para todos los navegadores y a continuación (2) haremos uso del array $_SERVER y del campo donde se cargan las cabeceras con información del navegador del usuario “HTTP_USER_AGENT”.

1. Código CSS base:

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

2. Código PHP:

$browser = $_SERVER['HTTP_USER_AGENT'];	
if (preg_match('/MSIE.8/i', $browser)) { echo ''; } 
elseif (preg_match('/MSIE.7/i', $browser)) { echo ''; }
elseif (preg_match('/MSIE.6/i', $browser)) { echo ''; }
elseif (preg_match('/MSIE.9/i', $browser)) { echo ''; }
elseif (preg_match('/Firefox.2/i', $browser)) { echo ''; }
elseif (preg_match('/Firefox.3.5/i', $browser)) { echo ''; }
elseif (preg_match('/Firefox.3/i', $browser)) { echo ''; }
elseif (preg_match('/Chrome/i', $browser)) { echo ''; }
elseif (preg_match('/Safari/i', $browser)) { echo ''; }
elseif (preg_match('/Opera/i', $browser)) { echo ''; }
else { echo ''; }

El código escribirá el link con la hoja de estilo correspondiente al navegador empleado por el usuario basándose en la comparación de cadenas.

Si lo que queremos es únicamente discernir la versión de MSIE, podemos también recurrir a los comentarios condicionales de Internet Explorer.

Para hacer las pruebas necesarias con los diferentes navegadores, podemos descargarlos o emularlos.

Emular IE8/IE7/IE6, Firefox, Safari, Chrome, Opera

link - - 2 replies - share

Al hilo del anterior post “Virtualización de WinXP + IE6, probando nuestro CSS” me ha llegado un comentario (gracias d2f) con otra herramienta que en su día deje pasar de largo (craso error Javi).

Xenocode nos permite en su web descargarnos un plugin y emular estos navegadores sin más complicaciones.

¿Un problema de usabilidad?

Hace un tiempo visite este sitio web, y me pareció “extraño” empezando por los banners y siguiendo por la estructura y diseño. Luego tras encontrar la web con todos los navegadores hice clic en cada título, por ejemplo “internet explorer 6″ y esto me llevaba a la web de Microsoft, un simple enlace. Así que me fui y hasta hoy jejeje :D

Como explicación creo que se debe a la comodidad de hacer clic en el texto del navegador (un poco más grande) y no en el botón verde que simula el “ON” pensando que sería una imagen y que al ir unidas llevaría al mismo destino.

Me gustaría saber a cuantos les ha pasado lo mismo :)   (no creo que sea el único rarito)