Apple TV Hardware
The new Apple TV has the following hardware specifications:
- 64-bit A8 processor
- 32GB or 64GB of storage
- 2GB of RAM
- 10/100Mbps Ethernet
- WiFi 802.11a/b/g/n/ac
- 1080p resolution
- HDMI
- New Siri Remote / Apple TV Remote
Apple TVs in all other countries are packaged with the Apple TV Remote. Figure 1-1 shows the new remote. It has the following buttons:
1. Touch surface. Swipe to navigate. Press to select. Press and hold for contextual menus.
2. Menu. Press to return to the previous menu.
3. Siri/Search. Press and hold to talk in those countries that have the Siri Remote. In all other countries, press to open the onscreen search app.
4. Play/Pause. Play and pause media.
5. Home. Press to return to the Home screen. Press twice to view open apps. Press and hold to sleep.
6. Volume. Control TV volume.
7. Lightning connector. Plug-in for charging.
Figure 1-1 Siri Remote and Apple TV Remote
Client-Server Apps
The process for creating apps for Apple TV is similar to the process for creating iOS apps. You can create games, utility apps, media apps, and more. Apple TV also makes it easier to create client-server apps with custom user interfaces that are consistent across multiple apps. You build these client-server apps using web technologies such as HTTPS, XMLHTTPRequest, DOM, and JavaScript. You use Apple’s custom markup language, TVML, to create interfaces, and you specify app behaviors in a TVML document using JavaScript. The TVMLKit framework provides the bridge between your native code and the JavaScript/TMVL code in your user interface.
Your app’s initial launch behavior is specified as a JavaScript file. You create your binary app as you typically do and then use the TVMLKit framework to load the JavaScript file. Your JavaScript file loads TVML pages and displays them on the screen. Each TVML file represents a unique page that is displayed on the screen. Create TVML pages using templates supplied by Apple. Each template produces a unique, fullscreen display of information. You modify each page by adding or removing elements inside of a template. For a list of Apple-supplied TVML templates and elements, see Apple TV Markup Language Reference.
All video playback on Apple TV is based on HTTP Live Streaming and FairPlay Streaming. See About HTTP Live Streaming and FairPlay Streaming Overview.
Top Shelf
Users can place any Apple TV app in the top row of their app’s menu, which can contain up to five icons. When a user selects an app icon in the top row, the top of the screen shows content related to that app. This area is called the top shelf. The top shelf can showcase an app’s content, give people a preview of the content they care about, or let them jump straight into a particular part of the app.
Parallax Images
Layered images make your artwork come to life. A UI element is in focus when the user highlights the element, but has not selected the element. When a user brings focus to a layered image, the image connects with the user’s touches on the glass touch surface to rotate the image. Each layer of the image rotates at a slightly different rate to create a parallax effect. This subtle effect creates a sense of depth, realism, and vitality, and emphasizes that the focused item is the closest thing to the user.
Your parallax images are going to be created by your designers. But how do you get them into your app? The UIImageView class has been modified to support parallax images, so in most cases you only need to make minimal coding changes. Your workflow is going to change depending on whether you are adding the images directly to your app or loading them from a server at runtime.
New tvOS Frameworks
Apple tvOS introduces the following new frameworks that are specific to tvOS:
TVMLJS. Describes the JavaScript APIs used to load the TVML pages that are used to display information in client-server apps. See TVJS Framework Reference.
TVMLKit. Provides a way to incorporate JavaScript and TVML elements into your app. See TVMLKit Framework Reference.
TVServices. Describes how to add a top shelf extension to your app. See TVServices Framework Reference.
Inherited iOS Frameworks
Apple tvOS inherits several frameworks from iOS. See each framework for minor differences between iOS and tvOS:
- Accelerate
- AudioToolbox
- AudioUnit
- AVFoundation
- AVKit
- CFNetwork
- CloudKit
- CoreBluetooth
- CoreData
- CoreFoundation
- CoreGraphics
- CoreImage
- CoreLocation
- CoreMedia
- CoreSpotlight
- CoreText
- CoreVideo
- Darwin
- Foundation
- GameController
- GameKit
- GameplayKit
- GLKit
- ImageIO
- MachO
- MediaAccessibility
- MediaPlayer
- MediaToolbox
- Metal
- MetalKit
- MetalPerformanceShaders
- MobileCoreServices
- ModelIO
- OpenGLES
- SceneKit
- Security
- simd
- SpriteKit
- StoreKit
- Swift Standard Library
- SystemConfiguration
- UIKit
New User Interface Challenges
Apple TV does not have a mouse that allows users to directly select and interact with an app. Nor are users able to use gestures and touch to interact with an app. Instead, users use the new Siri Remote or a game controller to move around the screen.
On top of new controls, the overall user experience is drastically different. Macs and iOS devices are generally a single-person experience. A user may interact with others through your app, but that user is still the only person using the device. With the new Apple TV, the user experience becomes much more social. Several people can be sitting on the couch and interacting with your app and each other. Designing apps to take advantage of these changes is crucial to designing a great app.