<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=160269078105920&amp;ev=PageView&amp;noscript=1">

Conociendo el tvOS Focus Engine

Viernes 16 de Noviembre 2018.
Tiempo de Lectura: 4 minutos.
Por Alejandro Artavia

Como colegas desarrolladores de iOS, por lo general nos sentimos muy cómodos sabiendo que podemos contar con las infinitas posibilidades que ofrece UIKit y las capacidades de entrada multitáctil para el hardware del iPhone y el iPad.

Si aún no lo ha probado, tenga en cuenta que tvOS limita estas capacidades ya que no hay pantalla táctil para el formato de TV, pero como es habitual, Apple ofrece una solución inteligente para que los usuarios puedan interactuar con las aplicaciones de una manera más natural, fácil y sencilla.

Como se indicó anteriormente, iOS ofrece una amplia gama de controladores de vista, controles y otros componentes útiles para crear interfaces de usuario con UIKit, que por supuesto puede usar en tvOS, pero no necesariamente de la misma manera.

A pesar de que portar aplicaciones de iOS a tvOS es algo simple, el paradigma para la televisión UIKit  es muy diferente. Se presenta el motor de enfoque tvOS.


¿Cómo funciona el Focus Engine?

Los usuarios pueden  navegar por la pantalla moviendo el enfoque de un elemento a otro utilizando la elegancia del Siri Remote. Durante esta interacción, el elemento enfocado se destaca en la pantalla proporcionando más sentido y sensación del movimiento.

focus-engine1

El motor Focus de tvOS es bastante impresionante pues puede usarse para navegar por TabBars, vistas de tablas y por vistas de colecciones, entre otros. Toma el siguiente ejemplo del teclado del campo de texto:


unnamed

 

Para darte una pista, las clases de UIKit que se pueden enfocar se reducen a:

  • UIButton
  • UIControl
  • UISegmentedControl
  • UITabBar
  • UITextField
  • UISearchBar (aunque UISearchBar en sí no es enfocable, su campo de texto interno si lo es)

Esta oferta puede ser  bastante limitada sin duda, pero significativa y útil para el televisor .

Para determinar si una vista o un botón o cualquier otro componente está enfocado, puede hacerlo a través de este simple modo:


simpleButton.focused()


Enfoque de apoyo

tvOS proporciona un protocolo UIFocusEnvironment muy útil que se encarga de la comunicación entre el motor de enfoque y la aplicación en la jerarquía de vistas. Las clases UIKit que se ajustan a este protocolo son UIView, UIViewController, UIWindow y UIPresentationController, siendo estas las clases que controlan las vistas en la pantalla.


Por ejemplo, puede admitir Focus in View Controllers anulando el UIFocusEnvironment antes mencionado y delegar métodos para personalizarlo al:


  • Reemplace el preferredFocusedView: para especificar dónde debe comenzar el enfoque de forma predeterminada.
  • Anule  shouldUpdateFocusInContext: para definir hacia  dónde se puede mover el foco.
  • Reemplace didUpdateFocusInContext: con AnimationCoordinator: para responder a las actualizaciones de enfoque cuando se producen y así actualizar el estado interno de su aplicación.


Solicitud de enfoque


Los desarrolladores pueden solicitar un enfoque para actualizar la interfaz de usuario si es necesario, pero debe administrarse a través del motor de enfoque. SetNeedsFocusUpdate () y updateFocusIfNeeded () de UIFocusEnvironment son los métodos delegados utilizados para interactuar con la pantalla.


Para dar un ejemplo de esto, tome la aplicación tvOS de Vevo como referencia. Cuando se inicia la aplicación, obliga a centrarse en el primer elemento de la vista de colección en la parte superior, como se resalta a continuación:

unnamed (1)


Los Principios de Focus Engine

El diseño para Apple TV requiere un enfoque diferente cuando se trata de la navegación y la interacción del usuario. Tenga en cuenta los siguientes principios cuando tenga que decidir cuáles  componentes usar y cómo organizar el diseño:


  • Solo un elemento puede tener foco en un momento dado.
  • Los usuarios cambian de enfoque seleccionando una dirección en el control remoto.
  • Sólo el usuario puede cambiar el enfoque direccionalmente
  • El enfoque es gestionado por el entorno de enfoque.

El Focus Engine es una poderosa herramienta que puede aprovechar en sus aplicaciones de tvOS y seguramente se volverá más familiar después de trabajar para esta plataforma durante algún tiempo. Poder aprovechar las buenas prácticas y las pautas de interfaz humana proporcionadas por Apple, lo llevará a un lanzamiento exitoso del producto, aprovechando los marcos impresionantes y bien diseñados que proporciona.


Acerca Avantica

En Avantica trabajamos como un socio de software que le ayuda a cumplir sus objetivos comerciales y dar solución a cada reto que se le presente. 

Ofrecemos equipos dedicados y buscamos constantemente las mejores metodologías para brindarle los mejores resultados.

Iniciemos un proyecto

ANTERIOR
7 Beneficios de hacer Software Testing y pruebas de Calidad (QA)
SIGUIENTE
4 Claves para la estimación del esfuerzo de QA

TAMBIÉN LE PODRÍA INTERESAR