• How to create an app bundle (and APK) on Travis / CI server

    App bundles are one of my 5 Android techniques for 2020, and with good reason: they’re a low effort way of drastically reducing app size. Surprisingly, we also noticed faster times creating an app bundle then an APK than creating an APK directly. Of course, moving away from APKs is trickier if you have a complicated multi-stage build process involving QA or deployment!

  • Retrieving forgotten environment variables from Travis CI

    When using a CI server, you’ll often need a way to use highly sensitive strings (e.g. signing keys, API keys, passwords), whilst minimising who has access to them. Travis CI solves this using encrypted environment variables, encrypting your variables using a private key only Travis has access to. These encrypted values are then stored in your .travis.yml.

  • How to see all dependencies in a multi-module Android app

    Recently at work, I needed to provide a list of all dependencies / external libraries used by an app. Requests like these are inevitable when working on bigger apps, especially with legislation like GDPR.

  • 2020's essential Android development techniques

    Earlier this year, myself and the rest of the ITV Hub Android team visited Droidcon UK. We thoroughly enjoyed ourselves, and on my return I wrote up my top 5 techniques for Android development in 2020.

  • Tutorials overview for data binding

    Somehow I’ve spent a few years developing for Android without coming across data binding in a real project. I’ve seen it mentioned, assumed the basics, but never actually used it. I recently had the opportunity to use some of it’s more advanced capabilities for work, which seemed a good time to try out the most popular data binding tutorials!

  • How to create (and test) an app update listener

    Running code when your app updates can be a useful marketing tool, and a reliable way of enabling new functionality only when the user updates.

  • How to create HD image flairs, with accompanying text, on your subreddit

    Over on /r/AndroidDev, we’re shortly going to be hosting AMAs from a few prominent devs. In preparation for this, I wanted to revisit Reddit’s user flair system, so users can have their employer’s icon. Whilst I’ve assigned plenty of flairs over on /r/Android, I’ve never actually created one from scratch. The end result of this tutorial will be the ability to easily give your subreddit’s users custom image flairs, whilst allowing them to add their own text.

  • Tutorials overview for Retrofit

    Whilst I’ve used Retrofit before, I’d always just used the very basics and not thought much about it. Hey, it’s just the API interface, who cares right? I decided to check out a few implementations of the basics, making a repo along the way. This GitHub repo is available here, and contains completed versions of most of the tutorials listed here.

  • Tutorials overview for Dagger 2

    Whilst I’ve used the dependency injector Dagger 2 a few times before, my knowledge was very much gained “in the field”, i.e. from seeing it in the wild. I recently decided to learn how to use it properly, so worked through a few of the more popular tutorials inside a repo. This GitHub repo is available here, and contains completed versions of all of the tutorials listed here.

  • How to use 9-patch images for resizable backgrounds in Android

    In Android, almost all views can have a background colour or image set. Whilst a colour can be any size / shape, as can a vector drawable, a bitmap drawable cannot. For example, trying to make a 100px wide & 100px tall image 500px wide and 50px tall would result in a blurry, and horribly distorted background.