FetchUtils is now in Maven Central

My Android library for making data loading tasks easier, FetchUtils, is now available via Maven Central. This will now make it easy to import the library via Android Studio, Gradle and Maven.

In Android Studio (which uses the Gradle build system), add the following as a dependency inside build.gradle;

dependencies {
    compile 'uk.org.rivernile.android.fetchutils:fetchutils-library:1.1'

(At the time of writing, version 1.1 is the latest version. Remember to check for newer versions on Maven Central.)

After syncing your project with Gradle files, the library will now be available for you to use.

Please do tell me of issues and submit pull requests on GitHub. This library is something that I find useful and want to share with other people – hopefully you find it useful too.


Android TV – some initial thoughts

Nexus Player
Nexus Player. Image copyright Google Inc.

Recently the Nexus Player was made available in the UK. I jumped at the chance to purchase one to try out Android TV. At £79 it is reasonably priced, and the Google Store will ship it for free at the time of writing this.

First impression

Setup was simple. Logging in to my Google Account could be done via my phone rather than through an on-screen keyboard – great for quickness and password entry privacy. The design is pretty and Google’s Material Design visual language looks fantastic on TV. One of the first things that got my attention was the speed of the UI. It was instant and smooth – a world of difference from cable TV boxes which always seem like they’re processing everything on a single thread.

The included remote with the device feels quite cheap, but it works well enough for quick navigation throughout the interface. I wondered if there was a remote app available for my phone. After a very brief search on the Play Store I found the Android TV Remote Control app. This made text entry much more simpler compared to navigating a keyboard via a D-pad as it made use of the software keyboard on my phone. Apart from replicating the included remote and providing a keyboard, the app doesn’t do anything else.

It is possible to perform searches via speech detection. This was extremely accurate – I’ve not had it fail on me yet. Because of the accuracy and speed of voice search, and how cumbersome text entry can be, it may be a voice search feature that I will actually use. I rarely use it with my other Android products.

Where are the apps?

I wished to see what applications are available for Android TV. I was disappointed by the lack of apps available – there must have been less than 10 non-game apps I could find that were available to me. New platforms, including sub-platforms as is this case, will always suffer from the chicken-vs-egg problem. That is, people will not have a good reason to use the platform until there is a vast amount of content available to them on it (apps in this case). Likewise, application developers are reluctant to developer apps for a platform until there are enough people on using the platform to justify the time, cost and effort to create the application. I hope to see more applications made available soon for the platform. One notable exclusion is BBC iPlayer.

I wonder if Google could have done more to make many of the apps in the vast Google Play Store collection automatically compatible with Android TV. Then again, this could have led to sub-par experiences, and Google may be looking for a fresh start with TV apps to bring up the quality.


Which brings me neatly on to development. I had a quick look at the developer documentation for Android TV. It is possible to create a single APK file that will run on phone, tablet and TV. The main differentiation is performed at the application resources and manifest level. Android TV includes the same vast suite of APIs at the core Android OS, as well as a few new “lean-back” APIs. These APIs enable a developer to create engaging TV user experiences. Based on my very quick skim-read of the documentation, the impression I get is that creating TV experiences is a little more involved than I would have hoped for and could be a catalyst for code duplication within an application – although with good software engineering code duplication can be avoided. But that’s a topic for another time.

Some people who know me may know that I develop a well-known Video On Demand (VOD) application for a TV channel based somewhere in the UK. Their application is exactly the sort of application that should be on this platform. I look forward to bringing their application to Android TV in the future if they wish to take their product in that direction. As an experiment, I installed an in-development version of their application on my Nexus Player. While it displayed fine, navigation was quite unusable. Some modifications will be required to the application to make it usable on this platform. It wasn’t quite the quick win I was hoping for.

Something that frustrated me, which isn’t a problem with the platform, is the Netflix app. Netflix seems to have created their own custom keyboard layout on the user interface which accepts D-pad navigation but because it’s custom, does not accept the remote keyboard input from the Android TV Remote Control application. As a result, this application did not feel at home on the platform.


In conclusion, Android TV looks much more promising than any of Google’s previous attempts to create a smart TV platform, which have turned to vapourware. As Android TV sits within the main Android Open Source Project (AOSP), it will receive the same attention in the operating system as phone and tablet. Before, there was no motivation to maintain Google TV as it was branched off the main Android repository. But now Android TV is treated as a first class citizen, and for that reason I think it will be here to stay and will get stronger at the same rate as the platform.

Given the current state of the lack of available applications, we’re very much still in the early adopters stage. It may yet be quite a while until this gets real market traction with the average consumer. Perhaps it can quickly live up to its predecessor, the Chromecast, as offering a cheap smart-TV solution. But the price of the Chromecast is unbeatable, and is a simple yet solid implementation. I look forward to see where Google take Android TV.

Android welcome

My new blog

It has been a long time coming, but I’ve finally got a blog for myself up and running.

Most of my posts will be about my professional career – Software Engineering. Specifically, I will most likely write about Android development, which is what I specialise in. However, from time to time, I will write about other topics.

The main aim of this blog is to share knowledge that I have gained. Further to this it is also helpful to write stuff down to help process the topic properly. Hopefully someone gets some benefit out of what I will write.

Other than that, I’m not really sure yet what I intend to put up here. I hope to not make it a ranting ground for myself (and if I rant, I hope to make it as constructive as I can). I am sure that I will figure it out – I just needed to set something up first before I could even think what of what I was going to do with it.

Apart from that, there’s not much else to say at the moment. I look forward to my next post…