I'm in a minority, but when I get a new iPhone every year, I like to start fresh without reinstalling from a backup. I talked about this before, but, essentially, with the vast majority of my favorite apps storing data in the cloud, starting with a clean installation of iOS is mostly a matter of redownloading and rearranging apps now. In the process, a fresh install of iOS allows me to re-evaluate which apps I actually use and which ones can go – something that helps me keep my devices lean and with plenty of storage available.1
There's one aspect that bothers me every time I decide to install iOS without a backup, though: losing my Health data. In previous years, I was okay with backing up subsets of information to external web services such as Lifesum or the excellent Gyroscope: over time, however, the inability to look at my complete health history in Apple's Health app has become a problem that made me reconsider my stance on not restoring from a backup every year.
Fortunately, Dan Loewenherz has come up with a solution that will allow me to continue my no-restore strategy for the foreseeable future. Loewenherz created Health Importer, a simple $2.99 utility that does exactly what you'd expect: the app restores a backup of the Health database, keeping old entries with every data point logged from your iPhone, Apple Watch, or third-party apps.
Exporting a backup of the Health app was possible before, but, in my experience, no utility ever imported an old database into Apple Health as quickly and as reliably as Health Importer. The first wave of Health restore utilities relied on workarounds such as conversion from XML (Apple's export format) to CSV, which were slow and prone to errors. Loewenherz told me that he's spent the past few months reverse-engineering Apple's XML backup format – which isn't documented anywhere – and he was able to create a system that should import nearly every data type2 stored in Health. Combined with Health Importer's straightforward approach, the app feels like something that Apple should offer for users who don't want to deal with encrypted backups and full system restores.
Here's how Health Importer works: open Apple's Health app, tap the profile icon in the top right corner, and choose 'Export Health Data' at the bottom. Health will prepare an export file (a .zip archive) that you can save into iCloud Drive using iOS 10's new Add to iCloud Drive extension.
Then, open Health Importer and tap Import. The app will bring up the iCloud Drive document picker interface; if you saved your Health backup file somewhere else, you can switch between document providers as usual. Pick your backup file, and Health Importer will start scanning it for samples that need to be imported. Confirm which data points you want to import, give Health Importer access to your Health categories, wait a few seconds, and old Health data will be restored on your new iPhone. I tested Health Importer with a year of data from my iPhone 6 Plus (over 453k data points), and it worked flawlessly.
In the Health app on your new iPhone, you'll notice that old data points will appear slightly different than the old device. The associated icon of the app that captured them will be Health Importer's, for example. If you open a single data point's detail screen, you'll also see that Health Importer's process writes new Source and Date Added fields, but keeps the Original Creation Date and Original Source intact. Because of this, old data points will look like they were captured by Health Importer, but their metadata will show details for the original dare and capturing device or app.
Health Importer is the app I wish I had when I moved from the iPhone 6 Plus to the 6s Plus last year. Loewenherz did a terrific job with parsing Apple's Health backup format, and Health Importer is going to be extremely useful for all those who want to switch iPhones without performing full iCloud restores. Health Imported worked perfectly in my tests and I'm going to use it again as soon as I switch to an iPhone 7 Plus.
Health Importer is available at $2.99 on the App Store.