Pocket’s Tips for Aspiring Android Developers: It’s Not Really Terrifying, and In Fact Quite Enjoyable
Note: This is the first in an ongoing series from our Pocket team on how everything comes together behind the scenes. First up: Max Weiner, Pocket’s lead developer for Android
If you’re an aspiring Android developer, it may have been discouraging to read some of the recent conversations about what it’s like to develop for Android. With the number of different Android smartphones and tablets growing—by OpenSignalMaps’ count, 3,997 distinct devices—the app-building process might seem complex, frustrating and, if you have to buy all these devices, way too expensive.
But having just come off a successful Android launch for Pocket, and having supported Android devices since our Read It Later days in 2010, my message for you is this:
The path to developing a top app that is compatible with the vast majority of devices is within your reach. Here’s a brief history of how we did it for Pocket, and what we learned from the experience.
(Note: Since games can require much more fine-tuned performance, I can’t vouch for how our approach would have worked for game development.)
Step 1: Pick an Android device, any Android device
I started developing the Pocket (formerly Read It Later) Android app in the fall of 2010.
To get started, I bought a Samsung Fascinate for 1 cent on Amazon (with a two-year contract) and added a data plan to my cell service. At the time, there were four Android versions: Cupcake (1.5) and Donut (1.6), Eclair (2.1) and Froyo (2.2). Eclair was approximately 50% of the market.
While Android had emulators back then, they were so slow that they were nearly worthless. So, for the next few months I developed completely on this one device.
As we got further along, my brother Nate, who is the founder of Pocket, wanted to start playing with the app. I lived in Oregon and he lived in San Francisco, so in order for him to be able to start testing the app, he got a Nexus One (with Froyo) from someone on Craigslist.
Now our internal QA process involved two devices.
Step 2: Tap into the community of Android users
A month before we launched our app, we opened up a private beta with about 50 users in it. We made sure they covered a good spread of devices that we didn’t have.
In March 2011, we launched our app (which we lovingly referred to as Baby Andril). Within two days the app became the No. 1 paid news app and it stayed that way for over a year until we went free this past April. During this period, the pro app had a rating of 4.7 (out of 5) on the Market.
With just these two devices we were able to effectively cover more than 90% of the market. Complaints about a specific device issue were very rare.
(Side note: Of course, tablets hadn’t yet arrived on Android when we first started working on Read It Later, so it was a form factor we didn’t need to deal with. If we had just started out today, with more limited resources, we would have wanted to get our hands on an Android tablet just so we can feel that experience.)
Step 3: Use the new and improved resources now available
Android has grown a great deal and while the spectrum of device variations has greatly increased, so have the resources available to developers. With steady improvements and the introduction of new VM emulators, the emulators are now totally usable and helpful. You can test any number of versions of Android or screen sizes without having to buy a device for each one. There are also official compatibility libraries to make it easier to bring new features to older devices.
Previously, it was difficult to define what an Android app should look like. With the introduction of the Holo Theme and the design guidelines, Android has found its style. This makes designing for Android much clearer and more enjoyable. It is much easier to create a polished Android app.
Step 4: Embrace Android
There are some great things you’ll love about Android as a developer, like push messaging (C2DM), background services, share intents and widgets. The world is diverse, users are diverse and Android is clearly meeting a big need.
It may seem obvious, but if you want to develop for Android, become an Android user yourself. Get involved in the Android community. Having a strong appreciation and understanding of how the Android conventions work will be one of your most important assets. Android has its own way of doing things and you should understand them. Users notice these things.
Pocket today: A few more devices
Pocket, too, has grown significantly over the last year, so we have slowly added more devices. We now have 13 devices, gathered through purchases, personal devices and those that have been donated. Most of this was to accommodate our growing team (now 8 people) and the introduction of Android tablets. This also allows us to have devices spanning from Android 2.1 to 4.0, with a variety of different sizes and resolutions.
Occasionally, there are still some devices that give us grief, but it isn’t preventing us from being successful on the platform.
As we grow we will continue to expand our QA abilities, and who knows, maybe one day we will have a 24/7 worldwide, 40-device strong, QA testing matrix run by a former Air Force colonel, or an office filled with 400 devices, but we have done a lot just starting with a 1-cent device.
So fear not, if you want to join the Android party, you can get started for $0.
–Max Weiner, lead Android developer, Pocket
p.s. If you are planning to make an app to compete with Pocket, then disregard everything I have said. Android is terrible and scary, run far, far away from here.