Este rápido consejo le presentará algunas de las potentes funciones disponibles para probar y depurar aplicaciones con Xcode y el simulador de iOS..
Durante años, los desarrolladores lucharon con la depuración de aplicaciones basadas en CoreLocation en el simulador debido a la falta de soporte de simulador incorporado para coordenadas personalizadas. Si bien los proyectos como FTLocationSimulator fueron de gran ayuda, muchos de nosotros todavía nos quedamos con la envidia de los desarrolladores de Android, que podrían establecer fácilmente la ubicación del simulador de Android utilizando las herramientas DDMS incluidas..
Afortunadamente, esos días de silenciosa envidia se han ido por un tiempo. Con el lanzamiento de Xcode 4.2, los desarrolladores de iOS pudieron simular una ubicación de dispositivo predeterminada para varias ciudades de todo el mundo. Este enfoque aún existe y se puede hacer seleccionando "Editar esquema":
Y luego navegue a la pestaña "Opciones" de la ventana emergente:
Sin embargo, las versiones recientes del simulador de iOS han hecho que sea aún más fácil cambiar la ubicación simulada, y ahora puede lograr esto en tiempo de ejecución.
Después de haber iniciado el simulador, seleccionando Depurar> Ubicación producirá las siguientes opciones de menú:
Como puede ver, ahora puede configurar fácilmente sus propias coordenadas utilizando la opción "Ubicación personalizada":
Por supuesto, esto requiere que realmente sepa las coordenadas exactas de la ubicación que desea simular, y no solo la dirección de la calle. El proceso de generación de coordenadas de latitud y longitud desde una dirección se conoce como geocodificación, y hay una serie de sitios web gratuitos y aplicaciones iOS que generarán coordenadas desde una dirección de calle para usted. Vale la pena mencionar la aplicación gratuita de iOS Geocode Something así como el sitio web geocoder.us, y este mashup geocoder es una forma rápida y fácil de obtener coordenadas directamente desde Google Maps.
El simulador también incluye una serie de ubicaciones y rutas predefinidas que puede utilizar para probar sus propias aplicaciones. Una breve descripción de cada uno se proporciona a continuación.
Al seleccionar "Apple" en el menú Ubicación, se establecerá la ubicación actual en Apple HQ en 1 Infinite Loop, Cupertino, CA. Para los usuarios de las primeras versiones de Xcode, reconocerá que esta es la única ubicación originalmente admitida por el Simulador.
Si selecciona la opción "City Bicycle Ride", el marco de CoreLocation comenzará a generar coordenadas que siguen una ruta preestablecida cerca de Apple HQ. La opción de bicicleta hará que se realicen actualizaciones con una velocidad de aproximadamente 5 a 7 metros por segundo..
La opción "City Run" es como la configuración de "City Bicycle Ride", con la excepción de que las actualizaciones se realizan con una velocidad de seguimiento de aproximadamente 3 a 4 metros por segundo.
La opción "Freeway Drive" difiere de las dos anteriores tanto en la ruta seguida como en la velocidad en metros por segundo. El camino se mueve a lo largo de la Autopista Junipero Serra, justo al norte de la sede de Apple, y la velocidad generalmente parece estar entre 20 y 35 metros por segundo..
En teoría, esta opción debería generar coordenadas vinculadas a las ubicaciones de Apple Store. Sin embargo, con el simulador de iOS 6.0 y Xcode 4.5, esta opción parece estar muy dañada. En mi experiencia al probar esto, las coordenadas siempre parecen comenzar alrededor de 33.7718 N, 112.9031 W, y luego aumentan gradualmente en las lecturas Norte y Oeste, moviendo la ubicación actual en un camino diagoal a ninguna parte. He enviado esto como un informe de error a Apple, por lo que si otros están experimentando el mismo problema, espero que se resuelva pronto!
Debido a que la aplicación Apple Maps puede ejecutarse en el simulador, es fácil probar cualquiera de las opciones anteriores. Simplemente inicie el simulador de iOS como lo haría normalmente, configure su ubicación simulada y luego inicie la aplicación Mapas.
Con el SDK de iOS 6 ahora puede ejecutar aplicaciones que usan Mapas directamente en el simulador!
Otra gran característica del simulador de iOS es la capacidad de colocar animaciones en cámara lenta con el Depurar> Alternar animaciones lentas opción de menú.
Hacerlo puede ser extremadamente útil cuando intenta crear una animación UIKit personalizada y necesita asegurarse de que cada cuadro se vea bien..
Quizás un uso más práctico de esta función es reducir la velocidad de las animaciones que se producen al girar el dispositivo para pulir las animaciones de cambio de orientación (consulte la Sesión 517 de WWDC 2012 para obtener más información sobre cómo puede pulir las animaciones de orientación).
los Depurar La opción de menú también proporciona la habilidad increíblemente útil para colorear vistas en tiempo real:
Puede usar estas opciones para identificar visualmente capas combinadas, imágenes copiadas, imágenes desalineadas y vistas representadas fuera de la pantalla.
Esta es una característica útil para depurar sus propias aplicaciones, y también puede ser útil para examinar las aplicaciones predeterminadas en el simulador. La siguiente captura de pantalla muestra la aplicación Maps y la aplicación Passbook con la opción "Color Blended Layers" seleccionada:
Si bien nada reemplazará la experiencia de probar aplicaciones en hardware real, el simulador ha avanzado mucho en los últimos años con la emulación de eventos del mundo real. De hecho, algunos eventos, como alternar una barra de estado "en llamada" o generar advertencias de memoria, probablemente sean más fáciles de depurar en el simulador que con un dispositivo real.
Una mirada al Hardware El menú revelará las siguientes opciones de eventos:
La mayoría de ellos se explican por sí mismos, pero algunos merecen una nota adicional..
La opción "Simular teclado de hardware" es principalmente para depurar aplicaciones de iPad donde es probable que el usuario tenga un teclado físico conectado a través de Bluetooth o el conector de base. Las pruebas con la opción de teclado de hardware deberían ser una parte importante de las pruebas beta de la aplicación iPad..
La opción "Salida de TV" le permite simular conexiones VGA / HDMI al crear una nueva ventana que puede tener una resolución tan baja como 640x480 o tan alta como 1920x1080 (es decir, 1080p).
La forma más fácil de agregar fotos al simulador de iOS es simplemente arrastrarlas y soltarlas individualmente desde la ventana del OS X Finder a la ventana del simulador.
Sin embargo, si necesita agregar muchas fotos diferentes para la prueba, este proceso rápidamente se vuelve ineficiente. Cuando necesite agregar muchas imágenes a la vez, podría considerar escribir una aplicación iOS simple que pueda recorrer su lista de fotos y agregar cada imagen a la Biblioteca de fotos con la UIImageWriteToSavedPhotosAlbum
función. Para ver cómo se hace esto, eche un vistazo al Paso 6 en mi tutorial Crear una aplicación de fotos con GPUImage.
Otro enfoque sería agregar los archivos de imagen al sistema de archivos del simulador directamente, pero los pasos para lograrlo parecen cambiar con cada nueva versión de iOS. Crear su propio importador podría ser un enfoque más confiable a largo plazo (¿Sabes de una mejor manera de lograr esto? Deja un comentario abajo!).
Para mis propias aplicaciones de iOS, siempre trato de implementar tanto la versión actual de iOS como la versión anterior. Sin embargo, de forma predeterminada, Xcode solo incluye un simulador para la versión actual de iOS. Afortunadamente, hay un método fácil para obtener el simulador para la versión anterior de iOS también.
Con Xcode abierto, seleccione Xcode> Preferencias desde la barra de menú, y luego navega a la pestaña "Descargas". Desde aquí tendrá la opción de instalar simuladores de iOS anteriores, así como el paquete de herramientas de línea de comandos. Recomiendo instalar las tres opciones mostradas:
Una vez que se complete la instalación, podrás seleccionar los simuladores de iOS 5.0 / 5.1 al construir y ejecutar tus aplicaciones.
¿Qué consejos o trucos tienes para trabajar con el simulador de iOS? Deja tus comentarios en la sección de comentarios a continuación.!