SlideShare une entreprise Scribd logo
1  sur  28
TVOS
An Introduction for iOS Developers
Eric Hyche, Mobile API Tech Lead
Groupon Consumer iOS Team
DOCKET
• Demo of hardware
• Types of apps
• Drill-down on Focus
Engine
• Build a FlickrTV app
• Resources
• Q&A
THE HARDWARE
• 64-bit A8 processor
• 32GB or 64GB storage
• 2GB RAM
• 1080p resolution
• Siri Remote
SIRI REMOTE
1. Glass touch screen
2. Menu (back)
3. Siri/Search
4. Play/Pause
5. Home
6. Volume
7. Lightning Charging
SIRI REMOTE
• Swipe
• Tap
• Click
SIRI REMOTE
• Swipe
• Tap
• Click
SIRI REMOTE
• Swipe
• Tap
• Click
PARALLAX IMAGES
• Made up of layered
images
• Can produce them with:
• Xcode
• Parallax Previewer
App
• Photoshop plugin
LIMITATIONS
• Max size of app bundle is 200MB. If greater, must use On-Demand Resources
• Limited persistent storage
• 500KB
• Accessed through NSUserDefaults
• Persistent storage > 500KB
• For < 1MB, use iCloud Key-Value Storage
• For > 1MB, use CloudKit
• Must implement your own user accounts, since device has only one iCloud account
• No UIWebView
LIMITATIONS
• Apps have to be submitted as BitCode
binaries
• This includes embedded frameworks
• Most closed-source 3rd party frameworks
won’t be usable on tvOS
THE GOOD NEWS
• Can usually assume high-bandwidth, low-
latency networks
• Screen size always the same (1080p)
• Don’t have to worry about rotation, size class
changes
TYPES OF APPS
• Games
• DemoBots Sample
(https://developer.apple.com/library/tvos/samplecode/DemoBots/I
ntroduction/Intro.html#//apple_ref/doc/uid/TP40015179)
• TVML-based apps
• TVMLCatalog Sample
(https://developer.apple.com/library/tvos/samplecode/TVMLCatalo
g/Introduction/Intro.html#//apple_ref/doc/uid/TP40016505)
• UIKit-based apps
TVML-BASED APPS
• TVApplicationController
is created in App
Delegate
• Attached to key
UIWindow and
UIApplicationDelegate
• Everything else handled
by accessing Javascript
and TVML
UIKIT-BASED APPS
• Most of tvOS is a subset of iOS
• Most ideas from UIKit translate directly
• Check the iOS/tvOS API diffs in Release
Notes
• https://developer.apple.com/library/tvos/rel
easenotes/General/tvOS90APIDiffs/index.h
tml
INDIRECT VS DIRECT
• Direct Interaction (iPhone, iPad, etc)
• Swipe left, content moves left
• Indirect Interaction (tvOS)
• Focus-based
• Swipe left:
• FOCUS moves left
• CONTENT moves right
FOCUS ENGINE
• Your app CAN:
• Specify what views can become focused
• Can request a focus update
• Provide a visual indication of focus
• Can coordinate any focus-related animation
• Your app CANNOT directly control focus
FOCUS-ABLE CLASSES
• UIButton
• UIControl
• UISegmentedControl
• UITabBar
• UITextField
• UISearchBar
• Cells
• UICollectionViewCell
• UITableViewCell
• Can be disabled via
delegate
UIView Focus Details
• Custom UIView subclasses can override
canBecomeFocused()
• Can check focused state with .focused
property
• Sample code to demonstrate this:
• https://github.com/ehyche/TVOSFocusExa
mple
UIFocusEnvironment
• Implemented by:
• UIView
• UIViewController
• UIWindow
• UIPresentationController
SETTING INITIAL FOCUS
DEBUGGING FOCUS
ISSUES
• Undocumented UIView method:
• _whyIsThisViewNotFocusable
• Gives you the reason the focus engine did
not focus on a particular view
• Quick Look on UIFocusUpdateContext
TV SERVICES EXTENSION
• Can provide static Top-Shelf Image
• If you want dynamic top-shelf data, then you
need a TV Services extension
• Sample TV Services Extension code:
• https://github.com/ehyche/FlickrTV
RESOURCES
• Apple Documentation
• Useful Blogs
• Other Resources
APPLE DOCS
• Human Interface Guidelines
(https://developer.apple.com/tvos/human-interface-guidelines/)
• App Programming Guide for tvOS
(https://developer.apple.com/library/prerelease/tvos/documentati
on/General/Conceptual/AppleTV_PG/)
• tvOS Developer Library
(https://developer.apple.com/library/tvos/navigation/)
• Framework References
• API Diffs
APPLE RESOURCES
• Sample Code
(https://developer.apple.com/library/tvos/navigation/#secti
on=Resource%20Types&topic=Sample%20Code)
• Downloads (https://developer.apple.com/tvos/download/)
• Parallax Previewer Mac OSX app
• Parallax Exporter Photoshop Plugin
• Photoshop Icon and Image Templates
USEFUL BLOGS
• AppleTV Weekly (appletvweekly.com)
• Erica Sadun’s Blog (ericasadun.com)
• Daniel Pasco’s Black Pixel Blog
(https://blackpixel.com/writing/)
OTHER RESOURCES
• Slack Group for Apple TV
(appletv.slack.com)
• Keynote template for prototyping apps
(https://medium.com/@itsleesimpson/appletv
-app-design-template-for-keynote-
90cac633cd92#.p7zvheak8)
• Tutorials (tutsplus.com, raywenderlich.com)
QUESTIONS?
ehyche@groupon.com

Contenu connexe

Tendances

iTunes App Store Submission Process
iTunes App Store Submission ProcessiTunes App Store Submission Process
iTunes App Store Submission ProcessAnscamobile
 
Developing windows 10 universal apps
Developing windows 10 universal appsDeveloping windows 10 universal apps
Developing windows 10 universal appsChris Dufour
 
Mobile HTML5 Web Apps - Codemotion 2012
Mobile HTML5 Web Apps - Codemotion 2012Mobile HTML5 Web Apps - Codemotion 2012
Mobile HTML5 Web Apps - Codemotion 2012marcocasario
 
presentation vizzywig
presentation vizzywigpresentation vizzywig
presentation vizzywigSonimar Ortiz
 
Wrapping with PhoneGap
Wrapping with PhoneGapWrapping with PhoneGap
Wrapping with PhoneGapKarl Bunyan
 
iPhone Development Quick Start
iPhone Development Quick StartiPhone Development Quick Start
iPhone Development Quick Startgnocode
 
Mobile Development with Adobe AIR
Mobile Development with Adobe AIRMobile Development with Adobe AIR
Mobile Development with Adobe AIReaselsolutions
 
A Holistic Approach to HTML5 Game Design & Development
A Holistic Approach to HTML5 Game Design & DevelopmentA Holistic Approach to HTML5 Game Design & Development
A Holistic Approach to HTML5 Game Design & DevelopmentKarl Bunyan
 
ゲーム作成で学ぶ iPhoneアプリケーション超入門
ゲーム作成で学ぶ iPhoneアプリケーション超入門ゲーム作成で学ぶ iPhoneアプリケーション超入門
ゲーム作成で学ぶ iPhoneアプリケーション超入門SwapSkills
 
Wikipedia Mobile App with PhoneGap
Wikipedia Mobile App with PhoneGapWikipedia Mobile App with PhoneGap
Wikipedia Mobile App with PhoneGapTed Chien
 
iOS Ecosystem @ Fiera del Radioamatore Pordenone
iOS Ecosystem @ Fiera del Radioamatore PordenoneiOS Ecosystem @ Fiera del Radioamatore Pordenone
iOS Ecosystem @ Fiera del Radioamatore PordenoneKlaus Lanzarini
 
Session 1. iOS developers enthusiasts session
Session 1. iOS developers enthusiasts sessionSession 1. iOS developers enthusiasts session
Session 1. iOS developers enthusiasts sessionGAME Studios
 
App forum2015 London - Building RhoMobile Applications with Ionic
App forum2015 London - Building RhoMobile Applications with IonicApp forum2015 London - Building RhoMobile Applications with Ionic
App forum2015 London - Building RhoMobile Applications with Ionicrobgalvinjr
 
[Gokathon 2017] Video Highlight Creating Tool using TV rating and face recogn...
[Gokathon 2017] Video Highlight Creating Tool using TV rating and face recogn...[Gokathon 2017] Video Highlight Creating Tool using TV rating and face recogn...
[Gokathon 2017] Video Highlight Creating Tool using TV rating and face recogn...Minwook Chang
 
Building apps for multiple devices
Building apps for multiple devicesBuilding apps for multiple devices
Building apps for multiple devicesTerry Ryan
 
Android & iPhone App Testing
 Android & iPhone App Testing Android & iPhone App Testing
Android & iPhone App TestingSWAAM Tech
 
Introduction to Xamarin Forms
Introduction to Xamarin Forms Introduction to Xamarin Forms
Introduction to Xamarin Forms Russ Fustino
 

Tendances (20)

iTunes App Store Submission Process
iTunes App Store Submission ProcessiTunes App Store Submission Process
iTunes App Store Submission Process
 
Developing windows 10 universal apps
Developing windows 10 universal appsDeveloping windows 10 universal apps
Developing windows 10 universal apps
 
Mobile HTML5 Web Apps - Codemotion 2012
Mobile HTML5 Web Apps - Codemotion 2012Mobile HTML5 Web Apps - Codemotion 2012
Mobile HTML5 Web Apps - Codemotion 2012
 
presentation vizzywig
presentation vizzywigpresentation vizzywig
presentation vizzywig
 
Wrapping with PhoneGap
Wrapping with PhoneGapWrapping with PhoneGap
Wrapping with PhoneGap
 
28 ways To Create Awesome Blog Content with an iPhone
28 ways To Create Awesome Blog Content with an iPhone28 ways To Create Awesome Blog Content with an iPhone
28 ways To Create Awesome Blog Content with an iPhone
 
iPhone Development Quick Start
iPhone Development Quick StartiPhone Development Quick Start
iPhone Development Quick Start
 
Mobile Development with Adobe AIR
Mobile Development with Adobe AIRMobile Development with Adobe AIR
Mobile Development with Adobe AIR
 
A Holistic Approach to HTML5 Game Design & Development
A Holistic Approach to HTML5 Game Design & DevelopmentA Holistic Approach to HTML5 Game Design & Development
A Holistic Approach to HTML5 Game Design & Development
 
Wwdc2019
Wwdc2019Wwdc2019
Wwdc2019
 
ゲーム作成で学ぶ iPhoneアプリケーション超入門
ゲーム作成で学ぶ iPhoneアプリケーション超入門ゲーム作成で学ぶ iPhoneアプリケーション超入門
ゲーム作成で学ぶ iPhoneアプリケーション超入門
 
Wikipedia Mobile App with PhoneGap
Wikipedia Mobile App with PhoneGapWikipedia Mobile App with PhoneGap
Wikipedia Mobile App with PhoneGap
 
iOS Ecosystem @ Fiera del Radioamatore Pordenone
iOS Ecosystem @ Fiera del Radioamatore PordenoneiOS Ecosystem @ Fiera del Radioamatore Pordenone
iOS Ecosystem @ Fiera del Radioamatore Pordenone
 
Session 1. iOS developers enthusiasts session
Session 1. iOS developers enthusiasts sessionSession 1. iOS developers enthusiasts session
Session 1. iOS developers enthusiasts session
 
App forum2015 London - Building RhoMobile Applications with Ionic
App forum2015 London - Building RhoMobile Applications with IonicApp forum2015 London - Building RhoMobile Applications with Ionic
App forum2015 London - Building RhoMobile Applications with Ionic
 
[Gokathon 2017] Video Highlight Creating Tool using TV rating and face recogn...
[Gokathon 2017] Video Highlight Creating Tool using TV rating and face recogn...[Gokathon 2017] Video Highlight Creating Tool using TV rating and face recogn...
[Gokathon 2017] Video Highlight Creating Tool using TV rating and face recogn...
 
Building apps for multiple devices
Building apps for multiple devicesBuilding apps for multiple devices
Building apps for multiple devices
 
iPhone Applications & Luxury Brands - Updated May 5, 2010
iPhone Applications & Luxury Brands - Updated May 5, 2010iPhone Applications & Luxury Brands - Updated May 5, 2010
iPhone Applications & Luxury Brands - Updated May 5, 2010
 
Android & iPhone App Testing
 Android & iPhone App Testing Android & iPhone App Testing
Android & iPhone App Testing
 
Introduction to Xamarin Forms
Introduction to Xamarin Forms Introduction to Xamarin Forms
Introduction to Xamarin Forms
 

Similaire à TVOS App Development Overview

Azure thursday HoloLens and cognitive services a powerful combination
Azure thursday HoloLens and cognitive services a powerful combinationAzure thursday HoloLens and cognitive services a powerful combination
Azure thursday HoloLens and cognitive services a powerful combinationAlexander Meijers
 
Ionic intro + tips
Ionic intro + tipsIonic intro + tips
Ionic intro + tipsTony May
 
Building your first iOS app using Xamarin
Building your first iOS app using XamarinBuilding your first iOS app using Xamarin
Building your first iOS app using XamarinGill Cleeren
 
Apple Watch and Xamarin (NoVA Mobile C# Dev Group 4/8/15)
Apple Watch and Xamarin (NoVA Mobile C# Dev Group 4/8/15)Apple Watch and Xamarin (NoVA Mobile C# Dev Group 4/8/15)
Apple Watch and Xamarin (NoVA Mobile C# Dev Group 4/8/15)Ed Snider
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Nuxeo
 
Test+video+upload
Test+video+uploadTest+video+upload
Test+video+uploadTianwei_liu
 
Building mobile apps with PhoneGap and Backbone
Building mobile apps with PhoneGap and BackboneBuilding mobile apps with PhoneGap and Backbone
Building mobile apps with PhoneGap and BackboneTroy Miles
 
Creating mobile apps - an introduction to Ionic (Engage 2016)
Creating mobile apps - an introduction to Ionic (Engage 2016)Creating mobile apps - an introduction to Ionic (Engage 2016)
Creating mobile apps - an introduction to Ionic (Engage 2016)Mark Leusink
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App DevelopmentChris Morrell
 
WWDC 15 - Apple's Developer Event @ 8-12 June, 2015
WWDC 15 - Apple's Developer Event @ 8-12 June, 2015WWDC 15 - Apple's Developer Event @ 8-12 June, 2015
WWDC 15 - Apple's Developer Event @ 8-12 June, 2015Burcu Geneci
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium IntroNicholas Jansma
 
Develop apps for (Apple) TV
Develop apps for (Apple) TVDevelop apps for (Apple) TV
Develop apps for (Apple) TVCodemotion
 

Similaire à TVOS App Development Overview (20)

Hybrid app development with ionic
Hybrid app development with ionicHybrid app development with ionic
Hybrid app development with ionic
 
Azure thursday HoloLens and cognitive services a powerful combination
Azure thursday HoloLens and cognitive services a powerful combinationAzure thursday HoloLens and cognitive services a powerful combination
Azure thursday HoloLens and cognitive services a powerful combination
 
Ionic intro + tips
Ionic intro + tipsIonic intro + tips
Ionic intro + tips
 
monkeyTalk
monkeyTalkmonkeyTalk
monkeyTalk
 
monkeyTalk
monkeyTalkmonkeyTalk
monkeyTalk
 
Mobile app development
Mobile app development  Mobile app development
Mobile app development
 
Apple TV development
Apple TV developmentApple TV development
Apple TV development
 
Webapi
WebapiWebapi
Webapi
 
AppNotch
AppNotchAppNotch
AppNotch
 
Building your first iOS app using Xamarin
Building your first iOS app using XamarinBuilding your first iOS app using Xamarin
Building your first iOS app using Xamarin
 
Apple Watch and Xamarin (NoVA Mobile C# Dev Group 4/8/15)
Apple Watch and Xamarin (NoVA Mobile C# Dev Group 4/8/15)Apple Watch and Xamarin (NoVA Mobile C# Dev Group 4/8/15)
Apple Watch and Xamarin (NoVA Mobile C# Dev Group 4/8/15)
 
iOS App Development and Marketing
iOS App Development and MarketingiOS App Development and Marketing
iOS App Development and Marketing
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011
 
Test+video+upload
Test+video+uploadTest+video+upload
Test+video+upload
 
Building mobile apps with PhoneGap and Backbone
Building mobile apps with PhoneGap and BackboneBuilding mobile apps with PhoneGap and Backbone
Building mobile apps with PhoneGap and Backbone
 
Creating mobile apps - an introduction to Ionic (Engage 2016)
Creating mobile apps - an introduction to Ionic (Engage 2016)Creating mobile apps - an introduction to Ionic (Engage 2016)
Creating mobile apps - an introduction to Ionic (Engage 2016)
 
Mobile App Development
Mobile App DevelopmentMobile App Development
Mobile App Development
 
WWDC 15 - Apple's Developer Event @ 8-12 June, 2015
WWDC 15 - Apple's Developer Event @ 8-12 June, 2015WWDC 15 - Apple's Developer Event @ 8-12 June, 2015
WWDC 15 - Apple's Developer Event @ 8-12 June, 2015
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium Intro
 
Develop apps for (Apple) TV
Develop apps for (Apple) TVDevelop apps for (Apple) TV
Develop apps for (Apple) TV
 

Dernier

EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 

Dernier (20)

EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 

TVOS App Development Overview

  • 1. TVOS An Introduction for iOS Developers Eric Hyche, Mobile API Tech Lead Groupon Consumer iOS Team
  • 2. DOCKET • Demo of hardware • Types of apps • Drill-down on Focus Engine • Build a FlickrTV app • Resources • Q&A
  • 3. THE HARDWARE • 64-bit A8 processor • 32GB or 64GB storage • 2GB RAM • 1080p resolution • Siri Remote
  • 4. SIRI REMOTE 1. Glass touch screen 2. Menu (back) 3. Siri/Search 4. Play/Pause 5. Home 6. Volume 7. Lightning Charging
  • 8. PARALLAX IMAGES • Made up of layered images • Can produce them with: • Xcode • Parallax Previewer App • Photoshop plugin
  • 9. LIMITATIONS • Max size of app bundle is 200MB. If greater, must use On-Demand Resources • Limited persistent storage • 500KB • Accessed through NSUserDefaults • Persistent storage > 500KB • For < 1MB, use iCloud Key-Value Storage • For > 1MB, use CloudKit • Must implement your own user accounts, since device has only one iCloud account • No UIWebView
  • 10. LIMITATIONS • Apps have to be submitted as BitCode binaries • This includes embedded frameworks • Most closed-source 3rd party frameworks won’t be usable on tvOS
  • 11. THE GOOD NEWS • Can usually assume high-bandwidth, low- latency networks • Screen size always the same (1080p) • Don’t have to worry about rotation, size class changes
  • 12. TYPES OF APPS • Games • DemoBots Sample (https://developer.apple.com/library/tvos/samplecode/DemoBots/I ntroduction/Intro.html#//apple_ref/doc/uid/TP40015179) • TVML-based apps • TVMLCatalog Sample (https://developer.apple.com/library/tvos/samplecode/TVMLCatalo g/Introduction/Intro.html#//apple_ref/doc/uid/TP40016505) • UIKit-based apps
  • 13. TVML-BASED APPS • TVApplicationController is created in App Delegate • Attached to key UIWindow and UIApplicationDelegate • Everything else handled by accessing Javascript and TVML
  • 14. UIKIT-BASED APPS • Most of tvOS is a subset of iOS • Most ideas from UIKit translate directly • Check the iOS/tvOS API diffs in Release Notes • https://developer.apple.com/library/tvos/rel easenotes/General/tvOS90APIDiffs/index.h tml
  • 15. INDIRECT VS DIRECT • Direct Interaction (iPhone, iPad, etc) • Swipe left, content moves left • Indirect Interaction (tvOS) • Focus-based • Swipe left: • FOCUS moves left • CONTENT moves right
  • 16. FOCUS ENGINE • Your app CAN: • Specify what views can become focused • Can request a focus update • Provide a visual indication of focus • Can coordinate any focus-related animation • Your app CANNOT directly control focus
  • 17. FOCUS-ABLE CLASSES • UIButton • UIControl • UISegmentedControl • UITabBar • UITextField • UISearchBar • Cells • UICollectionViewCell • UITableViewCell • Can be disabled via delegate
  • 18. UIView Focus Details • Custom UIView subclasses can override canBecomeFocused() • Can check focused state with .focused property • Sample code to demonstrate this: • https://github.com/ehyche/TVOSFocusExa mple
  • 19. UIFocusEnvironment • Implemented by: • UIView • UIViewController • UIWindow • UIPresentationController
  • 21. DEBUGGING FOCUS ISSUES • Undocumented UIView method: • _whyIsThisViewNotFocusable • Gives you the reason the focus engine did not focus on a particular view • Quick Look on UIFocusUpdateContext
  • 22. TV SERVICES EXTENSION • Can provide static Top-Shelf Image • If you want dynamic top-shelf data, then you need a TV Services extension • Sample TV Services Extension code: • https://github.com/ehyche/FlickrTV
  • 23. RESOURCES • Apple Documentation • Useful Blogs • Other Resources
  • 24. APPLE DOCS • Human Interface Guidelines (https://developer.apple.com/tvos/human-interface-guidelines/) • App Programming Guide for tvOS (https://developer.apple.com/library/prerelease/tvos/documentati on/General/Conceptual/AppleTV_PG/) • tvOS Developer Library (https://developer.apple.com/library/tvos/navigation/) • Framework References • API Diffs
  • 25. APPLE RESOURCES • Sample Code (https://developer.apple.com/library/tvos/navigation/#secti on=Resource%20Types&topic=Sample%20Code) • Downloads (https://developer.apple.com/tvos/download/) • Parallax Previewer Mac OSX app • Parallax Exporter Photoshop Plugin • Photoshop Icon and Image Templates
  • 26. USEFUL BLOGS • AppleTV Weekly (appletvweekly.com) • Erica Sadun’s Blog (ericasadun.com) • Daniel Pasco’s Black Pixel Blog (https://blackpixel.com/writing/)
  • 27. OTHER RESOURCES • Slack Group for Apple TV (appletv.slack.com) • Keynote template for prototyping apps (https://medium.com/@itsleesimpson/appletv -app-design-template-for-keynote- 90cac633cd92#.p7zvheak8) • Tutorials (tutsplus.com, raywenderlich.com)