Skip to content

Instantly share code, notes, and snippets.

@axpence
Last active December 17, 2015 00:21
Show Gist options
  • Select an option

  • Save axpence/a70fc23d423797151125 to your computer and use it in GitHub Desktop.

Select an option

Save axpence/a70fc23d423797151125 to your computer and use it in GitHub Desktop.
appleTV
Stefan Lessor - Apple Developer Tools Evangalist
-The living room experience
-TV is always connected to high speed internet
-TV is shared by multiple people (user A at 9am, user B at 2pm...)
-Communal experience (one device -> many users at same time.)
-Always remember--attention (eyes) are looking at the TV, always, while their hands are touching the remote. This is very different from iOS where the hands and screen were in the same attention frame. Design for this constraint. This is what (implication: user must never look down at ). This constraint is key for TV and this is the reason we introduced paralax, etc.
64 bit dual core A8 chip is a step above what we've been targeting on iOS. use higher quality assets, etc. Think 60" flat panel. Extra GPU power increases the complexity of your game modeling. Remember: every appleTV ships with Cloud Kit, Metal, etc. Take this into account when developing.
TVOS binaries only run on AppleTV. (Only ship the ARM64 slice). Likewise for 3rd party frameworks.
Universal purchase - customers can download TVOS version and get iOS version w/ the same purchase. Think of this experience and what companion apps could mean for our app.
There are more libraries that will be made available than those we've announced publicly so come talk to us if you need more.
Rachel Roth - Apple UX evangelist
Apple TV is a unique platform w/ unique design considerations. Think about the Living room experience. The greatest constraint is distance. People will be sitting across the room, a distance from the TV, using a remote.
Three principals of TVos UI's - 1) Connected 2) Clear 3) Immersive
1) Connected - gestures move through the UI as I swipe on the remote. UIKit has the paralax effect so that people can feel connected to the UI even though they aren't touching it directly.
2) Clear - People should know what to do intuitivley (Affordance). It should be very clear what to do by simply glancing at the screen. Perform this test when building your apps. Is it clear what to do ? (by simply looking at it). Note: SanFrancisco type face for tvOS was optimized to be read from a distance. Your design should take this into consideration. It is incredibly important that when you develop, you frequently build on a TV. Don't build on a computer monitor while developing and assume your brain can do the proper scaling. There is so much value from walking away from your desk and building it on a TV and experiencing the 15 foot UI.
3) Immersive - using high resolution assets is key. remove UI Chrome, and embelishment. Take advantage of the big canvas! Use edge to edge artwork wherever you can.
Misc:
Please, never have a back button within your app. The "menu" button is always present and will always act as a back button.
Using Accelerometer and Gyro data from a remote-think about changing your UI to respond to the movements of the remote. (kind of like paralax-- ie: user lifts their hand, your UI's light source moves accordingly?)
remember, swiping right on the remote moves the *focus*, not the object. In rare cases moving focus will also move objects when there are rows of content that are off screen and the focus is moved to that object was off screen, it obviously must be moved on screen.
controls have 5 states: 1) unselected 2) focused (move object closer to user, add a label) 3) highlighted (temporary. only seen as the remote is being clicked. animation, button being pressed) 4)selected (control activated, but not in focus.) (see slide: https://www.dropbox.com/s/f21pggwd5t6ug45/IMG_5994.JPG?dl=0 )
Anything not in focus does not have a label.
Trick - Look away from the screen. Look back at the screen. Can you tell what is "Active" and "In Focus" ? Is it obvious? OR do your eyes have to scan and search and don't naturaly go to the item in focus?
Design for accidental taps. "Click" is very intentional and very hard to do accidenally. This should be the primary interaction.
Stefan Lessor - Apple Developer Tools Evangalist
Awesome talk on the innards of FocusEngine. Sorry super hard to take notes on this. The last half of this talk was just talking about how to use the focusEngine. See tvOS docs for equivalent. Note: I get the impression that Apple really wants us to use tons of high res images and graphics on tvOS.
po bottomLeftButton.performSelector("_whyIsThisViewNotFocusable") //this totally works.
when trying to see where focus is coming from and going to in your debugger, you can use a quick view!! So cool.
Curt Rother - On Demand Resources (ODR) + data storage (Cloud Storage)
TL;DR - It seems the reason for doing ODR is because Apple Anticipates that you will have very high res. photos, videos, audio, etc. So they prefer you to download from the cloud instead of packing these high res assets into the binary.
Ex: if we know the user will never get to level 30 of your game, we don't want to download level 30's assets. (Seems like gaming is the *major* use case AppleTV was designed with in mind). When playing level n, download level n+1's resources and content.
ODR helps you manage System Level content without managing assets on your own. Note: ODR is hosted in the Apple App store, and you can specify when you want it to be downloaded. Using ODR you can have up to 20GB.
Separate your "Asset Packs" into "Critical" and "Non-Critical" by adding tags to each asset tag.
Rachel Roth - Apple UX evangelist
Best practices for designing tvOS apps
Loading experinece is KEY to consider, because there is lmited data persistent storage. Use placeholders while assets are loading in, for example. Give the user a look and feel of what the layout will look like instead of just a black screen until all of the content is loaded. At the least, have an activity indicator, please! But, what is a better experience than an activity indicator ? Something that indicates how much progress is left in the loading process. Try and have static assets in the background and make the loading screen beautiful. If it is a game - tell them a story! Give them tips to play the game. Keep the user occupied and use this as an opportunity to give the user some delight.
Authentication and forms - forms are such a pain to fill out. Think twice before you add forms to your app. Also, appleTV is a very communal device so you'll need ways to differentiate between users so remember this. In general, the best method is to ask for login information *after* the user has had a pleasant experience for your app.
Make restored purchases very obvious.
Onboarding should never be a crutch for bad design. If your UI isn't intuitive, revisit!
I've had a lot of people tell me that cursors are the correct model for such a big screen... they're wrong. Cursors are much harder to use precisely and they start to feel like work when compared with the focus model. Aiming precicely with a cursour is much harder.
Living room - longer but less frequent sessions.
EDITORS are responsible for featured apps / etc. They look for the following:
1) creating something unique
2) engaging living room experience
3) intuitive use of siri remote
4) fantastic for first-time users (No onboarding screens or login screens, etc.)
5) performance matters.
6) design specifically for the platform.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment