make it a very advanced platform in terms of location technologies—having a compass built in, an accelerometer, GPS, cell tower positioning, Wi-Fi. All of that was built into the Android SDK [the software development kit, a set of tools given out to third-party developers] very early.
X: Meaning that an Android phone will always know where it is, so you should be able to use that information to change its behavior. Was that the concept from the beginning, or did the idea for Locale change as the class went along?
CJ: Within the first week all of the teams in the class had their ideas pretty well solidified, at least from an elevator-pitch standpoint. The idea was refined as we went through the class—mainly, adjusting the scope to what you can accomplish in a semester. But in some sense we were actually limited by what was available from Google at the time. There was a beta SDK and a simulator, but there were no actual Android devices available, so that limited what we could do with the application. So we just had a very simple vision of being able to change the phone settings based on location.
X: So, what settings exactly can Locale change?
CJ: Obviously, these are phones so you can change the call settings—ringer volume, ringtone, and the call forwarding options. But there are other settings too, like changing the wallpaper, or turning off high-battery-drain components like your GPS or Wi-Fi or Bluetooth chip.
And we did one thing to let a lot more things happen with the application: we created a development platform that supports plugins. We supply the documentation so that someone besides us could pretty easily write a plugin that would allow the application to do things beyond what we created it for. And to show off the platform, we wrote a Twitter client that posts updates to your Twitter account based on whatever is going on with your phone.
A good example is, say you’re on a trip to San Francisco, and you want you family back home to know that you got there safely and you want your friends in San Francisco to know that you’ve arrived. As soon as you land and your phone detects that it’s in San Francisco, it can automatically post that fact to Twitter.
X: The things you’re talking about, like having the phone turn off the ringer automatically in certain locations, seem like things that phones should do anyway. Isn’t it kind of odd that with a smartphone platform as sophisticated as Android, Google wouldn’t just make that part of operating system?
CJ: That’s one perspective. Another possible perspective is that Google just hasn’t had the time to do everything. There is a lot more to come with Android—we are just at version 1.0, and with your first version, you always just try to stay within scope and get the core functionality working first. And Google is interested in third-party applications because it creates a network effect. All these external applications make the platform itself more powerful.
X: Can you talk about the experience of entering the Android Developer Challenge?
CJ: The deadline for the first round of the competition was April 15, which was a good six weeks before the final presentations for the class, so we had to push up our schedule a lot. We basically did all of our development between mid-February and mid-April. We wound up submitting the prototype about 15 minutes before the deadline.
We should have been really happy, because we had basically gotten our course work done a few weeks early. But we hadn’t really reached our own goals for what we wanted the application to do. So we kept working for the next few weeks, and by the end of the semester our app could change phone settings like the ringer based on the location, and we had the development platform in place.
Google awarded $25,000 each to the top 50 entries in the first round, and we found out that we had been selected right before our final presentation. So, we’re getting ready for the presentation and one of my classmates checks her e-mail—on her iPhone, ironically enough—and there’s a message saying, “Congratulations, you’ve won $25,000.” It was pretty exciting, and a good way to end the class.
That gave us eligibility to enter Round 2, which went through August. So we basically worked all summer long on improving and polishing the app. I was actually in India on a business trip at the end of August when we got a phone call from someone at Google saying we’d won the $275,000 grand prize in the second round.
X: That definitely helped you guys get noticed. So what do you do now—do you take the money and form a company? How do you get the application distributed?
CJ: The prize was paid to us as individuals. As far as our business, we’re moving forward with getting everything in place so we can distribute Locale directly to consumers who have Android phones. I can’t go into all of the specifics. [Like iPhone developers, many Android developers are bound by non-disclosure agreements with Google–WR.] But we are very much looking forward to having our application available for download in the Android Market.
X: So you’re keeping your day jobs? You’re not forming a company around Locale?
CJ: We’re aggressively moving forward with Locale, but we’re also keeping our other jobs. I’m at Akamai, Jenny was already at Oracle, Jasper just started at Google. This started out as a student project, and the mentality was always that it wasn’t a full-time project. For the time being, that’s where we’re at.
X: How difficult it is to write applications for the Android platform? Did you have to learn any new programming skills?
CJ: The class was not about how to write software, it was about how to start a project. We entered the class with all of the software engineering skills that we needed. We all knew Java, which is the language Android is based on. The tools that were provided, like the Android simulator, worked pretty well. The biggest frustration was