Doejo Dev Sessions: Android Development

At Doejo we try to live by the idea that a team works better when they all understand each other’s role. In an effort to demystify the development side of the work we do here, we have talked to our Android developers to explore the benefits, challenges and overall process of developing apps for Android.

Before we get into the specifics, here is some background on the Android platform:

Android’s open-source operating system, that can power almost any device, has helped the platform become the number one mobile operating system in the world, surpassing Apple’s iOS. But with 4,000 unique Android devices on the market, this can warrant certain hurdles on the development side—the buzzword you’ll often hear for developing on the smartphone is “fragmentation.”

This fragmentation affects the entire Android community, from users to developers, brands and networks. With so many devices running different versions of Android, their diverse capabilities can alter the user experience making the route to a user-friendly app long and frustrating.

This diversity is a blessing for the user because it allows them to pick from thousands of devices—from screens as big as your thumb to those that need two hands to type on. It is a curse for the developer, who must personalize the applications they create for each device’s unique screen sizes and internal hardware. Development of Android apps is a frequent client request as it allows their application to reach the largest majority of smartphone users (currently 61 percent of mobile users have an Android device.)

To make the Android platform work for our clients, Doejo developer Anthony pays close attention to the abundance of resources provided on the Android Developers site.

“Dealing with the huge variety of Android devices and their different operating systems can be a daunting and time consuming task,” explains Anthony. He refers to the site as essential since it documents how to deal with issues that may pop up and provides guidelines for developers to follow.

The site helps to simplify user interface design and eliminates the need to test the app on hundreds of unique devices. So, no, we don’t have hundreds of Android phones lying around to test our new apps. The resource section of the site provides data about the relative number of active devices that have a specific screen configuration. This data highlights the most popular screen configurations, cutting down on the issue of fragmentation. Information can also be found on the number of devices running a given version of the Android platform, simplifying the development process. Google frequently updates the data in a timely fashion and allows developers to see clearly what specific models their target market is using.

Beyond it’s popularity with users, another plus side our developers love Android for is in the endless customization opportunities: because of the sheer amount of choices Android presents, it can easily fit into different market niches and price points so you never know who is going to end up with access to your app.

Androids also allow for the modification of icons and an addition of widgets, screens and services creating a flexible design that allows our developers to show off their creative side.

“To create the ideal experience for every user we avoid simply cloning an iOS-style user interface and slapping it on an Android screen. We tailor it to the Android experience as much as possible and test on as many devices as we can get our hands on,” Anthony said.

Here are some apps we have created for Android:

Wompin: a free social-gaming app that allows you to win prizes from your favorite bars, restaurants and local businesses by simply walking in and playing a game of chance.

TinyVox: a social media audio app that allows users to record, store, listen and share MP3 audio files via email, Twitter, Facebook, Tumblr and SoundCloud.

To further understand the development side of what we do for the web at Doejo, check out our blog post decoding Ruby on Rails, a popular framework for developing applications.