Blog

V6.2.1, It’s about the Apple Watch!

About three weeks ago I realised Heart Analyzer V6.2. Amongst some other features and fixes, the update launched a feature to allow the user to view their heart rate in a graph right on Apple Watch. Whilst this is exciting for all users, It is particularly amazing for Apple Watch Series 4 users. This is because the graph can be displayed as a complication on the new Infograph Modular watch face! This really is a mile marker for third party Apple Watch apps and I was thrilled to be one of the first (possibly the first) apps to offer a heart rate graph after Apple. Now, there I said it, after Apple. Some may point out that with the reliability of Apple’s complications compared to third party apps, why would anyone use Heart Analyzer? Well the graph for heart rate on the Apple Watch Series 4 is mediocre at best, it’s a fixed timescale graph, always showing the day as a full 24 hour period. This means that if you look at is after midnight, the graph shows nothing, literally nothing. It’s also a scatter graph. This is the most accurate way to view the heart rate data, but it’s not the easiest to read, and it’s not the most visually pleasing. These reasons are why Heart Analyzer currently offers an auto-adjusting line graph with 3 or 12 hour auto ranging time scales.

Today I’m delighted to say that with Heart Analyzer V6.2.1, this graph is now customisable for our premium users with the App Customisation add-on. You can either leave the default auto ranging option of 3 or 12 hour graphs enabled, or choose one of the following:

  • A 6 hour fixed graph
  • A 12 hour fixed graph
  • A graph of your heart rate showing todays’s heart rate over a fixed 24 hours period of the day with yesterday’s heart rate graph overlaid 
  • You can also choose the colour of these graphs, either the defaults blue tint, or green or red.

Given that these graphs are even available on the watch face for Series 4 users, I though it was important to give users a certain level of control over how they look.

As well as these customisation options, all the complications that Heart Analyzer offers have had a significant under the hood revamp. Previously, the complication would update roughly every 10 minutes. At that point, the app would ask the Apple Health store for the users data relevant to the complication. If the complication showed your most recent heart rate reading, the app would ask for the most recent value from the store. If the complication showed the whole day’s heart rate, that is what it would ask the store for…. Every 15 minutes. This involved repetitions of data requested, and the HealthKit store on the watch is not exactly super efficient. These queries were eating battery and causing the watch app to be terminated by the system for taking too long.

For this update, I wanted the heart rate graph to show data from the previous day as well as the current. I knew this meant a new design was needed.

To solve this problem, I’ve implemented a time based FIFO (First In First Out) system. This means that when the app first launches, it samples all the recent heart rate data since the start of the previous day. From then on it only samples for new data points since when it last checked. These samples are much quicker and any results are always new data, which gets added to the local store. Once a day when midnight passes, the app clears out old values that will no longer ever be displayed from the apps local database.

This way the app performs regular, consistent, small samples and in the background it maintains a local picture of your recent heart rate.

The results from implementing this have been astounding

  • The complication now updates roughly every 10 minutes
  • The app is more efficient on battery life
  • The app never gets killed by the system for taking too long to execute
  • The app launches faster than ever from older Apple Watch models

I really hope you enjoy this new experience. I really believe it’s a big step forward for an Apple Watch app. I hope to take this good base in future and add features to the watch app, giving you more information on your wrist, where ever you are, and all standalone from the iPhone app.

All the best

Simon

Helix Apps – A new start

Hello! Its good to know people are able to find the new home for apps including Heart Analyzer and Fitness Friend! Hopefully you’re here to find out more about these apps or get support and provide feedback on your experience.

I have now been developing apps for iOS and WatchOS for nearly three years. I’m delighted to have two, free to download, apps on the Apple App Store which thousands of people download every month. In the future I hope continue improving and developing these apps. The are both written in Swift 4 with a good code base for future additions and expansion of features.

Please do get in touch with me if you have any particular feedback you’d like to share on the current apps or if you have ideas/wishes for the future.

Simon

Heart Analyzer, an update

Heart Analyzer, as a publicly available app for iOS and WatchOS, will have been around for 3 years this September. In that time it has been able to break new fronts on development of Health Apps for the Apple Watch(Caveat: Apps for the Apple Watch don’t necessarily have to run on the Watch, their main functionality can be from using data measured by the Watch). This new ground started with the ability to graph the heart rate data measured by Apple Watch. At the time, Apple offered no form of graphing capability and all this data was going missed by users. The second significant feature Heart Analyzer pioneered was auto detecting/inferring users sleep times from data collected by the Watch. Whilst many apps now offer this feature, and many in a better way (yes, says the Developer!) is was still the first to do it and helped other developers and users realise this capability. The last thing that also runs right from day 1 with Heart Analyzer is user privacy. The policy has always been simple, No signing in, No advertising, No user data harvesting and in fact, no cellular or wifi data usage on the users device what so ever. This includes third party analytics. By keeping these policies in a stringent manner from the start, I am confident in the anonymity and privacy of the app users.

To me, the above all sound like the most amazing groundings for possibly the best app ever for Apple Watch. But the fact is, its not.

So, digging into why this is the case has taken some serious time and thought. After this deliberation I have come to the conclusion that the reason the App is not mainstream popular is that it is too bulky. The simplest analogy for this would be that if one was assembling square cardboard boxes, and stacking them upon each other, they would be developing Heart Analyzer. The skill initially of assembling the first boxes was low, but despite this they have continued to build more and more, and stack more and more on top of each other. Any work now done on the app requires extra care and attention to ensure it doesn’t cause incorrect behaviour or crashing somewhere else in the app.

The solution for this problem is simple, re-write the app…. In practice however, this is a massive undertaking which is why it has not happened sooner.

But the time does now seem right. With the Apple Watch where it is now in terms of capability and then with WatchOS 5 & iOS 12 around the corner, it only seems sensible to start now. Apple has also put significant focus on the Apple Watch heart rate features recently and its clear that’s it’s one of the public’s favourite features of the watch. This all means that Heart Analyzer needs this re-write, re-design and general overhaul to bring it inline with the current capabilities and hopefully go further.

So, the question many will ask, when? Hopefully I will start development of the app in June once WWDC is past and my new app Fitness Friend has been released. The app will be entirely re-written in Swift which is a change from its current Objective C code base. I also hope to expand its appeal to a wider Apple Watch audience with easier to understand features and more “smart” analytics of the users data. For the release, I will aim for a September time frame, though this could slip to the end of the year so no promises, sorry!

I will post here with updates so please do follow and keep up with the blog. I always welcome feedback, suggestions and feature requests so do send me an email if you’ve got something to tell!

That’s it, many thanks for reading.

Simon