Say hello to iOS Health team at Monzo 🍎 đŸ©ș

Hey folks! :wave:t2:

As promised, here’s an update on what iOS Health has been up to over the last three-ish months!

You’ll notice a common theme through all of the updates below: a process of gather data, visualise, understand and then fix. We’ve had to spend a lot of time over the first few months just getting a clear picture of where the biggest issues are, what’s causing them, and then making sure that our fixes are working and not doing any harm.

Crashes

We’ve put together a list of our top crashes, and built out a lovely set of graphs that help us track each of these. We’ve been focused on the top 10 crashes, and we’ve largely eliminated 5/10. These include problems with how we save data to the phone, how we convert HTML into content on screen in the app, how to store account information when users are updating their address and how we talk to our backend when we have lots of info to transfer at the same time.

You’ll also be happy to know that we think we’ve found a fixed one of the biggest background crashes
so those TestFlight users who see the alert telling you that Monzo has crashes in the background, keep your eyes peeled for v5.20.0, and let’s hope that we have indeed found that bug and squashed it :crossed_fingers:t2:. It won’t fix all the background crashes, but it should fix the most common one!

Here are a few graphs to show the drastic decline in numbers as we’ve shipped the fixes:




Logouts

We’ve been working really hard to understand why users are being logged out of the app when they shouldn’t be. We found that we were having some problems with how we save & read data from the phone in specific cases. When the app launched it wasn’t able to read the user’s info, and so we treated the user as logged out.

We had to make some significant changes to how we monitor these problems so that we see what was happening, and that took a while to build and ship, but we now have a bunch more info on this problem.

We still aren’t 100% sure why those specific cases are causing problems, but we have a few hypotheses, and we’ve made changes to test those ideas out and validate whether they fix the problem.

In addition to that, we’re busy implementing a self-recovery mechanism, so that when users get into this strange logged-out state, the app can auto-recover, without the user having to log in again.

Performance

We’ve started taking a look at app launch times. We’ve put in a bunch of measurements to understand how long each part of the app launch takes so that we can look to optimise it. Once again, reading data stored on the phone is one of the slowest processes, so we’re looking at how we might speed that up. More info on that will follow in the coming weeks.

We have also started looking at excessive disk usage and are about to start testing a database update which should help with cleaning up old/redundant data. We aren’t at the point where we can measure how much of a difference this will make and are continuing with our investigations, but small ‘low hanging fruit’ improvements in this area will start shipping in the next few releases while we dig further. If you see any drastic changes in this area for the better or for the worse then please reach out.

Summary

Over the last few months we’ve managed to reduce the total number of crashes by 34%, while the number of folks using the app has grown by 7%. So even though app usage has increased, crashes have drastically decreased. We’re hoping that the logouts number start to improve over the next month, and that performance can follow on after that.

Lastly, we just want to say a huge thank you for all of your support - the encouragement has been really motivating, and you’ve given loads of help identifying and debugging some of the issues that we’ve had. :pray:t2:

30 Likes