iOS 5 se lanzó oficialmente, y los desarrolladores de iOS están ansiosos por comenzar a utilizar las muchas funciones nuevas disponibles en el SDK de iOS 5. En este artículo, los gurús de la industria Brandon Trebitowski y Collin Ruffenach reflexionan sobre las oportunidades, las eficiencias y las características más interesantes del último SDK. Esta publicación es una lectura obligatoria para todos los desarrolladores de SDK de iOS!
Con el lanzamiento de iOS 5 SDK, la plataforma de desarrollo de iOS ha alcanzado un nuevo nivel de madurez. Es evidente que con esta versión del SDK, Apple está realmente escuchando las necesidades y solicitudes de la comunidad de desarrollo. Apple no solo ha reconocido los objetivos comunes y los puntos críticos expresados por los desarrolladores de iOS, sino que también ha buscado proporcionar herramientas a nivel de SDK que solucionen muchos de los problemas comunes que enfrentamos y alivien por completo algunas de las trampas más frustrantes..
Con el último SDK, una cosa es cierta: ¡nunca ha sido tan emocionante ser un desarrollador de iOS! Este artículo le proporcionará una descripción básica de las mejoras que consideramos las más interesantes..
El almacenamiento de iCloud es una característica muy nueva en iOS 5. Permite a los desarrolladores sincronizar los datos de las aplicaciones de forma automática en todas las plataformas. Hay dos formas que esto puede tomar: valor clave y tienda de documentos.
Si bien el valor-clave proporcionará una versión agradable en la nube de NSUserDefaults, tiene muy poco espacio. La cantidad máxima de datos que se pueden almacenar es de 64 KB. Siendo ese el caso, Apple sugiere usar solo este mecanismo de almacenamiento para pequeñas cantidades de metainformación, como el último número de página leído en una aplicación de lectura. Otro problema con el almacenamiento en la nube de valor clave es que el desarrollador no tiene control sobre la resolución de conflictos. Siempre que se produce un conflicto, siempre se utiliza el valor-clave con la última marca de tiempo. En una aplicación del mundo real, esta puede o no ser la elección correcta.
En mi opinión, la tienda de documentos va a ser la gran característica aquí. Tengo entendido que podrá sincronizar cualquier documento que elija en la nube. Esto hará que sea mucho más fácil crear cosas como notas y aplicaciones de tareas con datos distribuidos y persistentes. Esto podría lograrse fácilmente, por ejemplo, al elegir sincronizar su base de datos Sqlite o el almacén de Core Data. A diferencia del método de sincronización de clave-valor, los desarrolladores de documentos podrán definir su propio esquema de resolución de conflictos..
Siento que Apple tiene cosas. casi justo con su implementación de iCloud. La fruta de bajo perfil que creo que faltan es la capacidad de interacción del usuario entre sus datos. Si tuvieran que proporcionar tales mecanismos, entonces los juegos en línea podrían facilitarse completamente a través de iCloud.
iOS 5 marca el comienzo de lo que parece ser una relación bastante seria con Twitter. No son "oficiales de Facebook" ni nada, pero se verán mucho en los próximos lanzamientos. Apple ha tenido dificultades para golpear el cable correcto en el mercado social. Ping parece ser un poco extraño, y parece que Apple está listo para jugar a la pelota con Twitter en lugar de meterse en el juego. Esta será una buena noticia para muchos desarrolladores. Después del OAuthcalypse, la integración de Twitter para cualquier aplicación dada se hizo mucho más compleja. Con esta versión del SDK, iOS esencialmente administra la autenticación de Twitter en su nombre, y los usuarios pueden habilitar o deshabilitar la autenticación de Twitter de una aplicación en las Preferencias del sistema iOS. Apple ahora proporciona un controlador de vista común para crear Tweets también.
Dentro de la libreta de direcciones, Apple ha incluido una nueva función para raspar Twitter para las fotos de perfil de tus contactos. Funciona bastante bien y habla de los otros tipos de integración que podemos ver de los desarrolladores de aplicaciones. Todo esto también ocurre después de la integración de la carga de fotos de Twitter, que también se ve facilitada por el nuevo Twitter.framework. En general, esto hace que leer y escribir en Twitter sea exponencialmente más fácil y parece ser algo que veremos aún más en los próximos lanzamientos..
Con el comienzo de Xcode 4.0, Interface Builder (IB) se convirtió en una parte mucho más integral de la experiencia de desarrollo, ya que ahora es un componente de Xcode en lugar de una aplicación separada. Esta tendencia continúa con la mejora de la interfaz Interface Builder y la introducción de Storyboarding..
Cuando se trata de cambios en la interfaz IB real, Xcode 4.2 intenta fomentar una conexión más estrecha entre el código que representa IBOutlets e IBActions y su representación visual en Xcode. Esto significa que realmente puede conectar las declaraciones del método IBAction a los botones que las activarán y las declaraciones de IBOutlet al componente de IU real al que hacen referencia..
Aparte de esto, también verás representaciones de GUI para cosas como UIGestureRecognizers, GLKit Views and Controllers, y el nuevo UIStepper.
El storyboard es la otra gran historia nueva cuando se trata de IB. En pocas palabras, trabajar con tablas de cuentos significa nunca tener que llamar pushViewController: animado
o popViewController: animado
otra vez. Todo el flujo de controles de vista en movimiento dentro y fuera de un controlador de navegación, así como la presentación de vistas de manera modal, se puede hacer visualmente a través de Storyboarding..
En general, esto permite una visualización de cada posible flujo de pantalla en su aplicación, reduce el código y, lo que es más importante, permite que los desarrolladores no contribuyan con sus aportes en una forma utilizable. Muchas veces la conversión de concepto / creatividad a implementación / código se pierde en la traducción. Con el nuevo enfoque de guión gráfico, los diseñadores pueden crear representaciones de flujo que realmente reducirán la cantidad de trabajo requerido por los desarrolladores del proyecto.
Desde la primera versión de iOS, la gestión de la memoria ha sido un gran punto de dolor para los desarrolladores. Yo diría que la mayoría de los bloqueos de aplicaciones se deben a la mala gestión de la memoria. ARC pretende resolver esto eliminando completamente el recuento de referencias de los desarrolladores. Todos los métodos relacionados con la memoria (lanzamiento
, conservar
, autorelease
, etc.) ahora han quedado en desuso para aprovechar al máximo ARC.
Hay algunas ventajas enormes al usar ARC. En primer lugar, reduce drásticamente la barrera para los desarrolladores más nuevos en la plataforma iOS, especialmente los desarrolladores que vienen de plataformas como Android que hacen uso de la recolección de basura. También reducirá el número de líneas de código que los desarrolladores deben escribir, ya que ya no necesita las llamadas de memoria para modificar el recuento retenido. Mi única preocupación con ARC es que los desarrolladores ahora nunca podrán aprender la importancia de una correcta gestión de la memoria. Esto podría llevar a prácticas de programación perezosas y posiblemente crear un aumento en las aplicaciones de almacenamiento de memoria..
Core Image, un marco que ha estado disponible para los desarrolladores de OS X por un tiempo, finalmente está disponible como parte del iOS 5 SDK. Permite a los desarrolladores utilizar fácilmente una enorme biblioteca de filtros de manipulación de fotos y videos, y también les proporciona un lenguaje sencillo para que puedan crear sus propios filtros. Ahora es increíblemente fácil realizar tareas como mosaico, enmascaramiento, mezcla y composición de imágenes múltiples.
Estaba realmente intrigado al ver que el idioma del filtro se ve como C básico y está cargado en tiempo de ejecución. Dada esta portabilidad, no me sorprendería si vemos un sitio web / tienda de terceros que venda estos filtros en un futuro próximo.
Para ver un ejemplo de la potencia del filtro Core Image, echa un vistazo a este filtro que agrega un efecto cristalizado:
Con el lanzamiento de iOS 5 públicamente, Xcode también obtendrá una actualización a 4.2. Xcode 4.2 tiene muchas mejoras de Xcode 4.1, principalmente relacionadas con las nuevas características de SDK y iOS 5. Una mejora no basada en SDK es el refinamiento de los esquemas y la integración GIT. GIT se ha convertido en la tecnología de control de fuente prevalente entre los desarrolladores de iPhone y es increíble que Xcode aproveche todas las grandes cosas que GIT tiene para ofrecer. Los esquemas son el nuevo lugar donde se guardan las cosas de configuración del proyecto. Esto incluye la versión para la que está creando, los marcos vinculados, los scripts de creación, etc. Los esquemas se pueden compartir y, por lo general, facilitan las tareas, como las pruebas y el compartir proyectos entre equipos.
La noticia más importante aquí es la profunda integración de GIT y SVN. Apple ha tomado todas las capacidades del software de control de fuente y ha creado visualizaciones de cómo funcionan en Xcode. Todos los archivos están constantemente marcados con actualizaciones en cuanto a su estado (Agregado / Modificado). Cada archivo se puede mostrar en la vista histórica. En la vista histórica obtendrá 2 paneles con una línea de tiempo en el centro donde podrá navegar hacia atrás en el tiempo para el archivo. Hay vistas completas de culpas, interfaces de entrada de confirmación y inserción, e incluso pantallas de resolución de conflictos y bifurcaciones. La integración con GITHub también es sencilla. Con todo, esta es una gran mejora. Asegúrese de echar un vistazo a este documento de Apple, que destaca todas las características en detalle.
NewsStand es otro ejemplo de la maduración de la plataforma iOS. A lo largo de los últimos lanzamientos, Apple ha comenzado a crear ofertas para abordar los problemas comunes de los desarrolladores en el entorno de "caja de arena" que han creado. Game Center e iCloud son algunos ejemplos genéricos de esto, pero NewsStand representa una inversión de Apple para facilitar las necesidades especiales de un tipo específico de aplicación.
El marco de NewsStand permite a los desarrolladores hacer dos cosas. Primero, los desarrolladores pueden enviar una notificación de inserción a sus aplicaciones que las iniciará en segundo plano y descargarán el último número. En segundo lugar, los desarrolladores pueden configurar íconos especiales para representar su aplicación en la vista NewsStand. Todas las aplicaciones de NewsStand residirán en una carpeta especial de NewsStand, y esto creará una representación de objeto nativa común para la "Biblioteca" de problemas en el dispositivo.
Lo que no queda claro aquí es qué tipo de certificación, si corresponde, se requerirá para ser una aplicación de NewsStand. ¿Podrá Engadget crear una aplicación de tipo NewStand? Estoy seguro de que a muchos blogs les gustaría la posibilidad de distribuir contenido y descargarlo en segundo plano para sus usuarios de iOS 5+. Parece que hay una restricción de que solo se permite una notificación de descarga de fondo por 24 horas, será interesante ver si alguno de los medios de comunicación de Internet solo aprovechan este nuevo marco..
Si alguna vez ha mirado un documento de diseño, lo comparó con lo que se proporciona con los valores predeterminados de UIKit de Apple, y luego tuvo que implementar completamente su propia implementación para que coincida con las intenciones de los diseñadores, ¡entonces estará emocionado por la introducción de controles UIKit personalizados! Todos los controles principales ahora permiten personalizar fácilmente las propiedades de imagen de fondo, color de tinte y posición del título. Estoy particularmente entusiasmado con la capacidad de establecer la propiedad de la imagen de fondo. He pasado horas recreando un UISwitch simplemente para que se vea un poco diferente.
Este es un gran paso adelante en términos de personalización de la aplicación. Estoy seguro de que comenzaremos a ver una integración mucho más inteligente de los componentes de la interfaz de usuario de Apple. En esa misma línea, también veremos a algunas personas que hacen que los hermosos componentes de Apple se vean horribles.
Como puedes ver, iOS 5 es un gran lanzamiento. Tiene profundas mejoras tanto en el SDK como en el IDE con el que todos desarrollamos. Si bien hicimos todo lo posible para acertar los puntos importantes de este artículo, hay TONELADAS de otras características de las que no hemos podido hablar. Aquí hay una lista rápida de algunos cambios notables adicionales:
¿Entonces, Qué esperas? Ve a buscar iOS 5 y aprovecha todas estas nuevas características.!
En las próximas semanas, Mobiletuts + proporcionará tutoriales detallados sobre muchas de las nuevas características del SDK de iOS 5, como Storyboarding, Twitter Framework, Core Image Framework, NewsStand Support y más!
Díganos sobre qué escribir votando a continuación para conocer los temas que le interesan más:
Brandon Trebitowski es un desarrollador de software y autor de Albuquerque, Nuevo México. Brandon tiene una licenciatura en Ciencias de la Computación de la Universidad de Nuevo México y ha desarrollado software durante los últimos 10 años. En agosto de 2008, comenzó iCodeBlog.com para enseñar a los aspirantes a desarrolladores cómo escribir software para el iPhone. Después de que el blog fue adquirido por ELC Technologies en diciembre de 2008, comenzó a trabajar a tiempo completo para ellos desarrollando software móvil..
Desde entonces, Brandon es coautor de un libro de desarrollo de iOS llamado iOS 4 en acción y se ha convertido en el desarrollador líder de aplicaciones móviles en ELC Technologies. Él tiene una gran pasión por la programación y le encanta compartirla con otros..
Puedes seguir las publicaciones de Brandon en su twitter @brandontreb..
¿Desea obtener la guía más actualizada sobre el SDK de iOS? Toma iOS 4 en acción, a lo que Brandon contribuyó..
Collin Ruffenach es un desarrollador de iOS con tecnologías ELC con sede en Portland, OR. Collin obtuvo un B.S. en Ingeniería de Sistemas Informáticos y un M.S. en Ciencias de la Computación en 2010 de la Universidad Estatal de Arizona. Su investigación giró en torno al desarrollo de iOS en escenarios basados en domótica..
Desde 2008, Collin ha estado contribuyendo a iCodeBlog, donde ha publicado artículos y screencasts en diferentes temas de programación de iOS desde que se lanzó el SDK de iOS. Collin contribuyó recientemente a un nuevo libro llamado Fundamentos de Objective-C con Manning Publishing.
Puedes seguir las publicaciones de Collin en su twitter: @cruffenach.
¿Quieres refinar esas habilidades de Objective-C? Echa un vistazo a los Fundamentos de Objective-C, que Collin contribuyó a.
Gracias por leer!