Table of contents : Table of Contents : Extended Introduction About this book Introducing the third edition History of Apple TV What you need Who this book is for How to use this book Whatʼs ahead: an overview Book source code and forums Book updates License Acknowledgements About the cover Section I: Architecture Chapter 1: Architecture Choosing your tvOS approach TVML apps Traditional apps Which should you choose? Designing for Apple TV Platform limitations Where to go from here? Section II: TVML Apps Chapter 2: Hello, TVML Getting started Debugging TVJS Client-Server apps in TVML Your first TVML document Styling TVML App logic in JavaScript Where to go from here? Chapter 3: Beginning TVML Getting started Loading scripts TVML templates The product template Data injection Filling out the TVML template Adding shelves Handling text overflow Viewer ratings Where to go from here? Chapter 4: Intermediate TVML Getting started Building the home screen TVML styling Adding a menu bar Creating a search page Adding a photo album Where to go from here? Chapter 5: TVJS Managing input elements Manipulating DOM Playing videos Adding video overlays Obtaining playback position Persisting data to local storage Where to go from here? Chapter 6: Exploiting Native Functionality from within TVML Getting started JavaScriptCore Calling native functions from TVML JavaScript Using iCloud with a TVML-based app Using a native class within JavaScript Demonstrating iCloud Where to go from here? Section III: Traditional Apps Chapter 7: Hello, Traditional App Getting started Creating the user interface Understanding view controllers The source editor The app lifecycle Interface styling Where to go from here? Chapter 8: Basic Controls Getting started Auto Layout UITextField UISegmentedControl UILabel UIButton UIImageView Bringing the app to life Where to go from here? Chapter 9: Stack Views Getting started UIStackView properties Adding a stack view Embedding existing UI elements Wrapping up the UI Bringing the app to life Where to go from here? Chapter 10: Collection Views Getting started Adding a collection view Displaying data Creating custom cells Adding supplementary views Adding user interaction Where to go from here? Chapter 11: Navigation Getting started Adding a navigation controller Adding a split-view controller Adding a tab bar controller Where to go from here? Chapter 12: Focus Getting started Focusable UI elements Focus guides Collection and table view focus Custom focus behavior Debugging focus events Where to go from here? Chapter 13: Animation Getting started Your first animation Spring and damping Animatable properties Animating movement Animation options Chaining animations Animating constraints Where to go from here? Section IV: Advanced Frameworks Chapter 14: User Input and the Remote Getting started Exploring the remote Touch and press handling Where to go from here? Chapter 15: Beginning Video Playback Getting started Touring AVKit Exploring the starter project Playing videos Playing full-screen videos Showing video information AVKit best practices Where to go from here? Chapter 16: Advanced Video Playback Getting started Exploring the starter project Creating the player view controller Creating the player view Using the queue player Handling play/pause button presses Responding to select button presses Where to go from here? Chapter 17: On-Demand Resources Getting started NSBundleResourceRequest and tags Adding tags Purging content Progress reporting Anticipating user action Different types of tags Where to go from here? Chapter 18: Beginning CloudKit Getting started Connecting to CloudKit Using CloudKit Public and private data Finding records Using references Assets Where to go from here? Chapter 19: Advanced CloudKit Getting started Rating movies Searching on text Managing accounts Error handling Optimizing with partial records Where to go from here? Chapter 20: In-App Purchases Getting started Exploring the app Adding non-consumable purchases Add purchasing to the code Restoring purchases Adding consumable purchases Where to go from here? Chapter 21: Photos Framework Getting started Fetching Photos library objects Fetching asset content Modifying content Observing changes Creating a slideshow Where to go from here? Chapter 22: Multipeer Connectivity Getting started Peer-to-peer connectivity Discovery phase Session phase Sending photos Where to go from here? Chapter 23: Native UI in TVML Apps Getting started Adding custom resources Creating new TVML elements Adding new TVML style attributes Feeling your way Where to go from here? Section V: Design Chapter 24: tvOS Design Getting started Getting ready User interface design Visual design Where to go from here? Chapter 25: Creating Layered Images Getting started Understanding the layers Exporting to Xcode Where to go from here? Chapter 26: The Top Shelf Getting started An interactive top shelf Setting up the interactive top shelf TVTopShelfProvider Adding user interaction Where to go from here? Section VI: Bonus Chapters Chapter 27: JavaScript Crash Course Getting started Whirlwind tour of JavaScript basics Functions Classes Events Asynchronous code and promises Where to go from here? Conclusion