Después de llevar, iOS 7, unas semanas en la calle, no escribiría nada nuevo si me centrara en novedades del sistema como; la interfaz gráfica desde el punto de vista del usuario, las nuevas apps incluidas con el sistema, la multitarea o el centro de notificaciones. Así que, este artículo está enfocado en mi día a día como desarrollador utilizando iOS, tanto para iPad como para iPhone.

Llegué a iOS 7 con las primeras betas que Apple lanzó para desarrolladores, si bien las betas para iPhone funcionaban de manera estable, la versión para iPad, que fue la que instalé, era un horror en rendimiento y estabilidad. Constantes cuelgues, problemas con la rotación del dispositivo, apps incompatibles… y un largo etcétera de problemas. A las pocas semanas, desinstalé iOS 7 Beta de mi iPad, hasta que pudiese tener una versión estable para mi dispositivo.

En este tiempo, he probado mis apps con el simulador de iOS7 que se entrega junto a Xcode. Apple, normalmente, nos lo pone sencillo, a los desarrolladores, para realizar la migración a las nuevas versiones de su sistema móvil y, esta vez, no iba a ser menos. Esta consideración de la empresa de Cupertino, es muy de agradecer, si tenemos en cuenta que otros ecosistemas, léase Android, hacen que pierda noches de sueño, con las peculiaridades que puedes encontrar de una versión a otra, de un fabricante a otro, de un hardware a otro, de una resolución a otra… Y no lo digo como fanboy de Apple. Soy desarrollador y usuario de ambos sistemas. Si bien, en el día a día, prefiero cacharrear con Android. Sin embargo, no considero que Android sea un camino de rosas perfumadas para los desarrolladores.

Uno de los primeros factores que hay que valorar a la hora de comenzar un desarrollo de una aplicación, es su interfaz, tanto en el plano visual como funcional. iOS, trae numerosas novedades visuales, no así tantas funcionales, pero haberlas haylas también. El diseño de nuestras apps debería seguir el estilo impuesto por el sistema, para no desentonar. Con colores más vivos, usar tipografías como la Helvetica Neue UltraLight y una interfaz más plana y limpia.

De las cosas que más me ha llamado la atención de la nueva interfaz gráfica, ha sido como el status bar del iPhone se fusiona con la interfaz de nuestra aplicación. Esta novedad implica algunas ligeras adaptaciones para no romper el diseño de la app que estemos desarrollando.

statusBariOS7

Además, los diseñadores de aplicaciones tendrán que tener en cuenta que los iconos de las apps han crecido unos cuantos pixeles para adaptarse a la nueva pantalla de inicio de iOS 7.

icon_ios7

No todo iba a ser indoloro desarrollando en iOS 7, y he encontrado un par de problemas. Empezaré por el más ligero, que se refiere al uso de mapas en nuestras aplicaciones. Este contratiempo se centra en los eventos que se disparan al interaccionar el usuario con un mapa, en iOS 6 usaba una metodología para captar estos eventos, que en iOS 7 no me ha funcionado. Pero bueno, nada grave que no se solucione con un par de adaptaciones en el código.

Y ahora, el problema gordo. Resulta que tengo algunos clientes que usan aplicaciones para iOS con distribución Ad Hoc. Si no sabes el significado de Ad Hoc, de manera rápida, te diré que es una manera de distribución manual de una app a un número controlado de dispositivos, sin utilizar el canal App Store. Pues bien, el problema que he encontrado es el siguiente; estos clientes tienen una determinada cantidad de dispositivos iOS para el funcionamiento interno de la empresa, controlando cada instalación de la aplicación desde un servidor central, emparejando la aplicación con el dispositivo en el cual ha sido instalada. Hasta la fecha, desde la versión 4.3 a la 6.1 de iOS, utilizaba la dirección MAC del dispositivo, ya que es un sistema de emparejamiento transparente al usuario. Y qué ha pasado con iOS 7, pues que ya no es posible obtener la mac del dispositivo.

Entiendo que esta medida puede ser efectiva para evitar que, aplicaciones publicadas en App Store, se aprovechen de la dirección MAC de nuestros iDevices para el uso indiscriminado en campañas de publicidad en aplicaciones. ¿Pero, qué sentido tiene cortar el grifo a las apps desarrolladas para distribución Ad Hoc?

Pese a estos problemillas, estoy muy contento con la nueva vida de iOS. Tanto como lo estuve con el paso adelante que fue la versión 4.0 de Android y la interfaz gráfica Holo.

Como has podido leer, no me he prodigado en un análisis exhaustivo de todas las características que un desarrollador debe conocer de un sistema con la complejidad de iOS. La finalidad era narrar mi experiencia y por el momento esto es todo lo que ha dado.

Fuentes | iOS7 Cheat Sheet