Rationalizing Android development

Developing sophisticated Android applications is challenging. Despite tools provided with the SDK and the recommended ADT Eclipse Plugin, maintaining and developing an Android application is time-consuming.

This blog post introduces a series on the rationalization of Android application development. It aims to explain how the akquinet mobile team have changed the way to create Android applications to improve the efficiency and quality of the developed applications. This series covers several topics, from the utilization of Apache Maven, the integration with a continuous integration server to the customization of the logging framework.

akquinet has participated in the improvement of all the tools used and presented in this series and has also released several internally developed components as open-source projects.

The Story, and the Problems

During the past year, we have developed several Android applications requiring complex features, such as branding, native libraries, web service interactions, geolocalization, dependencies and customizations.

Example of application developed by akquinet

We started developing those applications using the recommended tool suite (Eclipse ADT), but we quickly saw several limitations:

  • Difficulties to configure the workstations to get the projects building and running
  • Manual release process leading to inconsistencies
  • The release process was time-consuming and includes superfluous tasks, such as removing all logs
  • Erroneous build process
  • No automatic testing and no easy way to use a continuous integration server
  • Hard to support the Android device fragmentation

So, to face all those issues, we started experimenting with different ways to develop Android applications.

The resulting stack

After a couple of experiments, we have developed a ‘stack’ to develop Android applications, mixing Agility, Modularity, Strictness and supporting our Quality requirements.
We’re now using:

  • Eclipse (and ADT) as our main IDE
  • Maven and the maven-android-plugin as our main build tools
  • A Continuous Integration Server testing our applications on several Android platforms and creating nightly build ‘beta’-applications
  • A Code Quality Tracking tools
  • Androlog as logging framework
  • A Strict Release Process supported by Maven and creating ‘Marketplace Ready’ APKs.

This Series

This series introduces and explains the different tools used by the Android development team of akquinet AG. If you have any questions, feedback or comments, feel free to contact us on http://www.akquinet.de/en/javasap/java-products.html.