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

    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!

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

    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!

  • Preview image of Retrieving forgotten environment variables from Travis CI

    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.

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

    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.

  • Preview image of 2020's essential Android development techniques

    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.

  • Preview image of Tutorials overview for data binding

    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!

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

    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.

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

    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.

  • Preview image of Tutorials overview for Retrofit

    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.

  • Preview image of Tutorials overview for Dagger 2

    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.