If you've resolved to make 2012 the year you jump into Android development, here are some Android n00b pitfalls to avoid.
As veteran mobile application developers with experience in most of the popular platforms of the past decade, we feel that the Android platform is one of the most accessible platforms for new developers. With cheap tools, a friendly development community, and a well-known programming language (Java), developing Android apps has never been easier. That said, we still see a number of mistakes that developers who are new to Android make over and over again. Here are the 10 most insidious gaffes.
1. Not Reading the Android Documentation
The Android Developer Website is there to help you. Much of the documentation can be downloaded with the SDK tools and is also available online (our preferred format as it's continually updated). The documentation is far more than just a Javadoc API reference. It includes many guides, tutorials, videos, training, and other helpful material for creating Android applications.
Android Training is the latest of these, organizing helpful tutorials into classes and lessons to guide you through solving particular problems or implementing particular features.
2. Failing to Familiarize Yourself with the Android Tools
The Android SDK is more than just a library you use to compile your application so it runs on Android phones; it has over a dozen tools to help you build apps. Some of these tools help you design the graphics and layouts of your applications. Others are command line tools, which provide easy and scriptable access to emulators and device hardware. Still others help with performance tuning and profiling.
Find more information about many of the Android tools in the Android SDK documentation.
3. Not Asking for Help from the Android Community
The Android community is large and friendly. When you have questions that the Android SDK documentation (see #1) can't answer, we recommend you start at StackOverflow.com, which has a tag specific to Android development. Other helpful resources include Google mailing lists and sites with tutorials, such as you'll find on the Android Development Center.
4. Being Lazy Because Android Apps Are Written in Java
Java may be a high-level programming language with a virtual machine that attempts to make development as straightforward as possible, but that doesn't mean you can be a lazy coder. Standard programming guidelines still apply. Most Android devices have limited processing power and local storage capacity compared with traditional computers, so inefficient or incorrect programming practices have a much larger impact on overall performance and user experience.
5. Assuming Mobile Development Projects Can Be Done on a Shoestring
Small screen != small project. Many developers new to mobile (and, unfortunately, their bosses) are under the mistaken impression that all mobile development projects can be completed over a weekend by a single caffeinated college student. (Yeah, we've heard those stories, too.) However, the truth is that most successful projects require functional specifications, schedules, bug tracking, dedicated engineers, dedicated designers, QA testers, and a release and maintenance plan just like traditional software development projects.
6. Using a Prototype as the Foundation for an Android App
Too many times we've seen an app that was basically a hello world with a bunch of sample code glued on in random places. No forethought or design is used in the code, and the project file layout is also missing. The final user experience seems to be an afterthought.
Take the time to learn and experiment with the Android platform first. Then, sit back with your team and think about what you really want to build and start from scratch. Ultimately, you'll save time and frustration and have production quality code with easier future maintenance.
7. Poor Integration with the Operating System
The Android platform provides many features for developers to integrate their app tightly with the system and other apps. Take advantage of home screen widgets, content providers, intent handling, and other such features. Make sure any content types your application can handle appear on the share menu. Using these platform features differentiates your app from the generic mobile experience. Additionally, users will see and engage with your app far more frequently if it's easier to access.
8. Improperly Defining Application Configuration Details
The Android Manifest file is the central location for application configuration, but this information is frequently incorrect even on published applications. Many developers don't correctly specify the device traits they support.
Another common mistake in the Android Manifest file is to register for unnecessary permissions. These mistakes can cause the application to be published incorrectly on the Android Market, resulting in low ratings from users, amongst other things.
9. Developing an iPhone App for Android
You've seen it. We've seen it. You download a cool app to your shiny new Android device, but it tries to look and behave exactly like a typical iOS app. Whoa there! Not cool. The Android platform has its own look and behavior, which users expect -- that is why they bought Android devices in the first place. These same apps are frequently missing widgets, content providers, and other unique features of Android (see #7), which makes them seem even more out of place.
10. Not Maintaining Apps After Publication
Have you ever noticed how many apps don't ever get updated, while others are updated constantly? In order for apps to stay relevant, developers must stay on top of application updates. The Android platform is still maturing at a steady pace. Pay attention to the Android Market communications, which often highlight required changes that developers need to make. Without updates, some apps may be left behind. Make sure your app isn't one of them.
Android Newbies Beware
The best way to avoid making a mistake is to be aware of the danger of doing so in the first place. Here we've listed 10 of the most common mistakes we see from new Android developers. Simply being aware of them will help inoculate you and your team from becoming victims of these insidious pitfalls.
About the Authors