This post is part of the Who's @ Google I/O, a series of blog posts that give a
closer look at developers who'll be speaking or demoing at Google I/O. Today's post is a guest post written
by Ross Boucher, co-founder of 280 North.
When we set out to
build 280 Slides, we wanted to create an
application that made no concessions: something that felt as interactive as the desktop
experience, while leveraging all the benefits of being online. We coined the term "desktop-class
applications" as a way to describe our vision for what web apps should be. We also
knew it wasn't enough to just recreate a desktop presentation tool pixel for pixel. We wanted
to do something new, and to truly take advantage of being a web based
solution.
The key
to having a great presentation is having great media. A picture that helps tell the story with
infinitely more clarity, or that just helps tell a good joke. A movie that shows a demo of
your cool new widget that everyone's going to buy. Not all presentations, and not all
individual slides will work this way, but the kind of in-person, captivating speech that Steve
Jobs would enjoy relies almost entirely on images. And, of course, an engaging
presenter.
So, if having great media is key to having a great
presentation, it's important to be able to find great media for your
presentation. Not all of us have an art department on hand, so we made this idea central to
280 Slides, and we did it with a lot of help from Google APIs.
If you
take a look at what we call the Media inspector, you'll see we have top level choices for
pictures, movies, and shapes. Both the pictures and movies tabs let you search popular web
services to find the perfect media for your presentation.
When you search
for a picture, we send a request to our server, which then sends out requests to several web
services. Google's AJAX Search
APIs actually enable us to perform server side searches as well, thanks to the Flash and Other
Non-JavaScript section of the API. On the server side, this lets us send requests to
Google and Flickr at the same
time, and convert the responses to a consistent data format.
We're
excited about finding other ways to integrate with Google services as well. For example, we
hope to eventually enable publishing a presentation directly to YouTube, and use Google to log
in to our service rather than having to create a new username.
We're also planning
on changing the way we interact with the Google APIs. In addition to 280 Slides, our company
makes a web application framework called Cappuccino. The media integration in 280 Slides has
been a huge hit with our users, so we plan to build this feature directly into Cappuccino and
let anyone building a web app integrate media searching with little effort. This means
changing our approach from server-side to client side aggregation using JSONP. The
AJAX APIs, YouTube APIs, and all the other APIs we use are now available by using JSON with
padding. JSONP lets us work around the browser's same-origin policy to better integrate with
third-party web services without proxying through a server.
280 North is
going to be at Google I/O on May 27-28 to
show off 280 Slides and how we integrate with the Google APIs. We'll also be showing off the
beginnings of integrating this in Cappuccino which should be interesting to JavaScript
developers. We hope you'll stop by the Sandbox!
If you want to learn more
about how 280 Slides uses Google APIs, check out these Google Code videos with one of the
co-founders: