There are a lot of useful articles out there for improving your quality of life while developing on Android. I thought I’d collate some of my favourites so that I can help improve your experience, as well as provide a place for me to find more easily anytime I need to set it up again and don’t have my settings backup to hand.

First of all is IDE setup itself. Configuring Android Studio lists some nice quality of life improvements to help speed up and automate some areas of your every day development flow. I’ve even coloured my Logcat output to match. I find it makes those crash logs a little nicer on the eye, and that always helps.

Build time improvements

At the sacrifice of linting you can improve your build times by setting it to the latest version of android you’re supporting, each have their own type of improvements. I’ve not used this much yet, but I found the idea quite cool. Edit: This is actually for Multidex builds

Within your android hash:

productFlavors {
    dev {
        minSdkVersion 23
    }
    prod {
        // The actual minSdkVersion for the application.
        minSdkVersion 17
    }
}

Keep your Gradle wrapper up to date if possible. At the time of writing this means updating your gradle-wrapper.properties to have: distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip

As soon as it’s okay for you to use I highly recommend trying out instant run in Android Studio. Essentially similar to JRebel but free.

Testing improvements

You can direct the outputs of your unit tests for quick access. To do this within your android hash add:

testOptions.unitTests.all {
    testLogging {
        events 'passed', 'skipped', 'failed', 'standardOut', 'standardError'
        outputs.upToDateWhen { false }
        showStandardStreams = true
    }
}

Handy libraries

Here are a few of my favourite libraries for time saving.

  • Android Annotations - I’ve used a decent amount of and there’s a lot to say for the improvement in removal of boilerplate code, handy helpers and overall cleaner looking code.

  • Butter Knife - The current hotness for view and resource injection. Much lighter weight than Android annotations if you’re not leveraging them much.

  • Icepick - Compliments Butterknife by adding instance state annotations.

  • RoboGuice - Another Dependency injector, lighter weight than Android Annotations

  • Leak Canary - Helps you nail down your memory leaks

  • Stetho - Lets you use Chrome to help view and alter SQL databases and Preferences in your app

  • Square - A lot of well written and well maintained libraries

  • OrmLite - Quick and easy databases

  • MPAndroidChart - Fantastic looking charts and graphs.

  • Codepath - Has a very long list of other libraries.

Video

A decent amount of tips for Android Studio are available in the Android Studio for Experts (Android Dev Summit 2015) video