A Guide To Android App Development Tools

By chaione | Jan 15, 2014

Android Development Tools: A Brief History

As Android use has grown worldwide, more developers are choosing to build apps for the platform. Initially, preparing for Android development meant downloading Eclipse, the Android SDK, and the Android Development Tools plugin (ADT). It was up to the developer to properly configure the three components to work together. There were five or more versions of Eclipse to choose from and the emulator included in ADT was so slow it was nearly unusable. The XML-based Ant build system made it difficult to automate build tasks. Adding third-party libraries either meant manually adding JAR files to your project or praying to the Maven gods. Despite the odds, many of us persevered knowing that Google would eventually improve things.

In late 2012, the ADT Bundle was released. The single download included an Android-specific version of Eclipse with the SDK and the ADT plugins integrated out of the box. Steps were taken to speed up the emulator with images for x86 processors, thereby removing the need to emulate an ARM processor. Life as an Android developer was better, but still not great.

At Google I/O 2013, a preview version of Android Studio was released. Android Studio is a custom version of JetBrains’ IntelliJ IDEA. With the new IDE came support for the Groovy-based Gradle build system. Instead of XML, build files use a JSON like syntax. Custom build tasks, release vs debug builds, etc. were fully supported. What’s more, including dependencies was now as easy as adding a single line to the build file (similar to Ruby’s gems).

Android Studio: Ignore the Dust

While still technically considered to be in beta, I have been using Android Studio for development ever since its initial release. There have been occasional issues, but the weekly releases have addressed them while continually adding features. The layout designer makes it easy to preview your layout on different devices and in different languages. There is code completion everywhere; in class files, layout files, and even the various XML values files. Of course, taking full advantage of all the new features means familiarizing yourself with the shortcuts. Unfortunately, very few of these are the same as they were in Eclipse. Never fear, I’m here to help.

Android Studio Shortcuts

I use a Mac for Android development, so apologies to the Linux and Windows users out there. You can find a list of similar shortcuts here.

  • ⌘ + Shift + O – Search by file name

  • ⌘ + B – Go to definition in code, layout files, XML values files…pretty much everywhere

  • Shift + F6 – Rename. It doesn’t matter if it’s a class, an XML file, or even a resource ID (R.id.thing). It just works.

  • ⌥ + F7 – Find usages. Similar to other shortcuts, this works on classes and XML files.

  • ⌘ + N – Generate code. Getters and setters, override methods, etc.

  • Control + T – Refactor menu. Extract methods & classes, generate interfaces, etc.

  • ⌥ + Enter – Quick fixes. This may be one of my most frequently used shortcuts. Implement methods for a superclass or interface, generate a layout file on-the-fly, import a package.

  • Ctrl + ⌥ + I – Auto-indent. Everyone loves pretty code.

  • Ctrl + ⌥ + O – Clean up imports. Again, everyone loves pretty code.

This is by no means an exhaustive list. You can find more shortcuts here.

What About That Slow Emulator?

The emulator included with the Android development tools is better than it used to be, but it still has a “go grab some coffee” startup time. The best alternative is currently Genymotion’s VirtualBox based emulator. Google APIs such as Maps and Google Play Services aren’t currently supported, but the emulator works well for testing simple apps on various screen sizes.

Testing Tools & Libraries

Testing support for Android continues to improve. There are numerous tools and libraries available for testing your applications.

  • JUnit – The original Java unit testing framework

  • Android Test Kit – Google’s own Android testing tools

  • Mockito – Java mocking framework

  • UI/Application Exerciser Monkey – Yep, this is exactly what you think it is. It sends random UI and system events to your app…just like a monkey would.

  • FEST – Android-specific assertions for JUnit from Square, Inc.

  • Spoon – Run UI tests on multiple devices simultaneously and capture screenshots of the results. It’s pretty amazing to see it in action.

Essential Android Libraries

To streamline development of modern Android applications, here’s a list of a few libraries you’ll likely use in just about every project.

  • Volley – Networking & image loading. Caching, a multithreaded request queue, and async image loading

  • GreenDAO – A solid ORM. Unless you really need a ContentProvider, this is much easier.

  • Scribe – OAuth. About as easy as this fairly complex process is likely to get.

  • GSON or Jackson – JSON parsing. Both libraries do the same thing. Jackson is a bit faster if you’re willing to add annotations and do a little more configuration.

  • Sticky List Headers, Nine Old Androids, and Fading Action Bar – UI & animation

  • Google Play Services – Location services, Google Maps, G+, etc. Instead of adding APIs to new versions of the OS, Google is increasingly adding them to this library. Devices all the way back to Froyo (Android 2.2) are supported.

I gave a presentation at last year’s Big Android BBQ on these libraries and several others.

Other Resources

Here are a few ways to keep up with the latest in Android development.

  • Android Weekly – A weekly Android development newsletter. If you read nothing else about Android, read this.

  • Android Developers on Google+ – Weekly “What’s new in Android development” videos as well as several other developer-related video series. Announcements for new tools, etc. are also posted here.

  • Android Developers Backstage podcast – Fairly new and somewhat infrequent, but this podcast features Google engineers discussing all things Android.

  • Google I/O talks – Videos for most I/O sessions. It’s worth taking the time to watch all the talks that interest you each year. These folks know Android best. They built it.

Conclusion

As the Android platform has matured, so have its development tools. Shortcuts, testing tools, and libraries accelerate the development of high-quality applications. Keeping up with the latest in Android development is easy with the right resources. Your fellow developers and users will thank you.


row_ux_research

Get in touch

Marketo Form