apple tv meet up slides

Download Apple TV Meet Up Slides

Post on 14-Apr-2017

482 views

Category:

Mobile

0 download

Embed Size (px)

TRANSCRIPT

  • Development

  • tvOS Development DATOS DE CONTACTO

    ORADORESJuliana Caccavo: juliana.caccavo@globant.com / @JulieCaccavo

    Daniel Pilla: daniel.pilla@globant.com / @pilladeMatas Fernandez: mr.fernandez@globant.com / @MatiasSF9

    Gernimo Garcia: geronimo.garcia@globant.com / @geronimogarcia Pablo Vittori: vitto@globant.com / @pablovittori

    Matas Burcheri: matias.burcheri@globant.com / @matbur

    COMMUNICATIONShello@globant.com / @Globant WANT TO JOIN OUR TEAM?

    cv@globant.com

    mailto:juliana.caccavo@globant.comhttps://twitter.com/julieCaccavomailto:daniel.pilla@globant.comhttps://twitter.com/pillademailto:mr.fernandez@globant.comhttps://twitter.com/MatiasSF9mailto:geronimo.garcia@globant.comhttps://twitter.com/geronimogarciamailto:vitto@globant.comhttps://twitter.com/pablovittorimailto:matias.burcheri@globant.comhttps://twitter.com/matburmailto:hello@globant.comhttps://twitter.com/globantmailto:hello@globant.commailto:cv@globant.commailto:cv@globant.com

  • tvOS Development CONTENT

    CDIGOConstruyendo la app base de tvOS

    DESARROLLO CON JSFrameworks: TVMLJS y TVMLKit

    INTRODUCCINCaractersticas, hardware, frameworks y limitaciones

    CASOS DE XITODemo

  • El nuevo paradigma de TV

  • Nuevo sistema operativo para Apple TV (4ta Gen).

    Primer SO para Apple TV abierto a terceros para desarrollo.

    Basado en iOS: conceptos similares y soporte a frameworks como Metal, UIKit, CloudKit, entre otros.

    tvOS SDK 9.0 agrega adems nuevos frameworks propios.

    Trae al Apple TV un App Store propio y soporte para Siri.

    INTRODUCCIN

    tvOS: El futuro de la TV son las Apps

    Objetivo Proporcionar una experiencia de usuario mucho mas completa, haciendo nfasis en la interaccin, ya sea a travs redes sociales, juegos, o nuevos contenidos.

  • Hardware: Apple TV 4ta Gen 64-bit A8 processor

    32GB or 64GB of storage

    2GB of RAM

    10/100Mbps Ethernet

    WiFi 802.11a/b/g/n/ac

    1080p resolution

    HDMI

    New Siri Remote / Apple TV Remote

    Bluetooth 4.0

    INTRODUCCIN

  • El tamao de una aplicacin est limitado a 200 MB. Una app solo dispone de 500 KB de almacenamiento local para persistencia (NSUserDefaults).

    Opciones para manejar estos recursos:

    Almacenar y obtener informacin de usuarios desde iCloud (CloudKit y iCloud KVS).

    Descargar la informacin necesaria a la cach Mientras la aplicacin est corriendo, la cach no elimina datos descargados. Usar cach de manera criteriosa.

    Acceder a assets de solo lectura a traves de On-demand Resources - Hasta 20 GB. (iOS 9 y tvOS)Aplicaciones ms chicas, Lazy loading de recursos, Almacenamiento remoto de recursos poco frecuentes.

    INTRODUCCIN

    Hardware: Almacenamiento

  • INTRODUCCIN

    App GroupsBackground Modes

    Data ProtectionGame Center

    Game ControllersiCloud

    In-App PurchaseKeychain Sharing

    Address BookApple PayCalendarHealthKitHomeKitiMessage

    MapsPersonal VPN

    PhotosPush Notifications

    Wallet

    tvOS: Capacidades Soportadas

  • tvOS SDK 9.0: Frameworks

    INTRODUCCIN

    WebKitHealthKitHomeKit

    Social

  • Apple TV: Control RemotoEn los pases que est disponible Siri, se llama Siri Remote. En el resto, simplemente Apple TV Remote.

    INTRODUCCIN

  • Game ControllerINTRODUCCIN

  • Requerimientos para Juegos

    Deben soportar el Control Remoto.

    Si soportan Game Controllers, deben soportar extended control layout.

    Se deben poder jugar usando standalone controllers (conforman con protocolo MFI).

    Deben soportar el botn de Pausa.

    INTRODUCCIN

  • Apple TV Remote como Game Controller

    El touchpad se puede usar como D-pad. Provee datos analgicos como input.

    Se puede usar tanto con orientacin portrait como landscape.

    El touchpad adems funciona como botn principal al hacer click (botn A).

    El botn de Play/Pause es otro botn digital (botn X).

    El botn de Men funciona como Pausa.

    INTRODUCCIN

  • Limitaciones del Simulador

    Acelerometro Siri MetalKit

    El control remoto fsico se puede conectar al simulador para probar el Acelermetro y Siri.

    INTRODUCCIN

  • UI en tvOS

  • No Mouse y No Touch

    En cambio, el nuevo Control Remoto Siri y los Game Controllers

    Macs y dispositivos iOS son generalmente para usuarios individuales

    Con el nuevo Apple TV, la experiencia de usuario es mucho ms social. Varias personas pueden interactuar a la misma vez con una aplicacin.

    Es fundamental disear aplicaciones que aprovechen al mximo estos cambios

    INTRODUCCIN

    UI: Nuevos desafos

  • Un nuevo concepto: Foco

    Es el efecto que se ve en pantalla cuando un usuario interacta con la aplicacin. En Apple TV esta interaccin se realiza mediante un control remoto.

    Estar en foco implica que el usuario puede interactuar con esa vista.

    El framework de UIKit solo soporta interfaces orientadas al uso de foco.

    Solo las vistas pueden recibir foco

    Solo una vista puede estar en foco al mismo tiempo

    INTRODUCCIN

  • Focus Engine Es el encargado de manejar el foco.

    Cuando la jerarqua de vistas cambia, el Focus Engine genera un mapa con las vistas que aceptan foco.

    Si un usuario navega en una direccin, el Focus Engine busca vistas en esa direccin chequeando tamaos y posiciones relativas.

    INTRODUCCIN

  • Clases que reciben foco UIButton

    UIControl

    UISegmentedControl

    UITabBar

    UITextField

    UISearchBar (Una UISearchBar no es focalizable pero su textField si)

    UIImageView (tiene una propiedad adjustImageWhenAncestorFocused)

    UICollectionViewCell / UITableViewCell son excepciones. El foco se determina en el delegado:

    collectionView(_:canFocusItemAtIndexPath:) tableView(_:canFocusRowAtIndexPath:)

    INTRODUCCIN

  • Foco actual Se puede consultar a cualquier vista si est actualmente en foco:

    myButton.focused // true o false

    Tambin se puede consultar a una UIScreen cul es la vista focalizada actualmente (puede no haber ninguna)

    UIScreen.mainScreen().focusedView

    Se puede debuggear una vista para ver porque no est siendo focalizada:

    self.myButton.performSelector(Selector("_whyIsThisViewNotFocusable"))

    ISSUE: This view has userInteractionEnabled set to NO. Views must allow user interaction to be focusable.

    INTRODUCCIN

  • Actualizando el foco

    Solo el Focus Engine puede actualizar un foco.

    Para interactuar con el Focus Engine existe un protocolo: UIFocusEnvironment

    setNeedsFocusUpdate() El foco va a ser actualizado durante el prximo ciclo

    updateFocusIfNeeded() Fuerza una actualizacin del foco inmediata

    En cada ciclo, el Focus Engine pregunta por la propiedad preferredFocusedView. Si no es nula y es una vista focalizable, entonces el Focus Engine va a seleccionar esa vista.

    INTRODUCCIN

  • Un problema comn

    INTRODUCCIN

  • Solucin

    1. Crear un UIFocusGuide

    2. Setear la preferredFocusedView del objeto

    3. Agregarla a la vista padre

    4. Usar constraints

    INTRODUCCIN

  • Top Shelf

    Es el rea superior que aparece en el men Muestra contenido particular de una

    aplicacin y permite la interaccin con ellos.

    INTRODUCCIN

    Importante: Como mnimo, cada aplicacin tiene que tener una imagen esttica que pueda ser mostrada cuando la aplicacin se encuentre en foco y en la fila superior de la pantalla principal.

  • TV Services

    Permite describir contenido de la aplicacin al sistema operativo.

    Qu tenemos que hacer?

    Organizar el contenido que queremos mostrar en una lista simple o en un modelo de jerarquia.

    Crear un objeto de la clase TVContentItem para cada contenido que vamos a mostrar

    Disear un algoritmo que devuelva cada TVContentItem con un identificador nico.

    Agregar una extension, cuya clase principal implemente el protocolo TVTopShelfProvider

    INTRODUCCIN

  • TVContentItem

    TVContentItem tiene una propiedad llamada imageShape que permite setear la forma deseada del contenido.

    None Sin forma Poster Aspect ratio 2:3 Square Aspect ratio 1:1 HDTV Aspect ratio 16:9 SDTV Aspect ratio 4:3 Wide Aspect ratio 8:3 Extrawide Aspect ratio 80:27

    INTRODUCCIN

  • Desarrollando tvOS con JS

  • Nuevos frameworks para tvOS

    Apple introduce los siguientes frameworks nuevos, especficos para tvOS:

    TVMLKit: Provee una manera de incorporar JavaScript y elementos TVML en tu aplicacin.

    TVJS: Describe la API JavaScript utilizada para cargar las pginas TVML que se utilizan para

    mostrar informacin en aplicaciones cliente-servidor.

    TVML: Un lenguaje de markup similar a XML que adhiere a algunos templates de Apple.

    DESARROLLO CON JS

  • Qu es TVMLKit?

    Framework para aplicaciones nativas

    Controla contexto y configuracin de la app

    Punto de entrada para apps TVJS

    Crear elementos custom con TVElementFactory

    DESARROLLO CON JS

  • Qu es TVMLKit? (cont.)

    Television Markup Language

    Lenguaje declarativo basado en XML para templates tvOS

    Cada pgina est construida en base a un template TVML

    Hay elementos simples y compuestos

    DESARROLLO CON JS

  • A la fecha hay 18 templates TVML:

    DESARROLLO CON JS

  • DESARROLLO CON JS

    Un template TVML se ve as:

  • Qu es TVJS?

    Conjunto de APIs para crear aplicaciones cliente-servidor

    Incorpora un subset del DOM

    Usa el motor JavaSc