So after a long break of well over a year away from doing personal work, I’ve now got the motivation back to continue where we left off, which was basically right at the start of a journey.
Change of direction
After a year off my priorities in terms of what I want to build has changed, and so therefore what I had declared I wanted to build in Week 1 has now slightly changed. I’ll keep the blog post up as I believe the points were still valid for anyone starting their app development journey, and I have used them to formulate my next venture.
So what is it?
I’m very conscious about my health, and trying to keep in decent shape. For years I have used calorie counting apps to keep track of this, however recent bugs with the app I had traditionally used, and the lack of options that were out there without paying were a point of frustration for me. So, the obvious thing to do is build one yourself! So in my blog posts going forward I’ll be talking about what I’ve done that week when working on my application, and hopefully some of it will become useful for others out there.
Where are we now?
I’ve already made a very small start on the application. You can find the code for it here: https://github.com/ApprovedBug/iOS-FitnessTracker. At the point of writing this, it’s a very simple application that as of yet doesn’t functionally do too much, but I have nonetheless made a few decisions already which I want to just highlight.
Decisions:
- It’s written in Swift, with SwiftUI. As a native developer this seemed like the easy, obvious choice for me as I want to work on improving my development skills for iOS.
- MVVM approach, for now. I’m attempting to use the typical MVVM approach for data application flow at the moment. I’ll explain in the next point why this is still not set in stone.
- Using SwiftData for persistence. This one is totally new to me. My previous experience for storing data sets in iOS (at least recently) was with using CoreData. However, as I started this application I had found a new framework introduced by Apple and wanted to give it a spin. However, preliminary reading around seems it’s not best suited for the MVVM approach, hence why as I’ve mentioned in the previous point that there are still unknowns for me to figure out.
Current features
So far, I’ve only worked a small number of basically implemented components, mostly at a UI level. They are:
- Welcome view – a view which greets users when they first open the app, explaining who we are and what we do
- Onboarding view – a view which asks the user to input some personal information so that we can set some target calorie consumption goals
- Dairy view – a view which shows the user what their current food diary for the day looks like
All of these features are very much incomplete and we are going to be spending a long time polishing up all of these things over the coming weeks and months to get the app in a state where it’s ready to start distributing to our users!
Next steps
After starting a very basic app, I’ve now made a list of next steps that I want to be working on to get the app in a usable state. It’s basically a to do list, which I could probably reflect for myself better with some cards on a Kansan board but for now I’ll just list out the tasks here and it should give you an idea of what’s coming up!
- Begin writing blog (today is THAT day!)
- Create separate module and integrate workspace building tool
- Create debug menu to be able to override onboarding status
- Hide debug menu from release builds
- Create CommonUI Module
- Distribute DebugMenu as Swift package and configurable with plist
- Fix navigation bugs from welcome, onboarding and main
- Save user targets
- Allow adding new items
- Allow switching days
- Distribute app via TestFlight
- Add unit tests
- Add UI tests
- Add snapshot tests
- Add CI setup
- Add CD setup to TestFlight
Developing a habit (not just an app)
Okay so this blog post didn’t contain too much of use, however I am hoping personally it’s a spark to start building the habit of posting content more often. I’ll aim to post every week with an update about the progress of the app and hopefully by the end of this journey have a library of useful reading for people to feel inspired by.