• Recommendation: Ferdi, the messaging service aggregator

    Most of us have a surprisingly wide variety of messaging services installed on our laptops / desktops that we use for different types of communication. Between WhatsApp, Teams, Discord, Slack, Messenger etc, it’s easy to lose track of them all!

  • Uploading an app bundle to Google Play Internal App Sharing from Travis CI

    In a post towards the end of last year, I explained how to generate app bundles on your CI server (in my case Travis). Now they’re being generated, the next step is to send them somewhere!

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