martes, 5 de marzo de 2013

¿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.
 
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?
1. ▪ 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)
2. ▪ 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).
3. ▪ 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.
4. Los "web view" dentro de aplicaciones tendrían acceso al
mismo motor de Javascript que utiliza Safari, mejorando su rendimiento.
5. 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
 
Siri
 
Siri, 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 dar 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.
 
Autor: Javier Soto
fuente: appleweblog.com

No hay comentarios: