miércoles, 6 de marzo de 2013

Analizamos el código de iOS 6. ¿Qué podemos esperar de iOS 7?

Todos los años es posible hacer averiguaciones sobre posibles novedades en la siguiente versión de iOS basándonos en detalles del SDK
(Kit de desarrollo) de la versión anterior. Por ejemplo, cuando Apple
hizo disponible el acceso a las cuentas de Twitter registradas en el
sistema por parte de las aplicaciones en iOS 5, lo hizo de una manera
muy genérica: al programar una aplicación, tenías acceso a "cuentas" de
redes sociales, aunque de momento sólo existía el tipo de cuenta
"Twitter". Esto hizo intuir que en la siguiente versión aparecería
soporte para otros tipos de cuentas, y el caso claro era Facebook, como
efectivamente se pudo comprobar cuando se anunció iOS 6.




Analizando iOS 6


Para tratar de averiguar qué novedades
podríamos encontrarnos en iOS 7 hay que usar un poco más la imaginación.
En iOS 6 no hay features que nos hagan pensar en un añadido obvio. Para
esto tenemos que indagar un poco más a fondo.

Una de las grandes
críticas hacia iOS, sobre todo en comparación con Android, es la pobre
integración que tienen las aplicaciones con el sistema, o entre
aplicaciones de terceros entre sí. iOS se ha apoyado fuertemente en la
seguridad desde la primera versión del SDK del por entonces "iPhone OS
2.0". El acceso a APIs del sistema por parte de las aplicaciones siempre ha sido limitado,
basándose en una política muy conservadora de seguridad: si no puedes
tocar nada, no puedes romper / robar nada, aumentando la estabilidad del
sistema, y la robustez frente a robo de datos, etc.

Sin embargo,
cuando Apple no implementa una feature que nos parece obvia en iOS, no
es porque no quieran. Cuando Steve Jobs presentó iOS4 hizo mucho
hincapié en explicar por qué habían tardado 3 años en dar soporte a la
multitarea: querían hacerlo bien. Apple podría haber soportado la
multitarea en iOS2, y haber dado al iPhone 3G la mitad de batería, y un
rendimiento peor, pero prefirió esperar hasta que la experiencia de
usuario era los suficientemente buena.

Con la seguridad ocurre lo
mismo: hasta que no cuentan con una manera segura de dar soporte a
alguna funcionalidad en iOS, no la añaden al sistema.

iOS 6 comenzó a utilizar internamente una API llamada XPC (Cross Process Communication) que apareció primero, de manera pública, en Mac OSX 10.7 Lion y, de manera privada, en iOS 5.


¿Qué es XPC? Comunicación entre aplicaciones de manera segura


XPC,
a grandes rasgos, permite a los desarrolladores en Mac OSX crear
aplicaciones compuestas de varios ejecutables independientes, y hacerlos
comunicarse entre sí.


Esto tiene varias repercusiones:


  • Esto
    permite a las aplicaciones dividirse en componentes más pequeños, de
    forma que si ocurre un error en uno de ellos y tiene que cerrarse, puede
    reiniciarse sin tener que cerrarse la aplicación principal.

  • Si
    una aplicación tiene acceso a un recurso delicado, como podría ser la
    agenda de contactos, puede tener sentido separar esa parte del programa a
    un componente más pequeño y más controlado, el cuál, gracias al Sandbox de Mac OSX Lion, sería el único componente del programa con permiso para acceder a dichos contactos.


En iOS, sin embargo, los desarrolladores aún no pueden usar XPC, pero Apple ya lo está utilizando para algunas funcionalidades.
Por ejemplo, cuando una aplicación te permite enviar algo por correo
desde la propia aplicación, esa pantalla que ves ya no es parte de la
aplicación que la abrió, sino que forma parte de otro "proceso". De esta
manera, Apple se asegura que la aplicación que utiliza la funcionalidad
de enviar algo por correo no tiene acceso de ninguna manera a los datos
de ese mail (el destinatario, el asunto, etc).


¿Para qué podría ser XPC útil en aplicaciones de terceros?



  • Podría permitir integrar unas aplicaciones dentro de otras, sin que esto supusiera un problema de seguridad. Por ejemplo, podemos pensar en algo similar a los intents
    de Android, los cuales permiten compartir contenido de una aplicación a
    otra (fotos de facebook en Instagram, enviar un enlace a Line desde
    Safari, etc)

  • Otra posibilidad sería la de crear widgets en el Notification Center
    por parte de las aplicaciones: al fin y al cabo, un widget no sería más
    que una pequeña parte de una aplicación embebida dentro de otra (el
    centro de notificaciones en este caso).

  • Posibilidades
    ilimitadas: las aplicaciones podrían programar todo tipo de "servicios"
    que otras aplicaciones consumirían, haciendo la integración entre estas
    muchísimo más sencilla y transparente, teniendo que cambiar entre
    aplicaciones con menos frecuencia.

  • Los "web view" dentro de aplicaciones tendrían acceso al mismo motor de Javascript que utiliza Safari, mejorando su rendimiento.

  • Abrir
    Siri a los desarrolladores: las aplicaciones podrían añadir "servicios"
    a Siri, de forma que ésta aprendiera a hacer cosas nuevas interactuando
    con las aplicaciones. Por ejemplo, Line podría "registrar" comandos nuevos con Siri de forma que fuera capaz de entender algo como "Siri, envía un mensaje a Carlos en Line diciendo 'nos vemos a las ocho'".







Mejoras en Siri, mapas y iCloud





SiriSiri,
la cual recordemos aún se encuentra en beta, traerá nuevas
funcionalidad sin lugar a dudas, pero la manera en la que Siri se hará
más inteligente y más útil será cuando aplicaciones de terceros sean
capaces de crear comandos nuevos. Poder comprar entradas de cine o
reservar una mesa en un restaurante parecen más demostraciones técnicas,
que funcionalidades útiles que usemos a diario. iOS 7 necesita darns
más razones para usar Siri.




Apple maps

Apple Maps,
como toda novedad en iOS, se refrescará de alguna manera en iOS 7.
Aunque probablemente Apple esté más enfocada en mejorar el contenido y solucionar los problemas con las búsquedas, más que en mejorar la aplicación en sí. Apple Maps fue un motivo para muchos usuarios para no actualizar a iOS 6 y Apple necesita poner remedio a esto, y más ahora que Google Maps pisa fuerte en iOS.



iCloud

iCloud
es el otro pilar de Apple en cuanto a software de los últimos años y
deberá de incorporar mejoras. Son muchos los desarrolladores que se han
quejado de lo poco fiable que es integrar iCloud en una aplicación para
sincronizar los datos del usuario. Es de esperar que Apple haya hecho un
esfuerzo en mejorar ese punto débil de su plataforma, pero no es tan
obvio que iCloud traiga cosas realmente nuevas. La integración de iCloud
en aplicaciones, aunque con muchos fallos, es bastante completa y con
muchas posibilidades. Para que más aplicaciones lo incorporen lo que
tiene que ocurrir es que Apple pula su funcionamiento.



En general, iOS 7 debería sorprendernos con bastantes novedades de cara al usuario,
y también con nuevas herramientas para los desarrolladores, sobre todo
teniendo en cuenta que iOS 6 fue una actualización bastante
descafeinada. Apple sabe que Google está pisando muy fuerte en cuanto a
software, y tiene que apostar por moverse rápido, y eso en definitiva lo
agradeceremos los usuarios.



Fuente: Appleweblog

No hay comentarios:

Publicar un comentario