Develop apps for (Apple) TV
-
Upload
francesco-novelli -
Category
Software
-
view
187 -
download
2
Transcript of Develop apps for (Apple) TV
FRANCESCO NOVELLI
• iOS Developer since 2009
• Web Developer (LAMP)
• Development Book Author
• BLINKAR employee
• Lovers
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)
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!
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
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