Hey folks!
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 . 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.