Work Education

A decade-old exam practice app, brought up to date without a rewrite

We inherited a family of Android practice apps for students preparing for graded exams, and we still look after them. We replaced the audio engine, billing and tooling one piece at a time while the apps stayed on sale.

  • Android
  • Kotlin
  • Audio
  • Maintenance

The problem

An examinations body publishes an official practice app for students preparing for graded exams. Students buy practice content for their syllabus and work through it at home, using audio tools to slow material down and repeat it. A single codebase builds a whole family of subject-specific apps on Google Play.

When it came to us, the app had been quietly ageing for some time. It relied on an old licensed audio library, an outdated billing system and a build setup that predated modern Android tooling. On top of that, Google Play raises its requirements every year, and an app that falls behind stops being offered to new users.

The risk

The tempting answer to old code is to start again. Here, a rewrite would have put years of purchase history and an existing base of users at risk, for a product that had to keep selling the whole time. Rewrites also have a habit of taking longer than planned, and while one is under way the live app still needs its yearly platform updates, so you end up maintaining two things instead of one.

The opposite mistake, patching only whatever breaks, would have left the app one platform change away from being removed from sale.

The decision

We modernised each major piece behind a stable interface, one at a time. The audio engine was replaced with one of our own, built on an open-source library, while the player’s interface stayed exactly as it was, so the screens students already knew did not need to change. Billing was migrated step by step through several major versions of Google’s billing library, and analytics and crash reporting moved to a current platform.

Each year’s Android platform update is dealt with as it arrives. Recent ones have included foreground service types, enforced edge-to-edge layouts and a new native memory page size (which meant recompiling a native decoding library). New app variants and each year’s syllabus content have been added on the existing architecture, without anyone needing to start from scratch.

The outcome

More than ten years after launch, the apps are still live and still selling, with their purchase history and their users intact. They keep pace with Google Play’s requirements as each change arrives, rather than scrambling to catch up afterwards, and we still look after them.

Production Readiness Review

In five days, we will tell you whether it is ready to go live.

The price is fixed before we start, from £1,500. You will receive a short report with a red, amber and green summary, and the ten fixes that matter most, in the order we would tackle them.