Cuando me preguntan qué es lo que más me gustó de la última keynote de Apple, siempre dudo entre la camisa de Eddy Cue y el nuevo Apple TV. Pero como no soy muy fan de la costura, voy a contarte mi experiencia programando en tvOS con esta serie de tutoriales. ¿Comenzamos como siempre en el “Hola mundo!”? En este caso, un poco antes.

Desarrollando para tvOS. Xcode

Programando en tvOS

Antes de nada, las presentaciones. tvOS es el sistema operativo elegido para llevar el control del nuevo Apple TV. iOS, watchOS y ahora tvOS (no descartes macOS como sustituto de OS X).

La similitud de nombre entre tvOS y iOS no es casual, y está mas presente cuando vemos que contiene muchos de los frameworks que ya conocemos de iOS. En este listado tienes las diferencias entre iOS 9 y tvOS 9 (comienza en la versión 9, sí). De las tres APIs añadidas hablaré un poco después.

Así que para programar en tvOS necesitas más de lo mismo que para programar en iOS: un Mac y Xcode, en este caso en su versión Xcode 7.1 beta. La novedad viene con la posibilidad que nos ofrece Apple de programar Apps para tvOS sin utilizar frameworks iOS, y usando unos medios más propios de la programación Web, en lo que Apple denomina TVML Apps.

tvos-swift-vs-objective-c

Aplicaciones personalizadas con tvOS

Para programar aplicaciones personalizadas (o Custom Apps) en tvOS, sólo has de refrescar tus conocimientos de los frameworks iOS más habituales: UIKit, CloudKit (imprescindible aquí), SpriteKit, etc.

En cuanto a lenguaje de programación, más de lo mismo que en iOS: Objective-C o Swift. Es más, si tienes tu aplicación desarrollada para iOS, portarla a tvOS no te va a costar prácticamente nada (o al menos es lo que Apple promete).

Respecto a juegos, tvOS soporta SpriteKit y SceneKit, por lo que no debería haber problema para que funcionen en el Apple TV. De hecho, en la keynote presentaron el Crossy Roads de iOS para tvOS, aunque creo que está desarrollado en Unity (así que supongo que también tendrá soporte para Unity).

Foco en tvOS

Mantén el foco en tvOS

Si hay algo que me encuentro en cualquier parte de la documentación oficial de Apple sobre tvOS es la palabra foco (focus). Es un sistema de control que cambia tanto la forma de desarrollar que tenemos en iOS que Apple le ha dado un nombre propio (otro más): focus engine. Por lo que yo he entendido, los mandamientos del focus engine se resumen en tres:

  1. El foco siempre debe estar en algún elemento
  2. El foco se encuentra sólo en un elemento
  3. Tú no decides donde está el foco. Es el focus engine el que manda

Poniendo un ejemplo, resulta que terminas de diseñar tu App para tvOS en el Storyboard, el usuario la inicia, y desliza el dedo hacia un lado en la superficie táctil del Apple Remote. ¿Qué crees que va a ocurrir? Pues tan sólo que el focus engine, que es muy listo, decidirá la vista a la que saltar, dependiendo de lo cercana que esté a la vista actual, ya sea a su derecha o a su izquierda, dependiendo del swipe.

Parallax Apple TV tvOS

Parallax en tvOS

El tema del parallax está pegando fuerte últimamente en diseño Web, multimedia y ahora también lo tenemos en tvOS. Y no hace falta irse a SpriteKit y utilizar un fondo en un arcade 2D, ni mucho menos, ya que lo tenemos presente desde la primera vez que aparece nuestra aplicación en pantalla: en el icono de nuestra App.

Creo que el objetivo es dar feedback al usuario de la situación de su dedo en la superficie táctil respecto a la aplicación o elemento seleccionado en pantalla. Así sabes si aún estás en la aplicación que deseas y cuanto te queda para que el foco salte a la siguiente. El efecto es chulo.

Para conseguirlo lo único que debes hacer es separar el icono en tres capas independientes con transparencia. Luego, las cargas en la aplicación Parallax Previewer App que Apple ha creado al efecto y, pulsando el Play, verás la animación.

En el caso que ves en el ejemplo, yo he utilizado tres capas:

  • Capa de fondo azul con degradado
  • Capa con el Mac
  • Capa con el logo de pacocardenal.com y las nubes en la parte inferior

Ese es el orden que he utilizado en la App de Apple, y este es el resultado convertido a animación GIF. No es una obra maestra, pero llama más la atención que un icono inanimado.

De todas formas, también en Apple Developer tienes una guía para crear diseños parallax incluyendo toda la información sobre la Parallax Previewer App.

El Apple TV remote en tvOS

La caja negra del Apple TV sigue siendo una caja y sigue siendo negra, aún con todos los cambios internos. Pero para utilizar el Apple TV necesitamos un control remoto, y esto es lo que más cambia.

En tvOS puedes interactuar con las aplicaciones gracias al control remoto de tres formas diferentes:

  • Con la superficie táctil
  • Con Siri
  • Con su giroscopio

En el simulador, por lo que he probado, podemos despedirnos de momento de dos de ellas (Siri y giroscopio) y la primera no es todo lo precisa que me esperaba (o yo soy más torpe de lo que suponía).

Esperaremos a tener el dispositivo físico para probar su control por Bluetooth que promete ser instantáneo y ¿preciso?. Por el momento, Apple recopila aquí todo lo relacionado con el control de la interface de usuario.

tvOS prohibido

Los “no hijo no” de tvOS

Dos cosas me han llamado la atención en cuanto a las prohibiciones de tvOS: la imposibilidad de guardar NADA en local y la limitación del tamaño de la aplicación a 200MB.

Comenzando por la segunda, si tu aplicación (alias juego), ocupa más de 200MB, ya puedes ir repasando las charlas de On-Demand Resources de la WWDC (¡que tíos!, parece que lo tuvieran planeado), porque el excedente de esos 200MB deben ir descargando mientras el usuario completa un nivel, fase o mata al jefe fin de pantalla.

En cuanto a la persistencia en local, se convierte en persistencia en el local donde estén los servidores de iCloud. Puedes, desde utilizar el KVS de iCloud hasta darle un repaso a las novedades de CloudKit de este año. Sea como sea, iCloud (u otro servidor de back-end) se hace imprescindible si de guardar información se trata.

Por último hay un no hijo no deducido de las APIs que desaparecen. Si quieres mostrar una vista Web, página Web o cualquier cosa relacionada con un navegador, no puedes.

Chiste tvOS JavaScript

Aplicaciones TVML

Las APIs que se añaden con tvOS son solamente tres: TVMLJS, TVMLKit y TVServices. Las que corresponden al nuevo lenguaje de marcado de Apple, TVML (Television Markup Language) son las dos primeras.

TVMLJS son las APIs JavaScript (se puede programar para tvOS en JavaScript, sí) para mostrar las aplicaciones TVML, mientras que TVMLKit permite incorporar tanto ficheros TVML como JavaScript. En realidad aún no he utilizado nada de esto, pero en cuanto descubra como funciona, lo comento.

Como parece que va a facilitar mucho la vida en el desarrollo de aplicaciones cliente servidor, para el que tenga experiencia en el desarrollo Web con estas tecnologías, aquí está la aplicación de ejemplo de Apple con TVML.

Señor tvOS, ¿algo más que declarar?

Para terminar esta introducción, hablar de los TVServices. Un nuevo framework que permite mostrar contenido en la fila superior de la interfaz inicial del Apple TV. Se pueden crear desde simples banners con imágenes a notificaciones interesantes de tu aplicación (eso sí, olvídate de publicidad, que los señores de Cupertino lo dejan bien clarito).

Aún estoy echando un vistazo a la referencia del framework TVServices, pero parece tener muchas posibilidades y ser algo diferenciador a lo que encontramos en iOS. Si funciona como debería, no me extrañaría que lo viésemos implementado en otro xOS.

Como no, tvOS viene también acompañado de las recomendaciones de diseño de interfaz para tvOS de Apple. Ahí encontrarás desde el tamaño de los iconos (400 x 240 en pantalla) hasta recursos como plantillas Photoshop.

Por último, y si vas a probar con el simulador de Xcode, avisarte de dos cosas:

  • Es muy tocho. Necesitarás reducirlo mediante la opción Window > Scale (si eres propietario de un iMac 5K, ignora este punto).
  • El Apple TV Remote del simulador no aparece por defecto. Puedes acceder a él mediante Hardware > Show Apple TV Remote. ¿Por qué no aparece por defecto? ¿Por qué tras el pelazo de Craig Federighi viene el propio Craig? Son enigmas sin resolver.

Libro tvOS pacocardenal.com

A darle caña a tvOS. Yo sigo enganchado con él. No te digo más que estoy pensando en hacer algo como esto, aunque creo que me estoy calentando…

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR

Aviso de cookies
¿Quieres contenidos Mac exclusivos?

¿Quieres contenidos Mac exclusivos?

Regístrate y de regalo recibirás la colección de eBooks de pacocardenal.com

Te has registrado correctamente. Ahora revisa tu correo electrónico (spam incluido) para verificar tu suscripción.

Pin It on Pinterest

Share This