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

Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 

Dernier (20)

Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 

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)