-
Kickoff
Get an overview of Apple TV, the tvOS SDK, and of key principles, technologies, and frameworks that you can use to create new experiences that define the future of television.
Apple TV Tech Talks - Session 1 - tvOS
-
Wow. Thank you and welcome to the Apple TV Tech Talks. I'd like to welcome all of you here today. My name is Allan Schaffer.
I'm the Game Technologies Evangelist here at Apple. Welcome to the Apple Campus and to our event today. And thanks for taking time out of your guys schedules to talk with us today. Yeah, we have a great day of content planned for all of you. And I know that you guys love detail.
We're going to be going into a lot of detail through the day on designing and developing apps for tvOS, a lot of the best practices and a lot of the technologies that are involved there. But also we want to get -- help you to understand the mindset and the philosophy of this platform because it's different than developing for iOS. And so we'll be spending some time in this session and other sessions throughout the day to help you to understand that. Where I want to start today is just with the reminder of, essentially, what drew us all here today.
I think all of you would agree that television plays a major part in people's lives and people really understand television, you know, and how that is part of their home and part of their everyday experience. And, you know, back in September, we were -- when we introduced the Apple TV, we talked then about how the pace of innovation for television has not really kept up with what we have all seen and what all of you and us have been a part of with iPhone and iPad and with the App Store, where that's been an absolute transformation over just a few years. And what we think is that it's going to be possible for us to enable that sort of rate of innovation and for -- that all of us together can bring that about for television. And so that's why we've said now that the future of TV is apps.
And to be clear, these are your apps, right, apps that you choose, apps that provide you with the content, I mean, with the experiences that you want to have on your television, right? And I'm talking also about, to a developer audience here, so these are apps that many of you either have had or will have a hand in building. So let me tell you a few that I'm thinking about here. Of course, first, this is a great media platform.
So it has great media apps like HBO NOW, and Netflix, Hulu, SHOWTIME, and et cetera. And those are there to deliver a really great entertainment value so that people can follow their favorite shows, watch movies, and, you know, catch a movie, and so on, and all of them with an experience that is really optimized for the new Apple TV. But the point is actually not just that they're all there, but that you choose the apps based -- and you personalize your television experience based on your interests, right? So maybe you're into fitness, and so in that case you might like apps from, you know, a great workout app like this one from Zova. Or if you wanted to do shopping, well, here's a great app from Gilt that you can use to do shopping on your television. And then also, you know, there are some incredible games that are going to be there as well like Beat Sports.
You've seen this one before. You know, this is something that really kind of gets you moving with music and rhythm and the physicality of the Apple TV remote. Then a new generation of games also becomes possible here. You know, games like Disney Infinity that are previously only been available on consoles. And just to be clear, this isn't just all about big brands and big studios.
Apple TV is an opportunity and can be an opportunity for all developers. And really it's for people with ideas that are fresh and new, apps that are really, really clever. Like this is Does Not Commute from Mediocre just, you know, this is a two-person team out in Sweden.
They won an Apple design award for the iOS version of their -- of this game, and now they've brought it over onto tvOS. Here's Alto's Adventure from Snowman.
This is three guys up in Canada. And it's this really mesmerizing side scrolling, procedurally generated endless runner, but what's so cool about it is just sort of the atmosphere and the feeling that you have while you're playing this game. It's kind of hypnotic, you know, how you're moving your character around here. You'll see this game a lot today. Switching back over from games now to entertainment apps as well. You know, if you're into comic books, you got to check out this app.
This is Madefire, and it's this digital comic book experience but made for television. It's not reading the comic books to you.
It's not just playing them. You read the comic books, but the pages really come alive with sounds and motion and a parallax effect, and so on, and interactivity in these pages as you're reading the books. Last one here, Sago Mini Fairy Tales. You know, this is another really small team that makes children's apps. And so, you know, here, this is for kids and they're creative, it's fun, and it's just really, really captivating for small children. So -- and then there's a whole lot more, of course, right? So -- and I think something for all of you to think about is that you really -- we're here right at the beginning of this, right? This App Store has only been opened for a little over a month now. And, you know, of course, it already has some amazing content here, but there's an incredible opportunity here. It's, really, we think it's going to help to shape the future of television.
Now, so with that in mind, let me talk about the device here and the new Apple TV that we introduced back in September. You know, as we said then, so this is based on powerful hardware. It's running tvOS, which is a modern operating system. It is designed specifically for the living room.
And built around a new user experience based on the Siri Remote, right? But what gets me sort of really excited about this new Apple TV is developer tools and an SDK so that we can all build apps for this device. And, you know, I'm looking out at you and I've met many of you before. And many of you have said to me over the years like, "Allan, we want to have an SDK on the Apple TV." And so, now, here it is. And I think, here now, the experience here is just incredible.
And then the last part, of course, is to have an App Store so that people can discover the apps that they want person -- and personalize their television experience.
So where I want to go today next is to start -- is to talk about some of the fundamentals behind developing for tvOS.
And really, this is about the mindset that you need to have. We'll be getting into a lot of the technical details and design specifics through the course of the day today, but this is just to lay the groundwork for the rest of the content today, and help you to understand the things that we see as being the fundamentals that are different in mindset from developing for iOS. And the most fundamental of those is -- with the new Apple TV is the interaction model and what we call the living room experience. So this is characterized by a new focus-based input mechanic and a UI presentation of course, that's all built around touch, but unlike an iPhone or an iPad, where you are directly manipulating the content that's on screen under the glass of the touch surface, here, the device is being used from a distance, and it's all controlled through indirect interactions using the Siri Remote.
And that interaction model has really profound impact on the way that you design your apps, right? So, you know, people's attention is on the big screen that's across the room from them rather than being focused on the remote or focused on the touch screen where they can see their fingers touching the glass.
So in your apps, people will need then extra reinforcement to help them feel really connected with that content. So that when an element moves into focus, it's actually seems to come closer to you, right? It's scaled up, a drop shadow is put behind it. That's to help them feel connected.
And then it moves and it response to your touch. And the surface looks like it has a bit of a shine on it as you move that around.
All of these things are working together in concert to help you to maintain that connection with people using your apps. Now, another aspect to the living room experience is that this is a platform where people will use your apps together or with the rest of their family or with their friends, right? Interacting with each other as much as they're interacting with your app and with its content. And this is contrasted with an iO -- your iPhone, which is very personal and typically just has, you know, just the single person using it. You know, here, you need to think about how you will engage with a group of people potentially in kind of a communal environment. And then to further that same idea, you know, even if people aren't in the room all using it at the same time, the television is usually shared. It's in a central location in people's homes and the whole family might be using it through the course of the day. And so tvOS apps have to consider what should happen if different people are using the same app at different times. And again, contrasting that with iOS, where typically it's just one person for the lifetime of that app. Anyway, so that's just the start here now of the living room experience.
And we'll talk about a lot more about how to design for it and the design specifics in the next session. The next fundamental that I want to talk about is that the Apple TV is a device that is presumed to be always connected to a high speed internet connection in people's homes, right? And that really impacts the way that apps and content are delivered to the people using your apps. So for media apps, this is obvious, right? It's a device that is built for the purpose of delivering great media content, and so those apps are typically going to be using our HTTP Live streaming technology to bring content down to the viewer. But now, that same streaming idea can apply to non-media apps into games as well, and much more than on a iPhone or an iPad where it's presumed to -- you have to have more of a presumption about handling offline connections and so on. Here, it's presumed to be always connected to a high speed network, so your apps can be downloading their content dynamically from the app story while they're running and the system then can be managing what's being kept cached on device.
This has a lot of implications. You know, apps can be downloaded faster, more apps can be kept in a fixed amount of storage because we're managing what's really being cached there, and so on. So we'll get into this a lot more.
And then the third element sort of just this -- flipping the same coin here is with Cloud Storage. Since we are always connected, we can keep people's data in iCloud or in CloudKit or on your own servers, and then allow -- to allow that data then to be shared across multiple devices.
OK. The next fundamental to think of for Apple TV is just that it -- this is actually potentially a platform that is -- that establishes a new baseline that you can adopt for the performance and feature set of your apps. Now, I think that most of you here in the room are iOS developers, am I right? It's not -- Yup, OK. So, you know, then you know that, for example, iOS 9 right now and iOS 8, they both support devices going all the way back to the iPhone 4s, right? And many apps out there are supporting that entire span of devices. And people do that in a variety of different ways. Some apps will really tune to the latest hardware and then provide fallbacks for the older devices, but some apps just set a performance target and stick with it and have that same thing go -- regardless of device.
And if that's the case for you, where maybe you have dialed back your performance targets at all so that you can support older devices, then Apple TV really is creating a new threshold or a new baseline that you can set for that app. It's kind of a new step that you can take for your performance.
So let's think about this first from the perspective of performance in the -- what's in the system. So the Apple TV has the A8 chip.
This is 64-bit, dual core, but this is potentially much more powerful than what you have -- may had targeted previously for your iOS apps. Now, to be clear, if you are already up at the -- targeting the level of the iPhone 6 and the 6s, then great.
That's what the sort of thing that we love to hear. But if you had an app that was still targeting, say, the iPhone 4s or the iPhone 5, but now you can -- but A8 is going to give you a lot of performance headroom compared to those older devices. And of course, here, for tvOS, there's nothing -- there's no backwards compatibility or other devices, older devices that you need to keep supported. Another one, you have 2 gigabytes of RAM on this device.
So you can really take advantage of that headroom, you know, and use higher quality assets than you may have been targeting on your iOS version today.
And think about it, right? So some images and textures and so on that you design for an iPhone and, you know, a 4, you know, 4 plus inch display is not going to really hold up on a 60-inch flat panel. So you -- but you can bring those assets up.
You have a lot more performance than you may have had previously. So, also it's a very capable GPU.
So if you're a game developer, you can bump up the complexity of your models and use more sophisticated effects. You know, use higher resolution textures, issue more draw calls, increase the complexity of your shaders, or move to a more sophisticated renderer. There's a lot of things that you can really do there to take advantage of all of the performance resources that are available here. Then there's a very similar story here on the framework side. If your -- if it's the case that you've been holding back on adopting some of the features that are available in the latest iOS versions, you know, waiting for customers to upgrade, then, again, here is another chance for the -- all of that to start fresh as well, right? So if you have not, for example, adopted Metal because you're still supporting older iPhone, you know, older versions of iOS or older devices, well now, every Apple TV with tvOS supports Metal. Every Apple TV with tvOS supports on-demand resources and the latest SpriteKit, SceneKit, et cetera, all of those features. And so you can take advantage of them here. Now, something else that might help you with this is that the Apple TV or -- excuse me -- the tvOS SDK is a separate SDK and tvOS apps stand alone. And that's unlike iOS, where the same binary of course would -- can be universal across both an iPhone and an iPad. Here on tvOS, those binaries only run on -- only run on tvOS devices.
And of course, the other thing is that tvOS is also bringing up the baseline for our toolset as well. So tvOS apps are all 64-bit, that means that they only include the arm64 slice and they don't need to be carrying around any of the 32-bit slices along with them.
And they are all built with bitcode. And something to note there as well is that that applies to all of -- any third party libraries or frameworks that you may be using as well. All of those will have to come up to 64-bit with bitcode. Now, one extra element here, though, is that if you wish to do so, your tvOS app can be associated with an iOS app through something that we call a universal purchase. And what that means is that one single purchase will give that user both your iOS version and your tvOS version. And obviously, that has a number of implications, which -- and we'll be going through those in another session later today.
Now, OK. So now, with all of this in mind, of course, you'll still be using the same development tools, same languages as you're familiar with from working with iOS. So it's Xcode along with your language of choice, be it Objective-C or Swift or C or C++, it's familiar environment there. And also, many of the frameworks that you are familiar with on iOS are provided here plus a few new ones that are specific to tvOS. So let me look through just a couple of these. You know, of course, there's all the things that you need -- all the basics are there for building apps. So Foundation and UIKit for your User Interface, CoreGraphic and Core Animation and QuartzCore for graphics and imaging, CloudKit and iCloud for data storage, StoreKit for in-app purchases, and so on. But next, this is also a very media-centric device, right? So we have a very rich stack there for audio and video apps. So starting with audio, we have the Audio Toolbox, CoreAudio and OpenAL for games, and then AVFoundation and AVKit for video playback. Then there's also a new framework, TVML -- TMVLKit, so that's a template-driven approach to presenting and browsing media content, and it leverages JavaScript. Then on the game side, there's excellent support here for games. So technologies like Game Center, GameControllers, GameplayKit, Model I/O for the game technologies, and then OpenGL ES and Metal for graphics along with our high level framework SpriteKit and SceneKit. And then again, OpenAL and the Audio Toolbox for sound effects, and then rounding that out on-demand resources in Foundation, cloud storage with CloudKit, and in-app purchase with StoreKit, and so on.
And so all that is to say -- so this is a very rich set of technologies. Obviously, this here on screen is just a partial list and there's a whole lot more. And so we think that there's, you know, a lot there for you to build your apps from.
So let me now just recap these fundamentals, these pieces of the mindset of the platform. And first and foremost there is the living room experience.
This is an experience that you share with others and it's all driven by a focus-based info mechanic and a UI presentation that's built around touch and the Siri Remote. Second, being always connected to a network, and leveraging that to change the model for delivering assets and data to applications based on on-demand resources and cloud storage. Third is powerful hardware which is to -- establishing now for many apps a new performance and feature baseline. And then important changes how -- to how apps are packaged with an option to associate them together with universal purchase. And then finally, a rich set of tools and technologies.
These are things that you're probably already familiar with in most cases, right? And you're probably already using them in the -- your current iOS apps along with a few new editions. Thank you.
-
Looking for something specific? Enter a topic above and jump straight to the good stuff.
An error occurred when submitting your query. Please check your Internet connection and try again.