Android Development with Limited Resources

Screen-shot-2011-06-23-at-12.59.02-PM.png

By Jean Hsu (Android Developer, Pulse) Mobile has opened a lot of opportunities for many people. It's hard to imagine that just a few years ago, there was no AppStore or Android Market for app distribution and monetization. As with any platform that experiences a surge in popularity, there is an initial gold rush with a handful (or a few handfuls) of get-rich-quick stories.

Once larger companies -- very well-funded or profitable companies -- start to enter in the market, how can individual developers or small companies remain competitive on limited resources? As an Android developer at a small startup, and before that an independent developer, I've compiled some general tips on how you can make the most of what you have.

So Many Devices!

With over 300 Android devices, you won't be able to test on each device individually with a limited budget. Follow general best practices for developing for multiple screen sizes. The emulator can help with testing on different resolutions and screen sizes, but manufacturer-specific and device-specific issues come up.

Try to use a slightly dated device (like a Nexus One), rather than the newest released phone, for your main development device. Focus on getting access to some of the most popular Android devices, and try to test on devices with varied screen sizes, versions of Android, network connectivity, and manufacturers. If you don't have the budget to buy a handful of devices, upload your apk to Dropbox and borrow your friends' devices, or visit your local carrier store. There are also services such as DeviceAnywhere that provide by-the-hour remote access to devices, though I'm not sure about the pricing.

Get Feedback

Ask your friends to look at quick prototypes (Balsamiq is nice for sketchy mocks) or use your working application, and watch them use it. If you're feeling brave, buy someone a coffee at your local coffee shop and ask them to use the app for a few minutes. We try to do this at Pulse routinely, and watching and hearing a new user is incredibly eye-opening. As the developer, you are often too immersed in the product to see it as a user would.

Listen to Your Users

No matter how much testing you do before publishing or updating your app, you'll inevitably have bugs. You may not have a QA team, but you do hopefully have some users. Respond to email feedback promptly and and keep an eye on Android Market reviews and crash reports, especially after you release updates. Users that are happy with your product and responsiveness are users that will tell their friends about your app.

Keep it Simple

If you're like most developers, your design skills might be on the limited side. There are way too many Android apps out there that have a mishmash of design elements and engineer-produced graphics. Avoid this look by keeping it on the simple side. Follow the Android design guidelines; there are plenty of free icons or icon sets available online.

Iterate Quickly

You may not have a full-time designer or loads of cash to buy downloads, but you also don't have the burden of bureaucracy and 2-year development cycles. Focus on improving the product and listening to feedback from your users. Frequent updates send a message to your users that your app is constantly improving, and that you haven't abandoned the product.

Marketing?

Developers tend to be very focused on technical details, but if you're going to publish apps independently, you'll have to think strategically about making your product known. I know firsthand that this can be difficult for an individual, especially one who is used to only dealing with implementation. Anyone have suggestions for low-cost but effective marketing techniques that have worked for them?

This post was originally published on www.jeanhsu.com.

About the guest blogger: Jean Hsu co-leads Android development for Pulse News, a mobile news reading app. Before she entered the startup world, she worked at Google as a software engineer for two years. Jean holds a Bachelor's of Engineering in Computer Science from Princeton University. She blogs about her startup adventures and experiences as a software engineer at www.jeanhsu.com. Follow her on Twitter at @jyhsu.