iOS. Apple. Indies. Plus Things.

Win the Week: My Homegrown App for 2023 Goals and Habit Tracking

// Written by Jordan Morgan // Jan 3rd, 2023 // Read it in about 3 minutes // RE: The Indie Dev Diaries

This post is brought to you by Emerge Tools, the best way to build on mobile.

Ah yes, a new year. A new you. Or the same you, with different goals and aspirations? Who knows. Regardless, I’ve always been one to write down what my path ahead should look like if it all went well during my next trip around the sun. And for many, many years I’ve done it several different ways.

This year - I decided to try something a little bit different to track the goals I want to reach and the habits I want to form and maintain. The idea is simple: Instead of manually ticking “I did this” or entering in stuff to confirm I’m doing X or Y, I instead wanted a simple dashboard that:

  1. First and foremost, reminds me what my goals are for the year.
  2. And, automatically pulls what it can from iOS to show how I’m doing.

TL;DR: Much less manual input or data entry, much more glanceable information on what 2023 should look like. The result is what I call “Win the Week”, and this is what it looks like so far:

A screenshot of a goal tracking app with blocks of different habits to track and goals.

The Kickoff

Of course - there was a lot of thought wrangling that led up to this point. For 2023, I knew I wanted to simplify things a lot. For example, like probably everyone else reading this, I want to get in better shape.

In years past, this meant I would pop some goals in the excellent Streaks app. This time, though, I wanted a less prescriptive approach - so I made my health goal much more concrete, it’s simply to get my abs back. With a goal like this, my hope is that the steps to get there could be more abstract and malleable.

This theme continued on, and I was able to gather all of my thoughts using Apple’s new Freeform app:

A screenshot of Freeform by Apple with yearly goals and resolutions in place.

After getting everything out of my head, I noticed that my goals ended up being split into daily habits, monthly goals and year-long goals:

A screenshot of Freeform by Apple with yearly goals and resolutions in place.

This is also where the name came from, as the more and more I looked at where I wanted to go it became clear that if I can slowly “win the week” most of the time, I’ll likely achieve what I’m after. Think of it as a slight deviation from habit-savant James Clear’s popular “1% better each day” mantra.

For me, after weighing the pros and cons of several projects, ideas and high aspirations, this is what I ended up with. In 2023, I want to:

  • Daily: Pray, eat vegetables and workout (however big or small).
  • Monthly: Write two chapters for my book series, weigh in along with a progress picture and write on my blog (Hey! Already nailing that one!)
  • On the year: Ship two imperfect, M.V.P. apps, beta this one, get my abs back and read two books.

In many ways, this year is about kicking off initiatives that I want to be able to grow in 2024. Once I had these defined, I hit a wall when considering how I want to collate all of this information, otherwise track it and keep tabs on it. What I wanted was something that I can quickly start my day with, and check up on as the day goes along (and the week, month and year) to get a feel for how things are going and remind myself of what I want to accomplish.

So, of course, as an iOS developer…..all roads lead to opening Xcode and making an app.

The M.V.P. of M.V.P.

At this point, I already had mapped out roughly where I wanted to go. The goals were set and the direction was clear, it was more about finding out the absolute best way specifically for me to digest all of this. I ended up gravitating towards a dashboard direction that only has one view, and that view is made up of little “widgets” that you might find on your homescreen. I wanted a tiny little card for my overall goals, maybe one for a progress picture for each month, or one to simply list my daily goals, etc.

Once again, I used Freeform to map all out this out:

A screenshot of Freeform by Apple with yearly goals and resolutions in place.

let concatenatedThoughts = """

This also follows the concepts I laid out in the design book of my Best-in-Class series. Do you make a high fidelity Sketch file, scratch it out on a napkin or something in between? The answer is, of course, whatever works best for you and your goals.


I was able to get done about half of what I had set out to do, but I’m very happy with where I was able to get to (no small thanks to SwiftUI):

A screenshot of an internal habit tracking app.

Each little card is what I call a “block”, and here are the ones I was able to finish:

  • The contextual block, a.k.a. Mr. Rotaty Boi: This one is at the top. It changes what it shows throughout the day and toggles during my definitions of early morning, morning, afternoon, kinda night and night. Of those, it has health tips, HealthKit metrics that are important to me that show how I fared from the day before, caffeine reminders and warnings, little nice-isms and sleep charts powered by the new Charts framework.
  • The Daily block: This displays all of my daily habits I want to build, and represents the only form of user input in the app. You can simply tap the circle associated with the day and habit to see if you’ve done them, and it simply resets each week.
  • The Monthly block: This one, obviously, shows my monthly goals as a list. I struggled with this one design wise the most, as it’s a bit squished right now to make room for the grid-like interface that the daily block required.
  • The Yearly block: A fun, colorful little text-based block that shows all of my yearly goals.
  • The Progress block: This shows the progress of the year using a simple bar indicator. Anxiety-inducing for some, but motivating for me to gain perspective on how fast time flies.
  • The Healthy Reminders block: This displays a bunch of quotes and sayings I’ve collected over the years that were stored away in Shortcuts. It rotates throughout the day.
  • The Bible Verse block: Exactly the same as above, only for bible verses.

And, here are the ones I didn’t get to:

  • One for progress pictures along with weight measurements for each month.
  • A block to show calories consumed minus calories burned to give a better picture of my remaining calorie budget.
  • Something I call the “Link Book” which simply deep links to other things relating to my goals such as an inspirational blog post, a journal entry in Day One, etc.
  • A timeline of the year that better shows when my year-long projects should be done. This is the one I will do next, as it’s quite important to me.
  • A block for showing what a successful end of the year looks like for me.
  • And finally, while not blocks, I wanted to tap into any block and associate a tiny journal entry or pictures along with it.

So that’s Win the Week. I’m sure I’ll hack on it as the year goes on and I’ll update everyone on its progress. Until then, may your year be filled with…exactly whatever you want ❤️!

Until next time ✌️


Spot an issue, anything to add?

Reach Out.