DEV, un increíble paso adelante en desarrollo para iOS 8 y OS X Yosemite

COMPARTIR 0 TWITTEAR

iOS 8 DEV logos

Si el evento de presentación de la WWDC demostró una cosa clara, es que su público objetivo eran sin duda los desarrolladores. El comentario de Craig Federighi mientras presentaba las posibilidades del nuevo lenguaje de programación Swift lo dejaba bien claro: ¿os dais cuenta que habrá gente en su casa pensando: ¿qué diablos está diciendo esta gente”?. Esa es la síntesis de una presentación que solo aquellos que desarrollamos pudimos entender y valorar en toda su grandeza, no el usuario final.

La cantidad de cosas presentadas me ha obligado a hacer dos artículos diferentes donde se pueda ver en detenimiento qué se presentó en el evento y he tardado varios días en sintetizar los contenidos para exponerlos de la mejor manera. Tras el evento en sí pudisteis leer el resumen y ahora el hablamos sobre lo que se presentó a nivel de desarrollo. Una cosa puedo dejar clara, aquel que pensara que iOS 8 y OS X Yosemite no son para tanto, es porque no ha comprendido el calado y el enorme paso de gigante que dio ayer Apple, sin precedentes en su historia.

App Store

No puede haber un paso adelante en el desarrollo si la App Store no evoluciona, y es lo que presentó Tim Cook en unas de sus apariciones. 1.2 millones de apps disponibles con 300.000.000 visitantes por semana y que ya han descargado 75.000 millones de apps. Con esta cantidad de apps, la App Store tiene que optimizarse y es lo que Apple ha hecho, para hacer más fácil encontrar contenido.

App Store

iOS 8 incorpora una pestaña Explorar que permite, a través de los géneros disponibles, ver las apps que están destacadas en cada categoría. También a la hora de buscar tendremos acceso a Búsquedas Destacadas donde podremos ver lo más buscado en ese momento en la App Store al más puro estilo Twitter y sus tendencias. Cuando recuperamos la búsqueda de apps, el sistema permite un scroll sin fin que permite ver todas las apps que queramos hasta que nos cansemos.

Una de las grandes novedades es la posibilidad de crear paquetes de aplicaciones o juegos, donde se podrán combinar un número de aplicaciones bajo una misma compra/descarga. Además, la nueva App Store incorpora la posibilidad de incluir vídeos de previsualización de las apps desde la propia tienda e incluirá TestFlight, el servicio que Apple compró no hace mucho y que permitirá ofrecer nuestras aplicaciones en fase beta a gente que quiera probarlas, completamente gratis, y con una plataforma donde podamos ver los resultados de esas pruebas para mejorar nuestras app antes de su lanzamiento.

4.000 nuevas APIs

No, no vamos a repasar el total de nuevas APIs que se incluyen en el sistema, pero sí las partes más interesantes que se vieron en la presentación y que suponen un salto de gigante sin precedentes. Apple ha conseguido la forma de, sin perder la seguridad de la estructura de sistema que lo caracteriza, poner a disposición de los desarrolladores incluso la posibilidad de modificar o ampliar las funciones del propio sistema operativo.

Extensiblity y widgets

La función más increíble que ha desarrollado Apple. Esta extensibilidad es un servicio publicado dentro del sistema, en espera de recibir respuesta, y que permite el flujo y el intercambio de información entre apps incluso a nivel de interfaces y no solo de proceso. Si tenemos la app A (sea o no del sistema), podemos hacer uso de funciones que nos proporciona la app B, obteniendo el resultado de esta gestión no en la B si no en la A. Y no solo eso, si no que podemos hasta ver partes de la interfaz de la app B dentro de la A para permitirnos personalizar el resultado.

Extensibility Apple WWDC 2014

Cada app de la App Store está dentro de un “cubo” de seguridad (un sandbox) que le permite trabajar con sus propios datos pero no puede acceder ni al sistema ni a otra app. Ahora, la app podrá publicar servicios que podrán ser invocados por otra, como si fuera parte del sistema, para ampliar su funcionalidad.

Por ejemplo, podemos desde Instagram usar los filtros de fotos de VSCoCam, sin salir de Instagram. O podremos ampliar las fuentes a las que compartir con la opción por defecto del sistema o incluso invocar servicios que hagan cosas concretas con el contenido a través de acciones, como que nos traduzca una página web de Safari usando la app de Bing Traslator o Google Translate, sin salir del propio Safari.

Esto permite no solo ampliar las funciones por defecto del sistema instalando nuevas apps, sino que permite una multitarea real mucho más eficiente a todos los niveles (de proceso y consumo de energía) además de una experiencia de usuario integrada dentro de un mismo contexto. No hace falta que grabemos el fichero y lo abramos con la otra app, simplemente usamos las funciones que tiene la app en que estamos y por lo tanto no perdemos el foco de trabajo. Mucho mejor que una multitarea entre aplicaciones.

Este sistema es el que permite que, por ejemplo, iCloud Drive pueda soportar cualquier proveedor de almacenamiento en la nube, sin tener por qué ser iCloud. Que podamos usar cualquiera que queramos: OneDrive, Dropbox, Box.net, iCloud o incluso si tenemos un servidor NAS en casa con acceso a Internet, podremos usarlo como fuente para nuestros archivos con un explorador de los mismos directamente en nuestro iPhone o iPad. Solo hace que las apps correspondientes publiquen estos servicios para ampliar el sistema.

Extensibility Widgets

Y por supuesto, esta ampliación de servicios del sistema también incluye la posibilidad de incluir widgets en el centro de notificaciones. De esta forma, se pueden instalar estos complementos que al ser consultados, podrán llamar a la app correspondiente pidiendo los datos (sin abrirla) y los mostrará directamente. De hecho, la interfaz de widgets permitirá interactuar con la información en tiempo real, invocando nuevos servicios como poder aceptar una puja por un objeto en eBay, dar un “me gusta” a un elemento de Facebook o un retweet, directamente desde el mismo Centro de Notificaciones.

Apple ha conseguido que las librerías que ellos han usado para hacer esto entre sus propias apps del sistema, se puedan extender a apps de terceros y todos podamos usarlo, sin perder seguridad, de una manera mucho más eficiente y dando un paso más allá de la común multitarea real que todos conocemos. Solo por esta función, todo iOS 8 es ya mucho más que cualquier actualización anterior porque solo hay que pensar a qué nivel de integración de apps puede llegar nuestro dispositivo y además siendo una experiencia única para cada uno.

Otra de las funciones que permite la extensibilidad es poder instalar teclados de terceros que sustituyan a los teclados por defecto en todo el sistema. Por seguridad, dichos teclados no tienen acceso a la Red (con el fin de proteger la privacidad de aquello que escribamos), pero si alguno de ellos lo requiere puede activarse previa aprobación por nuestra parte de pasar por alto dicha seguridad. Como es lógico, jamás recomendamos usar teclados que necesiten conectividad a red por muchas grandes funciones que prometan: el teclado se usa para meter todo tipo de datos de claves o de seguridad que no es conveniente que viajen por la red.

Touch ID, cámara y fotos

Resulta inquietante que solo el 49% de los usuarios de iPhone usen clave de bloqueo. Dicha clave, no solo protege a que cualquiera acceda a nuestra información, además encripta los datos más relevantes como fotos, contactos o correos, para evitar que cualquiera pueda acceder a ellos pinchado nuestro terminal en un ordenador. Sin embargo, con la llegada del reconocimiento dactilar del iPhone 5s, este uso ha aumentado hasta el 83%.

Touch ID TouchKit

El siguiente paso, por lo tanto, es proveer un servicio muy simple y sencillo que nos permita identificarnos en una app a través de la huella. De esta forma, cualquier app en que queramos entrar solo necesitará que usemos Touch ID. Ojo: la seguridad obliga a introducir siempre la primera vez la clave de bloqueo del sistema tal cual y usar Touch ID a partir de la segunda vez. La información de la huella nunca sale del procesador y ni siquiera el sistema puede acceder a estos datos, solo permite preguntar si la huella es correcta o no, lo que da las mejores garantías de seguridad.

También hay una nueva librería de cámara que permite modificar casi cada uno de los parámetros de la misma y que aplicaciones de terceros puedan usarla: exposición, foco, balance de blancos… parámetros a los que antes no podía accederse y que la app de Cámara oficial hacía automáticamente. Ahora es completamente accesible para proporcionar una nueva generación de apps de fotografía mucho más preparadas y profesionales que hasta ahora. Unido a esta, un nuevo Kit de fotografía permite editar con las funciones del sistema, hacer modificaciones sin perder la foto original y un mejor rendimiento.

HomeKit

Esta es otra de las partes menos comprendidas de la presentación. Básicamente, Apple ha dejado claro, como hizo con HealthKit (la librería que alimenta la nueva app Health de datos) que la domótica hoy día no tiene una solución estándar. Cada fabricante crea una app independiente para controlar sus propios productos pero no hay una experiencia homogénea.

HomeKit iOS 8

Lo que Apple ha hecho ha sido crear esa norma y ofrecerla a la gran mayoría de grandes fabricantes para que la implementen. De esta forma, ya no habrá una app de la puerta del garaje para abrirla, u otra de las persianas o la que baja o sube la intensidad de la luz. Ahora el control de las centralitas de domótica de hogar o el control de cada elemento independiente como la seguridad, vídeo-vigilancia, calefacción, aire acondicionado, puerta, ventanas, luces, electrodomésticos, enchufes programados, electro-válvulas de apertura y cierre de gas o agua, sensores de humo, humedad o alarmas… todo se controla desde un mismo centro de control de una misma app y además integrado con Siri, quien podrá interactuar y crear funciones de grupo por acciones y elementos.

Esto permite un único punto de entrada a todos los productos y que, por ejemplo, podamos dar órdenes a Siri para apagar todas las luces de la casa, subir las persianas de una habitación, controlar la temperatura o funcionamiento de electrodomésticos del hogar o tener un perfil de irse a dormir o salir de casa que se active con nuestra orden. Si decimos que vamos a dormir, Siri podrá comprobar que las puertas están cerradas, que las persianas están bajadas (y si no lo están bajarlas), que el televisor esté apagado… lo que queramos. O por ejemplo, que al salir active la alarma, apague la calefacción o el aire, baje las persianas a media altura y apague las luces de toda la casa.

Tendremos que esperar unos meses a que los fabricantes empiecen a integrar estos servicios, pero en principio todos los más importantes han aceptado implementar estos sistemas en esta nueva norma abierta.

CloudKit

iCloud da un salto adelante de gigante y ahora permite ser backend de aplicaciones, no solo para funciones de usuario. Igual que los usuarios almacenan sus datos, las apps ahora podrán también almacenar datos de aplicaciones, lanzar búsquedas, notificaciones, integrar autenticaciones, y casi cualquier cosa que necesitemos. En vez de tener que desarrollar una app que se comunique con servicios donde se ejecuten las funciones, CloudKit proporcionará estos servicios de forma que el propio programa y la lógica de nuestras funciones, podrá estar en nuestra app y no remotamente, por lo que no necesitaremos crear un servicio web asociado a nuestra app.

Este servicio es gratuito con determinadas limitaciones, impuestas por el uso general que se de a título general de nuestra app (como la gran mayoría de servicios de backend que hay en el mercado). En función del número de usuario permite un límite de 1 PetaByte de recursos y 10 TeraBytes de almacenamiento de base de datos. Todo ello con un límite de tráfico total de tus usuarios de 5TB al día en recursos (assets) y 50GB al día en transferencia de datos para base de datos.

Metal

La solución de Apple para llevar el procesador A7 a otro nivel en cuanto a juegos AAA. Hasta ahora, la solución para juegos 3D era usar la compatibilidad con OpenGL ES, el estándar que tienen todos los móviles. Pero en respuesta al Direct3D de Microsoft, Apple ha creado su propia capa de gráficos avanzados con Metal.

Metal WWDC

Metal reduce considerablemente la capa de abstracción hasta acceder a las funciones del procesador gráfico, además de proporcionar funciones avanzadas de gráficos hasta ahora no disponibles en el estándar móvil OpenGL ES. Apple promete una mejora de más de 10 veces en velocidad de dibujado, proceso multi-hilo, shaders de efectos precompilados, gestión más eficiente de gráficos y computación. Todo diseñado para los 64 bits del procesador A7.

Apple ha llegado a un acuerdo con Unity, Crytek, Epic Games (responsables de Unreal Engine) y la propia Electronic Arts con su motor Frostbite, que es la primera vez que se adapta para móvil, para usar Metal. Por eso EA prepara el lanzamiento de “Plants vs. Zombies Garden Warfare”, con efectos y calidad que hasta ahora no han podido verse en móviles o tabletas. Todos funcionarán con Metal de aquí a otoño para llevar los últimos dispositivos Apple a un nivel de consola a todos los efectos, lo que aparte prepara el camino para el futuro AppleTV con juegos y procesador A7 de 64 bits.

SpriteKit y SceneKit

Los motores gráficos para juegos casuales en 2D y 3D también tiene su actualización o presencia. SpriteKit, que ya fue presentado el pasado año, evoluciona con nuevas funciones como fuentes de luz, campos de fuerza dentro de la física, fuerzas cinemáticas inversas o, una de las cosas más interesantes, colisiones pixel-perfect a través de física, algo que siempre ha sido muy complejo en entornos 2D. Hasta ahora, lo normal es que el choque de un objeto con otro se calculara por el cuadro que lo contiene (incluyendo la parte transparente). Ahora, la forma física de los objetos se crea automáticamente y el propio sistema controla que los objetos choquen realmente los unos contra los otros, todo un paso de gigante.

SceneKit, que desembarca en iOS desde OS X, igualmente proporciona un entorno de desarrollo básico de 3D similar a otras librerías ya presentes como Cocos3D, donde podemos hacer desarrollos básicos e interesantes para juegos casuales y que abre una nueva puerta, incluso de conversión entre un entorno y otro para adaptar fácilmente juegos 2D a 3D. Integra acciones por script, físicas de objetos, sistemas de partículas y un sinfín de mejoras.

Swift

Pero si hubo un lanzamiento que provocó la gran sorpresa de todos, fue el de Swift, el nuevo lenguaje de programación de Apple definido como Objective-C pero sin C. Un proyecto completamente secreto que se lleva gestando más de 4 años y que fusiona lo mejor de un lenguaje de scripting con las posibilidades de otro muy pegado a la capa hardware y que da un rendimiento muy superior al propio Objective C o a otros lenguajes como Phyton, que es su principal inspirador.

Swift

Rápido, moderno, seguro e interactivo. Es como lo define Apple. Sus posibilidades son muchísimas y tiene lo mejor de los muchos lenguajes que hay ahora mismo en el mercado: genéricos, variables implícitas, compilación a código nativo, funciones con múltiples valores de resultado y tipo, protocolos y extension definidos como estructuras, iteraciones rápidas…

Además permite el uso de un entorno llamado PlayGround (dentro de Xcode 6). Dicho entorno lleva las pruebas de la app y sus resultados a otro nivel, donde pueden verse los resultados de las funciones o ecuaciones en tiempo real mientras codificamos. También las veces que el sistema ejecutará una iteración, los pasos incluso en gráficas que dará el cálculo de una variable o podemos ejecutar un programa o juego y conseguir (sin necesidad de usar simulador de iOS) que su ejecución se detenga o podamos moverlo adelante o atrás viendo los resultados de la ejecución y controlando el momento de ejecución.

Swift Playground

Elimina multitud de errores de compilación y desarrollo que hasta ahora se tenían, crea ciclos más eficientes, es completamente nativo pero puede integrar Cocoa y Cocoa Touch y cualquiera de las APIs existentes. Además se compila con el mismo compilador que se usaba hasta ahora, está optimizado y auto-vectorizado y la gestión de memoria es mediante conteo automático de referencias lo que nos permite olvidarnos de reservar espacio y luego liberarlo, como ya sucedía con determinados desarrollos en Objective-C.

Sé que muchas de estas cosas no serán entendidas por muchos de los que leéis esto. Pero Swift no sustituye a Objective-C. Xcode 6 permite usar en una misma app o juego código Swift, código C y Objective-C. El gran error de mucha gente es pensar que Metal sustituye a OpenGL ES y que Swift elimina a Objective-C. Pero no es cierto: Apple suma, no sustituye. Swift puede ser usado tanto en iOS como OS X, como es lógico.

Conclusiones

Podéis creerme que he intentado resumir al máximo todo, y puedo garantizar que hay literalmente cientos de miles de nuevas posibilidades que ofrecen estas nuevas herramientas, nuevas librerías o el nuevo lenguaje de programación. Es el salto más importante que Apple ha dado jamás en desarrollo desde el lanzamiento de la App Store y la SDK de iOS en 2008 y lo ha situado de nuevo a larga distancia del resto de fabricantes.

Por lo tanto, si piensas que iOS 8 y OS X Yosemite no son para tanto, es porque ahora mismo no puedes verlo sin hacerlo en perspectiva de medio plazo. Realmente lo que importa no son las funciones de usuario que el sistema puede aportar, donde Apple no se centró demasiado en presentarlas, lo importante es todo lo que los desarrolladores y el entorno de desarrollo permite a partir de ahora. Las posibilidades que tiene iOS 8 son inimaginables y solo con el tiempo seremos plenamente conscientes de hasta dónde puede llegar el sistema.

Muchas veces lo he dicho y soy de la opinión que cuanto más tiempo pasa, más mérito tiene porque es muy complicado estar a la altura. Pero cuando todos pueden pensar que alguien está acabado, que está en modo “tarifa plana” y que ya no puede dar más, vuelven a demostrar que ni mucho menos: lanzan todo lo que han lanzado y callan la boca a todos. Porque lo que han hecho es algo que va más allá de todo lo que pudo rumorearse y mucho más allá de lanzar nuevos dispositivos. Tiempo al tiempo… La verdadera innovación viene ahora del software.

Archivado en HealthKit, HomeKit, SceneKit, SpriteKit, Swift, Widgets, Xcode 6
COMPARTIR 0 TWITTEAR

Comentarios (17)

Usa tu cuenta de Facebook para dejar tu opinión.

Publica tu opinión usando tu cuenta de Facebook.

Otras webs de Difoosion