• 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.

  • Using Dyno to create a Discord command that displays a message and DMs a specified user

    Dyno is an extremely powerful bot for Discord, with a staggering set of features, split into modules. One of the easiest to use is the “Custom Command” module, allowing actions to be taken in response to messages in chat. Setting up Dyno to a server you have “Manage server” permissions on is very straightforward, just click “Add to server” on Dyno.gg, then follow the instructions.

  • How to disable your app's preview image in Android's task / app switcher

    The easiest way to disable your app’s preview when your app is shown in task switcher is FLAG_SECURE.