How I’d Build an Apple Television Set

When you unboxed my hypothetical Apple Television Set you would find three devices inside. There would be a lovely large display panel with an impossibly thin bezel (unadorned by an Apple logo). It’d have one wire, the power plug. The second device would look very much like the current Apple TV though it’d sport an HDMI input or two on the back. The third device would be a remote control. It’d look much like the current remote but have only one button, right where the circular buttons are now. You’d place the display where you’d like it (using the optional iMac style foot it comes with, though that’s just connected to the display with a standard VESA mount), and then plug it in. You’d stick the Apple TV box someplace where you don’t have to see it (though it’ll still be prettier than all your existing equipment) and plug it in. Then the display would light up and show the Apple logo just as on an iOS device. You’d be shown a list of WiFi networks and you’d pick one, the iPhone in your pocket would ping and you’d be asked if you wanted to allow the Apple TV to join the network, and you’d tap “Allow”. The display then shows you the new main Apple TV navigation interface which involves moving a blue highlight around by swiping on the new remote control or, if you’d like to find something rather than browse, you’d hold the button on the remote and ask a Siri sibling to find the content you’d like to watch.

Wouldn’t that be nice? Here’s how Apple can do it.

I’ve done a lot of thinking about the Apple TV. For some reason it fascinates me. It’s entirely different from the other applications of software. First, it’s a shared experience rather than a direct experience like a Mac or an iOS device. Second, this shared experience means there’s necessarily an indirection of input — if a screen is big enough to be seen by everyone in the room you’re not going to be close enough to it to mess with it directly. So when the rumours went around of an iOS based Apple TV coming I became intrigued and tossed some ideas back and forth with a friend. Mostly the discussion came down to input methods — what could they do and what’d that mean for the interface? Around that same time Bluetooth 4.0 was ratified and the specification includes a low power mode. I guessed that if the Apple TV had a Bluetooth 4.0 chip then we’d see a new remote, if not we’d likely just stick with what we had.

Well, it turns out the new iPhone 4S has a Bluetooth 4.0 chip and since all of these devices, broadly, share a generational common platform we can expect to see it appear in the next iteration of Apple TV. So that’s one part of the puzzle. My guess is for the new remote is a touch sensitive surface with a mic that’s activated by holding down on the Select button. That’s my guess at least, if you can’t play with these things it’s hard to know how they’ll actually work.

But there’s a lot more going on with my hypothetical Apple Television Set than just a fancy remote. There’s no wires, there’s the box finding the display and there’s joining the network effortlessly. How can all of that happen? I believe it’s all possible thanks to the details in this report by Nilay Patel writing for The Verge.

I like this report because it’s a little forlorn — the intent is to convey that AirPlay won’t be enabled over Bluetooth contrary to previous rumours. But buried in here are, to my mind, major clues to technology that will change the value proposition of an Apple Television Set.

Patel:

Made For iPhone accessories have to be authenticated by iOS to work, and the new chip is an authentication module that works over the dock connector, AirPlay, and Bluetooth.

Sounds perfect for an authentication system that’d be required to stream protected content wirelessly to a display. We’d need that if we were going to build my hypothetical Apple Television Set. So the Apple TV box and the Display could find each other via Bluetooth and authenticate with each other. Since you’re very unlikely to be plugging in three sets of these things within Bluetooth range of one another the odds are good that you don’t need to worry about selecting specific devices. And in the cases where that might happen well just read the Tech Note that tells you to do them one at a time. But we’re still at a loss about how we can connect to the WiFi network so easily.

Patel:

We’re also told Apple is making it easier to for MFI accessories to connect to Wi-Fi networks by automatically pulling the appropriate configuration information from your iOS device over Bluetooth or the docking cable — all you have to do is approve the request and your accessory will hop online without any extra effort.

So if you’re in an Apple based household the odds are good that your new Apple TV will be able to talk to one of your other devices and get the required network info from it. I’d bet heavily that this capability makes its way into AirPort devices and Macs. “Want to let this device on your network?”, is exactly the level of simplicity that Apple tends to aim for.

I think the pieces are coming together to make an Apple Television Set an interesting and worthwhile proposition. The Apple TV box device finds and communicates with the Display seamlessly. The control channel between the Display and the Apple TV box is based on a low power Bluetooth 4.0, the Display doesn’t even need an on/off button since it draws so little power. Once the Apple TV box has turned on the Display it feeds it video via AirPlay over the WiFi network. The HDMI inputs on the Apple TV box are displayed in the interface just like other sources of input, like NLB or NetFlix.

The beauty of this sort of setup is that it disconnects the iteration of the Apple TV box from the expensive Display. One key argument against Apple doing a television set has been that people buy new TVs infrequently and so it’d take a long time to break into the market. By building an Apple TV box that can act as it does now but also deal so much more magically with a terrific television then Apple can gain traction selling the devices and accrue additional sales in a new market as users buy into the whole device chain.

I’d believed the idea of Apple doing a television set to be a little far fetched or, at least, something I couldn’t see the value of. With the new information to hand I feel like there really could be a compelling product there. Not, mind you, a blow out success like the iPhone or iPad, but something solid and sustainable.

Oh, and in the impossibly thin bezel of the Display would be a FaceTime camera.

Alan Kay & Nintendo

Apple enthusiasts love this Alan Kay quote:

“People who are really serious about software should make their own hardware.”

I don’t blame them. I agree and I think it’s totally true.

And then they say that Nintendo should start developing games for iOS.

Don’t be too proud of this technological terror you’ve constructed. The ability to control the interaction direction of an entire industry is insignificant compared to the power of creativity.

Nintendo was founded in 1889. Despite all the bad news I’m still pulling for them. And you should be too. If you like companies that take risks, introduce innovative hardware and software combinations, and back up their visionaries with everything they’ve got — pay attention. It’s ugly right now but there’s still fertile ground for a new hope. Unless, of course, you’re happy with all the players who are chasing the last great interaction rebellion.

A Dynamic Siri

Siri, as shipped, appears already capable of adding functionality according to which applications are installed on the iPhone. Here’s a screen shot of before and after I removed Apple’s Find My Friends app from my phone. How does it do that?

Where’s “Where’s Jason?” gone?

I’m busy so I’ve not investigated this in depth but there are a couple of possibilities. First, Siri might know internally all about how to talk to Find My Friends and just turns on the functionality when it knows that Find My Friends is installed on the device. Second, and the option I think many developers hope for, is that Find My Friends somehow exposes itself to Siri, most likely via some settings in it’s Info.plist.

I took a look at the Info.plist for Find My Friends and there’s no special attributes listed. There are a few URL schemes that it accepts: “grenada:”, “findmyfriends:”, and “fmf1:”.

So, I wrote a little test app that implemented these URLs — no dice, Siri doesn’t enable the “Where’s Jason?” prompt. So then I changed the Bundle ID of the test application to match that of Find My Friends and I got this:

It appears that the presence of Find My Friends in Siri is predicated upon the Find My Friends Bundle ID, rather than some exposed capability. But it looks like Siri uses my application icon (none, in this case) in place of the real Find My Friends application icon. And then just goes and calls the app Find My Friends anyway, despite the fact that I called my app, “WTF”.

This makes sense — if I was making these choices I’d make all the same ones. The abstract conversation goes like this:

VP: How fucking cool is this Siri app?
DEVELOPER: Yeah, it’s tight!
VP: Tight? Is that like rad?
DEVELOPER: Uh, yes.
VP: Right on.

Two months pass.

VP: So, we bought it.
DEVELOPER: Bought what?
VP: That Siri thing.
DEVELOPER: Get the fuck out!
VP: What? I fucking pay you, never tell me to the fuck get out.
DEVELOPER: No, sorry, I was expressing my surprised excitement. I really didn’t mean to
VP: (interrupting) Fine. So, you’re on this. Make it better.
DEVELOPER: Better?
VP: Linen. It real needs linen.
DEVELOPER: Linen?
VP: Yes.
DEVELOPER : Linen?
VP: Yes.
DEVELOPER: Ok, well give me access to the code and a designer and I’ll get on that.
VP: Great. Now, get the fuck out.
DEVELOPER: Out? This is my desk.
VP: Get the fuck out.
DEVELOPER: Ok. I really should eat lunch, thanks?

Three months pass.

VP: Nice work on Siri. I am loving the linen. Why the fuck don’t you integrate with Grenada though?
DEVELOPER: Thanks, that linen background took a lot of eff
VP: (interrupting) Grenada. Have you heard of it? Make it work.
DEVELOPER: I’m sorry, I’ve never actually heard of “Grenada”. Well, beyond that place that Reagan atta
VP: (interrupting) What? It’s Grenada. We love Grenada. It’s got rich Corinthian leather.
DEVELOPER: I’ve not been disclosed. The Grenada project is something I’m unfamiliar with.
VP: Get the fuck out!
DEVELOPER: No, really, I’ve not heard about that project!
VP: Christ, It’s like you assholes don’t talk to each other. I’ll get you in touch with the Grenada lead and you two can figure it out.
DEVELOPER: That’ll be great, thanks!

One week later.

DEVELOPER: Hi, I’m in charge of integrating Siri. What do you do?
GRENADA: We Find Your Friends.
DEVELOPER: Oh, that’s pretty cool. How should we make this work?
GRENADA: Fucked if I know, I’ve not been disclosed about what you’re working on.
DEVELOPER: Ok, well let’s just base this functionality on your Bundle ID and you guys implement a URL scheme that we’ll call.
GRENADA: That’s cool with us. Have you checked out our rich Corinthian leather?

Finally…

Springboard gets hardcoded to reserve a few URL schemes for an App that doesn’t ship with the OS.

There’s a tight integration between Siri and Find My Friends, but it’s not as tight as you’d imagine if there’d been total collusion between the teams. Siri will display the icon of an app pretending to be Find My Friends, and this makes sense because there’s no reason to bloat the OS with a Find My Friends icon if the two teams are separate and who knows what the final icon might be.

What does this mean? I predict that a Siri API is further off than you might think. The integration of services into Siri appears to be on a very case by case basis and even an internal app required special consideration.

I’ve shipped a number of platforms in my time — platforms are different. You need to make sure that you can guarantee the functionality you expose is something you can support going forward for months, years, and decades. Once you promise to support something, you’re locked in.

Apple doesn’t appear to have an internal SPI for Siri yet, and it’s my bet that they’re a year or so away from it. Even internally it appears that they’ve not yet drafted an approximation. And I don’t blame them. For an AI system like Siri that would require determining the plug-in based upon confidence that it could handle the request. How do you write an API that gauges the trustability of thousands of plug-ins to properly report their confidence?

I’d love a Siri API. I have custom software on a Mac Mini and my iPhone to control the lights in my place via X-10. If I could use Siri for that then Tony Stark would be calling me up for a couple of hints. But I don’t see it happening soon. I’m not sure how it could work, cleanly and while being scalable.

Siri is a process of disambiguation, but installing random apps from the App Store that support Siri can only increase how ambiguous any request is.

I’ll bet on an API later rather than sooner. If only because the success of Siri is determined upon it generating the best possible results and the ranking of those results must be determined by the plug-ins it uses. Once you allow plug-ins that potentially lie then you’ve ruined the entire Siri experience.