Background

Hello. I’m Rob and I work on the Android version of BBC Sport. This article is the third in a sequence of pieces, talking about a refactor of our app.

Obligatory disclaimer: views expressed are my own, not the BBC’s or the team’s.

The first article is here and it introduced the phase of ‘rewrite’ that we’ve been doing, and then went on to look at moving to a single activity model made up of multiple fragments. The second article is here and discussed our version of MVVM along with some illustrative implementation detail.

Now we’re going to look at…


Background

Hello. I’m Rob and I work on the Android version of BBC Sport. This article is the second in a sequence, talking about a refactor of our app.

Obligatory disclaimer: views expressed are my own, not the BBC’s or the team’s.

The first is here and it introduced the phase of ‘rewrite’ that we’ve been doing, and then went on to look at moving to a single activity model made up of multiple fragments.

Now we’re going to look at a level of finer granularity and see how we want our fragments to actually be structured.

What’s In A Fragment?

You may be familiar…


Background

Hello. I’m Rob. I work on the Android version of BBC Sport. Our codebase started its life in 2013 and it’s fair to say we have amassed some tech debt over that time. This is the story of how we modernised a core part of its architecture. It’s aimed at a technical audience who have at least some familiarity with Android.

Obligatory disclaimer: views expressed are my own, not the BBC’s or the team’s.

Image for post
Image for post
BBC Sport on Android in December 2020

The fundamentals of the app were not unusual for that era of Android development:

  • multiple activities
  • some use of fragments
  • some use of viewmodels
  • various UI…


Image for post
Image for post
Image credit: Martijn Baudoin on Unsplash

Background

Hello. I’m Rob and as of January 2020, I work on the Android version of BBC Sport. Our codebase started its life in 2013 and it’s fair to say we have amassed some tech debt over that time — we are now trying to sort out our fundamentals.

Obligatory disclaimer: views expressed are my own, not the BBC’s or the team’s.

One of the biggest pain points before I joined this project was simply described as ‘Koin’. This is a dependency injection (DI) framework along the lines of Dagger. Actually, Koin isn’t exactly the problem, but we’ll come back to…


Background

Hello. I’m Rob and I work for the BBC on the Android version of our new radio app, ‘BBC Sounds’. It’s a modern application written entirely in Kotlin, which is a language that has served us well.

Obligatory disclaimer: views expressed are my own, not the BBC’s.

Image for post
Image for post
BBC Sounds!

When we started Sounds in 2017, we had to pick a JSON parser. We evaluated both Jackson and Gson. I encouraged us to use Jackson with its accompanying Kotlin module, mostly because it was more configurable. …

Rob Pridham

Principal Software Engineer, BBC Sport

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store