Android Development: Challenges and Advice

By Max Gu, Architect

Global data show that by the end of 2013, over 700 million Android mobile phones were activated and that number is expected to pass 1 billion soon. Maybe Apple’s IOS is better or maybe not, but Android will be a major player for a long time. Unless you are willing to bypass the majority of smartphones with your mobile app, you will likely want an Android version of your app eventually.

This post is written for someone planning to have an Android app created. It will give you some background on the unique technical challenges of Android and offer some advice on technical decisions you will need to make.

Challenges in Android apps development

The Android operating system is open source: its source code is freely available for device manufacturers to use and extend. Open source fosters great opportunities, but it also brings its share of headaches. Here are just a few that are most likely to cause you problems:

  • There is no one Android operating system and the many versions in the field are not consistently updated like iOS versions on the iPhone. Developing for Android requires selecting which subset of versions you want to support.
  • There is no one standard Android hardware set. Developing for the iPhone is easy from the hardware perspective. There are currently only few devices running iOS. By contrast, there are at least thousands running Android, with widely varying features, from keyboards (or lack thereof) to cameras to buttons, plus different screen shapes and sizes.
  • The Android operating system has more security risks. Lack of governance in the Android market has led to a proliferation of malware programs that can masquerade as trusted apps. The openness of Android has made it susceptible to attack. To make matters worse, unlike traditional open source software, fragmentation on Android makes it difficult to roll out fixes; so many devices remain vulnerable even after security patches are available for known exploits. This puts considerable responsibility on developers to secure their applications and not rely on the platform or OS to be secure.
  • There is no one standard development language or development environment. Initially all apps by default were written in Android using the JDK, but many new options have emerged:
    • With the Android NDK, developers can use C and C++, or the SIMPLE language (which some consider similar to BASIC)
    • With Android Scripting Environment developers can use scripting languages like Python and Lua, or Duby for Ruby fans
    • With Titanium mobile developers create apps using mobile web techniques using HTML, CSS, JavaScript, Python and Ruby. The framework provides the code to generate behavior needed for native application functions
    • The Cordova(AKA PhoneGap) framework provides similar flexibility to Titanium and offers the ability to also create an iOS app from the same code base

Some practical advice around technical decisions you will need to make

When you charter your Android app, you or your team will need to make many technical decisions. Here is our advice around these specific challenges to help you get started:

  1. Give the developers clear direction on what are the compatible versions of Android that you need the app to support. That does not mean your app cannot be built with a later version. Here is a post will cover most of what you need to know to get started on making apps that not only supports an old API level, but also take advantage of what the new API level have to offer.
  2. Insist that your app work on a wide range of screens. Because Android is available on devices with a variety of screen sizes and pixel densities, your developers should account for these factors in their web design so your web pages always appear at the appropriate size. Here is a post that describes how to adapt to various screen configurations.
  3. Require that your app developer uses best practices for Android security. Common lapses include apps that transfer sensitive information (such as usernames and passwords) over unsecured connections, uploaded address books and phone numbers, or activated GPS tracking. Here is a research paper on Android App Security that may help you to avoid such issues.
  4. Require your app to be built in Java with the JDK unless there is a specific business benefit for another choice. Other choices all have benefits and drawbacks. For instance, the Titanium or Cordoba environment may reduce the cost, but will have performance limitations. Here is a forum that answers many questions on the topic of Android development environments.

Android Application Development and Testing with Dextrys

Dextrys is a full service US-based software provider with development centers in China. We offer high quality Android mobile development for a great value. If you would like to discuss Dextrys’ capabilities further, please contact Misha Kalhin at misha.kalhin@dextrys.com.

About admin