After a busy couple of weeks, Seattle went and won the Super Bowl, leading to the world's most
polite celebration in our neighborhood:
There was another prize for the weekend: a friend of ours gifted us a Chromecast, which will be
much appreciated since there's currently no way to watch HBO on the PS4. On Monday, Google
released the public SDK for the platform, so I decided to poke around a bit.
Chromecast has a decidedly-odd way of loading content. The device itself is just a thin
shell around a Chrome window, and it loads web pages like any other browser. But there's no
keyboard of any kind, so how does it know which page to load? The answer is that each "app"
has an ID listed with Google, corresponding to a set of URLs that the developer provides.
When a mobile app or a computer running Chrome triggers the Chromecast, it sends the app ID,
which the device then sends to Google and gets a URL in return (or, if the app hasn't been
listed, it does nothing). From that point on, you can send messages to the page over via
Google's cloud, and your page can do whatever you want it to do. Getting your pages linked
to an application ID on the Chromecast lookup servers costs $5.
Five dollars is a low price, but it's more than I really want to pay for a glorified DNS.
I'm a little dismayed by the restrictions on the open web — I'd like the option to
just send a URL directly. I'm also holding out for a pure JavaScript API, instead of
piggybacking on the Chrome extension. So I probably won't be writing any Chromecast apps any
time soon. But it's certainly not for a lack of ideas. The interaction model that Chromecast
uses — where the screen is just a dumb display, but it can receive commands from other
web-accessible devices — is strikingly similar to Microsoft's
SmartGlass model. And where Microsoft seems to see it as a way to create companion apps
for XBox, I think it's interesting to think about how this "distributed I/O" model could be
used for standalone applications.
- The Chromecast isn't going to rival any consoles, but it wouldn't have to be for a lot
of group gaming experiences. Just having a screen that could be used as a scoreboard, or a
trivia question where phones are used as buzzers, would be a cool usage that doesn't require
precise controls or rich graphics. Turn-based games could easily use the screen as a board
overview, while letting people zoom in and move their pieces from their local touchscreen.
It also provides an interesting split between public and private information for players
that many video games (excepting the Wii U and Dreamcast) couldn't duplicate.
- I love maps. I think they're the real face of augmented reality, as any regular
traveler can attest these days. But they don't have to be mobile. A Chromecast could easily
serve as a map up on your wall, updated with whatever information you find interesting.
Maybe that's as simple as the weather, but imagine being able to tag it with RFID
information or last-known positions for people in your household. Systems like Google Now,
which learn from your schedule, could even post notifications for the buses that are coming
or traffic problems that you're likely to face.
- Along those same lines, a simple dashboard could be helpful for businesses and
individuals. Being able to throw metrics up on the wall with a web browser is not a new
thing, but tying it to a smart, feed-aware service would open up all kinds of new tricks,
like being able to leave yourself notes via a hashtag on social networks. There's not really
any input needed: it's just a passive display of whatever you want to keep yourself caught
up on, in an easy at-a-glance format.
- Finally, it's probably just all the public speaking I've been doing lately, but it's
tempting to think that a presentation app for Chromecast would be super-helpful for
speakers. A lot of times, when I go to a meetup or a new classroom, it's hard to predict
what kind of video hookups the projector will have, assuming that they even have a
projector. But many times, there will be a big-screen LCD TV, with a handy HDMI input. Being
able to carry a Chromecast with me to make my presentations, especially if the speaker notes
can be viewed separately, would be awesome.
When we talk about the web being device-agnostic, the Chromecast is a perfect example of
what we're talking about. It's radically different from other web clients: low DPI on a big
screen, no local input, and unpredictable performance. But that's the power of the platform
— as a toolkit, its reach is unparalleled. And the restrictions prove to be exciting
inspiration for new uses, just as touchscreens came with their own unique challenges and
advantages. I don't know if Chromecast is going to be successful, but the hacks for it are
going to be really interesting.