Week 1 - New App, New Icon, New Goals
New Project
I make apps for Apple platforms and, every once in a while, I start working on a new project. This time I want to document the entire process. I hope that by following my journey, you will be inspired to create apps yourself and hopefully, you'll also get something useful from my experience. It will be a good exercise for me to write more often, keep track of my work, and be more organized. The app and this series could be a success or an epic fail (no pun intended). Time will tell. Either way, it will be a great learning experience.
What is this app about?
It's about health. I became almost obsessed with health metrics, especially during the pandemic (and I promise I won't mention it here). I want to exercise more, lose weight, and have enough energy to do office work and a run or a hike from time to time without losing my breath. I learned that sleep is essential for a healthy lifestyle. Why We Sleep? is an excellent book that I recommend if you wish to learn more. A regular heart rate is also vital for long and healthy lives. It is highly correlated with exercise, good sleep, and nutrition, so I want to monitor it and keep it within reasonable bounds.
My app will have two main features:
Set healthy goals and encourage users to complete them with achievements
Visualize short term and long term trends for health metrics
Tech stuff
I am building the app for iOS 14+ using SwiftUI, including the new app life cycle. It will be available for Apple Watch as a companion app, also made using SwiftUI. I will use CoreData with iCloud syncing to keep track of goals and achievements. Right now, I'm not sure about creating an iPad and Mac app. I'd like to because it is easy with Swift UI, but they will have limitations because there is no HealthKit access for live data. Widgets will be part of the first release as they are very "motivational" for visualizing your progress.
I am focusing on SwiftUI for the following reasons:
UI Design and code go hand in hand
Many accessibility features come by default or are super easy to implement
I find animations and transitions much easier to implement
I can reuse a large part of the code between all Apple platforms
SwiftUI is required anyway for widgets and complications
Although UIKit is not going anywhere, it seems that the focus on SwiftUI is growing year after year, and it's a great learning opportunity
What about the name?
Well, I don't know yet. For now, it is Healthy Goals. Another strong candidate is Active Me. Both are related to what the app does, though I still haven't decided. Healthy Goals feels more accurate, but Active Me would be in line with other apps from my portfolio (Pick Me, Count Me, Daily Me).
Monetization
I am an indie developer, and I plan to make a living while working on my ideas, so monetization is essential. I want to layout the business model from the beginning.
I want to have the app available for as many people as possible. For this reason, I am thinking of releasing it as a free app and offering some premium features for purchase. My goal is for people to enjoy using the free version of the app without having to pay for extra stuff. I didn't finalize the list of premium features, but it will probably include more granularity in setting goals and visualizing trends and perks like additional achievements and alternate icons.
As it is a relatively small app and I don't have server costs, it doesn't make sense (at least for now) to require a subscription for it, so it will probably have an in-app purchase to unlock the extra stuff.
I value my privacy and I don't like to see ads, so I don't plan to add them to the app. While I am not entirely against ads, I find it hard to provide a good experience on an app that includes them. The ad frameworks often come bundled with unnecessary user tracking.
I still have a lot of time to decide. When I release an open beta, I plan to survey the users for their opinions about pricing and features that can be part of a pro purchase.
How to start?
I usually draw some screen mock-ups on paper or iPad to see how the app would look like. Most probably, the final version will be very different, but it's a start.
The next step was to sketch the model as simple as possible. I am using CoreData + CloudKit syncing, so I laid down the entities and their relationships.
I created the Xcode project, created a project and repo on Bitbucket and pushed the first commit. The journey has begun!
I feel more motivated if the app has an icon from the beginning; that way, my brain knows that it is not just a practice project, so I draw something in illustrator based on a few icons that I already had in my library. I also tweeted about it, so Healthy Goals (or what the name with end up being) is slowly catching life 😀.