develop apps for (apple) tv

41
DEVELOP APPS FOR (APPLE) TV Francesco Novelli

Upload: francesco-novelli

Post on 13-Apr-2017

188 views

Category:

Software


2 download

TRANSCRIPT

DEVELOP APPS FOR (APPLE) TV

Francesco Novelli

FRANCESCO NOVELLI

• iOS Developer since 2009

• Web Developer (LAMP)

• Development Book Author

• BLINKAR employee

• Lovers

Thanks to BLINKAR

www.blinkar.com

AGENDA

• Apps vs. TV?

• Apple TV!

• tvOS SDK

• TVMLKit

• Design Principle

• Recap

SMART TV!

NO!

Apple TV

Apple TV 2/3

Apple TV 4

2007

2010 2012

2015

APPLE TV 4

• Nuovo OS, tvOS

• AppStore

• Nuovo Remote

• Siri

TVOS• Semplice da controllare

• AppStore SOLO per TV

• SDK per sviluppatori

• Basato su iOS (e OSX)

• Game-platform

SIRI REMOTE

• Touch Surface (with tap)

• Accelerometer

• Giroscope

• Microphone

• Tasti (menu, play)

GAME CONTROLLER

• OPTIONAL

• Più tasti

• Utilizzabile anche per le interfacce

• Massimo di 2 controller (più il telecomando)

Frameworks On-demandResources Focus

TVOS FRAMEWORKS• UIKIT

• Metal/OpenGL

• AVKit

• CoreLocation

• CoreImage

• CoreMedia

• ….

NEW TVOS FRAMEWORKS

• TVMLJS

• TVMLKit

• TVServices

TVSERVICES FRAMEWORK

• Top Shelf

• Utile per le prime 5 app (Dock)

• Media content

• Velocizzare apertura di contenuto

• Gestito da tvOS

ON-DEMAND RESOURCES

• 200MB AppStore limit

• Tag bundle

• TV è sempre connessa

• Download interface

• Gestione automatica della cache

ICLOUD STORAGE

• TV 32GB o 64GB

• iCloud KVS fino a 1MB

• CloudKit oltre 1MB

• Servizi cloud

• Evitare servizi con login (GDrive, Dropbox etc)

FOCUS DRIVEN DESIGN

• Niente dita sullo schermo

• Indirect Manipulation

• Focus su un elemento prima del tap

• Far avvicinare l’elemento all’utente

• Parallax effect

FOCUS MODEL

• Standard UIKit Control

• Elementi grandi abbastanza

• Cambio focus fluido

• Rendere il Focus ovvio!!!

PARALLAX EFFECT

• Parallax Previewer

• Parallax Exporter (per Photoshop)

• Effetto grafico integrato in UIKit

• Do not reinvent the wheel!

A B C

TVMLKIT

func application(application: UIApplication , didFinishLaunchingWithOptions launchOptions: [ NSObject : AnyObject ]?) -> Bool {

self.window = UIWindow(frame: UIScreen.mainScreen().bounds) let appControllerContext = TVApplicationControllerContext() let javascriptURL = NSURL(string: “https://sample.cloud/app.js“) appControllerContext.javaScriptApplicationURL = javascriptURL! if let options = launchOptions { for (kind, value) in options { if let kindStr = kind as? String { appControllerContext.launchOptions[kindStr] = value } } } self.appController = TVApplicationController(context: appControllerContext,

window: self.window, delegate: self) return true }

TVML

• 1 TVML per View

• Template pronti (alert, catalog, compilation etc)

• HTML Style

• TVML Style (CSS)

TVML: PROS AND CONS

• Easy

• Fast

• No ObjC

• No Swift

• Web

• No Flexibility

• No personalization

• Slow

• Network dependent

• No games

DESIGN PRINCIPLES

• Connected

• Clear

• Immersive

CONNECTED

• Utente e TV devono sentirsi vicini

• Gesture

• Parallax Effect!

CLEAR• Mantenere app semplici

• Utenti devono usare le app in modo istintivo

• Menu Button torna SEMPRE indietro

• Semplice da leggere da lontano

• Nessuna gesture complicata

IMMERSIVE

• Usare TUTTA la TV per il contenuto

• edge-to-edge artwork

• Meno elementi grafici possibili

Thanks! Q&A TimeFrancesco Novelli [email protected]

@if9

http://www.9lli.it/francesco

www.blinkar.com