Cada versión de Xcode presenta a los desarrolladores herramientas mejoradas para ayudarles a construir sus aplicaciones. El lanzamiento de este año, Xcode 6, presenta nuevas formas para que los desarrolladores diseñen y construyan su software. En este tutorial, describiré las características nuevas y mejoradas de Xcode 6 y echaré un vistazo a cómo puedes usarlas..
Durante la WWDC de este año, Apple presentó Swift, un nuevo lenguaje de programación para desarrollar software para sus dispositivos. De acuerdo con esto, Xcode 6 viene con una nueva característica llamada Playgrounds que proporciona un área de trabajo interactiva donde los desarrolladores pueden escribir código Swift y obtener comentarios en vivo sin tener que ejecutar el código en un dispositivo o simulador. Esta es una buena adición a Xcode, ya que ahora puede experimentar con el código y obtener resultados rápidos en tiempo real antes de incorporarlo a su base de código principal.
Un tema importante en la WWDC de este año fue la creación de aplicaciones adaptativas. En lugar de crear aplicaciones dirigidas a tamaños de pantalla específicos, se recomienda a los desarrolladores que desarrollen aplicaciones que se adapten al dispositivo en el que se ejecutan, independientemente de su tamaño de pantalla..
Este es un movimiento que comenzó hace un par de versiones con la introducción de Auto Layout en iOS 6, que permite a los desarrolladores crear aplicaciones que funcionan en las pantallas de 3.5 "y 4.0". Ahora se ha mejorado aún más para permitir a los desarrolladores de iOS crear aplicaciones que se ejecuten en todos los iPhones compatibles, incluido el nuevo iPhone 6 Plus de 4.7 "iPhone 6 y 5.5", y iPads que utilizan el mismo código base.
Interface Builder ha sufrido importantes cambios que permiten el desarrollo de tales aplicaciones adaptativas. También se han agregado nuevas características que mejoran el proceso de diseño de la interfaz de usuario. Veremos estos nuevos cambios a continuación..
Las clases de tamaño definen el tamaño del lienzo utilizado en los diseños. Le permiten especificar cómo cambia la interfaz de usuario de la aplicación cuando cambia el tamaño disponible de su controlador de vista. Esto hace posible tener un guión gráfico unificado al crear una aplicación universal. Anteriormente tenías que diseñar dos guiones gráficos separados, uno para iPad y otro para iPhone.
Una clase de tamaño identifica una cantidad relativa de espacio de visualización para la altura (dimensión vertical) y el ancho (dimensión horizontal). Actualmente hay dos clases de tamaño, compacto y regular. Por ejemplo, un iPhone en vertical tendrá un ancho compacto y una altura regular. Un iPad tendrá un ancho y una altura regulares tanto en orientación vertical como horizontal.
Pero debe tener en cuenta que una clase de tamaño no necesariamente se asigna a un dispositivo en una orientación. Por ejemplo, un iPad puede tener una vista con un diseño estilo iPhone (una clase de tamaño horizontal compacta y una vertical regular) cuando se presenta en un espacio más pequeño en el dispositivo, y un diseño estilo iPad (una clase de tamaño horizontal regular y una vertical ) cuando el espacio disponible es mayor.
Cambias las clases de tamaño usando la Clases de tallas control cerca de la barra de herramientas de diseño en la parte inferior del lienzo de Interface Builder. Interface Builder te inicia en el alguna ancho y alguna Clase de tamaño de altura donde puede diseñar componentes y restricciones de interfaz de usuario comunes para los diferentes tamaños de pantalla y orientaciones. A continuación, actualice las partes que deben cambiar cuando cambie el tamaño de la pantalla disponible haciendo cambios en la interfaz de usuario en las diferentes clases de tamaño..
Xcode 6 introduce tipos de segue adaptativos que son más adecuados para los nuevos diseños adaptativos, ya que presentan vistas de manera diferente según el entorno en el que se ejecutan. Por ejemplo, utilizando Mostrar detalle con una Vista dividida en un iPad reemplazará el Detalle, pero en un iPhone va a empujar ese Detalle hacia un Maestro. Algunos de los segmentos antiguos, como push y modal, ahora están en desuso.
El lienzo de Interface Builder es más interactivo que nunca. Anteriormente, tenía que ejecutar su aplicación para ver los cambios relacionados con los objetos personalizados, las fuentes personalizadas y la localización. Ahora, puede seleccionar fuentes personalizadas desde el selector de fuentes de Interface Builder y mostrarlas en el lienzo de Interface Builder..
Incluso puede crear objetos personalizados y hacer que se representen en el lienzo de Interface Builder. Para ello, cree un marco personalizado, agregue su clase personalizada a ese objetivo y marque esa clase con la @IBDesignable
banderaIB_DESIGNABLE
en Objective-C). Esto permite a Interface Builder saber que una clase puede mostrar contenido personalizado en su lienzo.
Además de poder ver objetos personalizados en Interface Builder, también puede marcar propiedades con el @IBInspectable
y haga que aparezcan en el menú del inspector de Interface Builder, en el que se pueden editar como cualquier otra propiedad en sus vistas. No es un requisito que una clase se marque como designable para que tenga propiedades inspeccionables.
También puede especificar el código de tiempo de diseño solamente. Puede usar esto, por ejemplo, para rellenar previamente la vista con datos de ejemplo para obtener una sensación más precisa de la interfaz. Usted hace esto anulando el prepareForInterfaceBuilder
método. Aparte de eso, puedes usar #if TARGET_INTERFACE_BUILDER
para optar por el código dentro o fuera de la ejecución en la representación final de Interface Builder.
El Editor de vista previa ahora le permite ver múltiples vistas previas de diferentes dispositivos simulados uno al lado del otro. No solo puede ver cómo se ve su aplicación en diferentes dispositivos, sino que también puede configurar cada uno de los dispositivos en modo vertical u horizontal. Esto proporciona una forma rápida de previsualizar la interfaz de usuario de su aplicación en diferentes dispositivos y orientaciones sin ejecutarla primero.
Apple agregó nuevas tecnologías de juego a Xcode 6 y iOS 8, a saber SceneKit y Metal. SceneKit, que antes estaba disponible en OS X, es un renderizador de escenas en 3D. Metal es un marco que se puede utilizar para crear tareas de procesamiento de gráficos y computación altamente optimizados gracias a su acceso de bajo costo a las GPU A7 y A8..
SpriteKit también se ha mejorado con oclusión física por píxel, campos físicos, cinemática y restricciones universales, sombreadores, iluminaciones y sombras.
Otra nueva característica importante en SpriteKit es la Editor de niveles de SpriteKit Eso te permite ensamblar visualmente las escenas. Al igual que puede crear su interfaz de usuario en Interface Builder sin escribir ningún código, puede hacer lo mismo en un juego de SpriteKit con el Editor de niveles de SpriteKit.
Los guiones gráficos ahora se han introducido al desarrollo de OS X. Al igual que en el desarrollo de iOS, le permiten configurar sus diseños de vista y vistas de cable junto con diferentes animaciones segue. En el momento de escribir este artículo, algunas características, incluidos los guiones gráficos, aún están desactivadas en Xcode (6.0.1) para el desarrollo de OS X en espera de la versión de OS X Yosemite.
Los reconocedores de gestos ahora están disponibles en AppKit. Estos se utilizan prácticamente de la misma manera que en el desarrollo de iOS. Puedes ver los gestos disponibles en el Biblioteca de objetos en Interface Builder.
La localización se realiza de manera diferente en Xcode 6 de lo que era anteriormente. Ahora puede exportar todo su contenido localizable a XLIFF, que es el estándar de la industria que entienden muchos servicios de traducción. Cuando recupera las traducciones, las importa y Xcode fusionará el contenido nuevo en su proyecto. Debería tener un archivo XLIFF para cada idioma que admita en su aplicación.
Ahora puede obtener una vista previa del contenido localizado sin cambiar la configuración regional de su dispositivo o simulador en Ajustes. Para ello, seleccione Producto> Esquema> Editar esquema, luego selecciona correr y haga clic en el Opciones lengüeta. Puede seleccionar el idioma de su elección del Idioma de la aplicación menú. Xcode viene con el Pseudolanguage de doble longitud que puedes probar si no has añadido ningún otro idioma. Cuando ejecute la aplicación, debería ver el contenido localizado.
También puede ver contenido localizado sin ejecutar su aplicación. Para ello, utiliza la Editor de vista previa para cambiar entre los diferentes idiomas que admite su aplicación. El idioma predeterminado se mostrará en la esquina inferior derecha del editor y cuando haga clic en él, aparecerá una lista de los idiomas disponibles. Para probarlo sin agregar un idioma, puede utilizar el pseudolanguage de doble longitud.
Xcode 6 ahora presenta simuladores con nombre que corresponden a dispositivos específicos, como el iPhone 5s, en lugar de los nombres genéricos anteriores, como el iPhone Retina de 64 bits..
Entre los dispositivos que puede elegir están el iPhone de tamaño variable y el iPad de tamaño variable. Estos le permiten especificar las clases de ancho, alto y tamaño del simulador. Con esto, puede probar la adaptabilidad de su aplicación en todos los dispositivos existentes de Apple, así como en cualquier dispositivo futuro, sin necesidad de descargar un simulador para cada dispositivo.
Con el nuevo simulador de iOS, puede mantener los datos y los ajustes de configuración agrupados. Ejecute una configuración para una versión de una aplicación con sus propios datos y otra configuración para una versión diferente de la aplicación. Esto significa que puede simular tener múltiples usuarios en su máquina. Cada usuario tendrá sus propios datos y configuraciones..
El marco HomeKit le permite a su aplicación comunicarse y controlar los accesorios conectados en la casa de un usuario. En las versiones beta de Xcode 6, el simulador de accesorios HomeKit vino como parte de Xcode, pero ahora es parte de Herramientas de E / S de hardware para Xcode. Puedes descargarlo en el iOS Dev Center.
Xcode 6 hace que la depuración de la interfaz de usuario de su aplicación sea mucho más fácil con la función de depuración de live view. Ahora puede pausar su aplicación en ejecución y analizar la interfaz de usuario en pausa en una vista 3D. El depurador de vistas le muestra su jerarquía de vistas y las restricciones de diseño automático. Si selecciona una vista, puede inspeccionar sus propiedades en el inspector o saltar al código correspondiente en el editor asistente. Con esto, puede inspeccionar problemas tales como conflictos de diseño automático, ver por qué una vista está oculta o recortada, etc..
Para iniciar el depurador de Live View, inicie su aplicación y haga clic en Depuración de la jerarquía de vistas botón en la barra de herramientas de depuración.
Su aplicación se detiene y aparece una visualización 3D de su interfaz de usuario. Puedes arrastrar a cualquier parte del lienzo para rotar la vista.
Puede cambiar entre varios estados de vista con los botones debajo del lienzo.
De izquierda a derecha:
Quick Look se introdujo en Xcode 5 y le permite ver el contenido de un objeto cuando realiza la depuración. Quick Look admite objetos comunes como imágenes, rutas de Bezier, ubicaciones de mapas, etc..
En Xcode 6, esto se ha mejorado para admitir dos nuevos tipos de objetos, vistas (Vista
y NSView
) y objetos personalizados. Para habilitar Quick Look para objetos personalizados, implementa la debugQuickLookObject
método en la clase personalizada.
El navegador de depuración registra y muestra los bloques ejecutados recientemente, así como los bloques en cola. Puede usarlo para ver dónde se encuentran los bloques en cola y para examinar los detalles de lo que se ha configurado para ejecutar. Puede habilitar la depuración de bloques seleccionando Depurar> Depurar flujo de trabajo> Mostrar siempre bloques pendientes en colas opción de menú.
Los indicadores de depuración proporcionan información sobre el uso de recursos de su aplicación durante la depuración. Xcode 6 cuenta con indicadores actualizados, que incluyen perfiles de gráficos para el nuevo marco de Metal y soporte de iCloud para documentos en las características de Cloud y CloudKit.
Aparte de estas mejoras, Xcode 6 presenta dos nuevos medidores de depuración, la red y la actividad del disco..
La actividad de la red muestra la cantidad de datos que su aplicación está enviando y recibiendo, así como una lista de conexiones abiertas. Puede ver una línea de tiempo del historial para monitorear el uso de la red, lo que lo ayuda a determinar cuándo y por qué se produjeron los picos en el uso de la red o las fallas de la red..
La actividad del disco muestra información en tiempo real de las lecturas y escrituras de su aplicación en el disco. También da información sobre todos los archivos abiertos. Hay una línea de tiempo del historial de esta actividad de E / S del disco para que usted la supervise.
Los catálogos de activos ahora admiten clases de tamaño. Esto significa que ahora puede adaptar fácilmente su interfaz de usuario para una altura o anchura compacta y regular proporcionando imágenes diferentes para cada clase de tamaño.
Anteriormente, los catálogos de activos solo admitían imágenes PNG, pero en Xcode 6, se ha agregado compatibilidad con imágenes vectoriales JPEG y PDF.
Puede usar un XIB o un guión gráfico como imagen de inicio de su aplicación. El sistema operativo genera las imágenes de inicio necesarias para su aplicación. Con esto, no necesita proporcionar recursos individuales para las imágenes de lanzamiento y puede diseñarlo en Interface Builder.
Para configurar un XIB o un guión gráfico como imagen de lanzamiento de su aplicación, seleccione el proyecto en la Navegador de proyectos y elige un objetivo de la lista de objetivos. Bajo la General pestaña, localiza la sección Iconos de aplicaciones e imágenes de lanzamiento y seleccione el archivo correcto del menú etiquetado Lanzar el archivo de pantalla.
Se han agregado nuevas API al marco XCTest que permite probar código asíncrono. Esto se hace a través de objetos de expectativa., XCTestExpectation
, que describen eventos esperados. XCTestCase
tiene una nueva API que espera a que se cumpla la expectativa y establece un tiempo de espera. Se llama a un controlador de finalización cuando se cumplen todos los eventos o cuando se agota el tiempo de espera. Puede estar esperando en varios eventos asíncronos al mismo tiempo. Ahora puede probar fácilmente las interacciones del sistema que se ejecutan de forma asíncrona, como la E / S de archivos, las solicitudes de red, etc..
El marco mejorado XCTest ahora puede cuantificar el rendimiento de cada parte de una aplicación. Xcode ejecuta sus pruebas de rendimiento y le permite definir una métrica de rendimiento de referencia. Cada ejecución de prueba subsiguiente compara el rendimiento, muestra el cambio a lo largo del tiempo y, al resaltar el área del problema, le alerta sobre regresiones repentinas que un código podría introducir. Si la medida de rendimiento promedio se desvía considerablemente de la línea de base, la prueba fallará. Esta es una excelente manera de detectar regresiones de rendimiento en su aplicación.
Con la introducción de las pruebas de rendimiento, viene la posibilidad de realizar pruebas de perfil en los instrumentos. Puede seleccionar una prueba o conjunto de pruebas para perfilar y realizar más investigaciones y análisis en Instrumentos para averiguar por qué falló la prueba y encontrar la causa de la regresión.
Instrumentos tiene una interfaz de usuario actualizada. Con el nuevo selector de plantillas, puede seleccionar su dispositivo y destino, así como el punto de partida para su sesión de perfiles..
Hay un nuevo Contadores plantilla que se ha combinado con Eventos para proporcionar una vista potente en eventos de CPU individuales. Incluso puede especificar fórmulas para medir agregados de eventos, proporciones y más.
En Xcode 6, Instruments también se envía con soporte para Swift y también puede usarlo para perfilar extensiones de aplicaciones. También hay soporte para configuraciones de simulador. Las configuraciones del simulador son tratadas como dispositivos por los instrumentos, lo que facilita el inicio o la conexión a los procesos en el simulador..
Apple continúa mejorando sus herramientas de desarrollo y esto se ve en cada versión importante de Xcode. Xcode 6 mejora a sus predecesores para brindar a los desarrolladores herramientas que mejorarán su flujo de trabajo y harán que todo el proceso de desarrollo sea significativamente mejor.