Week 3 - Onboarding completed

It was a full week! I reevaluated HealthKit data's aggregation, defined goals, settled on a UI style, and finished the onboarding process

Aggregating Health Info

I worked on loading initial health data for new users. I used an HealthKit Anchor Object Query to retrieve everything until the current date, and I saved the anchor from reusing it for future queries. However, I found it hard to aggregate all the samples returned by the query.

I have an Apple Watch since 2017. I had more than 200k samples gathered for metrics like Steps or Heart Rate in less than four years. I concluded that it's better (and easier) to use HKStatisticsQuery to aggregate the data for quantity samples and use custom cumulative aggregations for stand hours, mindful minutes and sleep. It was a little trickier to avoid duplicates for the latter. I own a watch and an Oura Ring, and they both track sleep, most of the time overlapping the intervals.

Custom SF Symbols

I wanted to have custom icons for each health metric that look good with any font size and weight. It is precisely what SF Symbols was made for. Although it has a vast library of over 2000 icons, I couldn't find everything I needed, so I decided to create something custom. Lucky for me, Apple offered the possibility to create custom symbols, and my wife is a talented designer. She made some great images in Illustrator that we converted in SF Symbols using the instructions from here, and this is the result:

Screenshot 2021-04-02 at 23.16.10.png
Simulator Screen Shot - iPhone 12 Pro - 2021-04-05 at 00.31.22.png

Focus on Goals

A core part of Active Me is about setting goals and trying to achieve them. When the users first open the app, they will be presented with a screen that outlines a goal for each metric they want to track.

The app will provide some default goals that can be edited. A goal is not an actual value but a range that shows the ideal outcome in that area for a healthy life. It can have no upper limit and any lower limit greater than zero. I spent some time trying to figure the best default values regardless of sex, age, height or other personal characteristics. Still, I also want to encourage users to tailor their goals for their bodies and lifestyle.

User Interface style

While working on the goals and the permissions screen, I tried many designs for the onboarding pages. After playing with many variations of colors and layouts, I decided to stick with a very light olive hue as a background and white tiles with actionable information. For the dark color scheme, I use an almost black background and dark grey tiles. Here is the result:


Learning everyday

Every now and then, I find important learning sources and people that inspire me with their work. Last week I started a course by Paul HudsonHacking with watchOS, containing 12 projects of hands-on code explained in detail, designed for watchOS 7.0 and SwiftUI. I already learned a lot, and I plan to use this knowledge in the watchOS version of ActiveMe.

This week I read Launching an Indie App by Michael Tigas, a series of articles that document the creation of his app, Focused Work. Michael discusses about designing and implementing the app but also covers testing, marketing and launch day. His experience is an inspiration and motivates me to continue with my articles.

Lately, I also find an article from Becky Hansmeyer that explains the steps of integrating Core Data with Cloud Kit in a SwiftUI, precisely what I needed. 🤩

Other projects

I am writing here about developing Active Me, but maybe I should mention that while this is the only new app that I am working on, I also work on maintaining and adding new features to other apps. This week I was busy finishing an update for PickMe, my app for generating random stuff. I fixed some bugs brought to my attention by some users and customized the spin duration for the lucky wheel. I am grateful to receive a lot of feedback! When it is positive, it enlightens my day, and when there is something wrong, I try my best to fix it as soon as possible.

I want to offer various ways for the users to provide feedback. In Pick Me, I have three options: email, Twitter and App Store rating. I will add these options to Active Me too. If you want to try this app, you can download it from here. It's a helpful tool and fun to use when you are undecided or just want to add some randomness to your life.


Next
Next

Week 2 - Metrics, Colors & Core Data