It was never my intention to build an app for public use. My intention was to create a small personal app for myself and maybe share it with a handful of friends who might also find it useful. However, Apple's stringent process for uploading apps to the App Store made this quite impossible to do candidly. (I'm sure it's done on purpose to enhance the quality of apps that exist in the Appstore).
Anyway in doing so I've learnt so much; in just 25 days not only have I learnt a new programming language, I’ve also had the opportunity to create a website, draft a privacy policy and create an email address for the app. These are all things I never expected I'd have to do.
The challenging thing about learning a new language is the temptation to build something right away - this is usually good for practice. However, if there's one major lesson I’ve taken from this, it's to DEFINITELY design first. Meaning, the entire onboarding process, the launch screen, all the different states, an app icon, and mockups for different device sizes. This would be the typical design output if you were to actually build an app for the public. And while I opted for the bare minimum due to a tight deadline, I'd strongly advise against shortcuts as it only hurts the quality of your app.
My recommendation for learning to code in SwiftUI is to start with some tutorial videos. Understand enough to build something small from scratch (like a to-do-list app), and then make notes of the solution for the problems you encountered. It’s the best way I’ve come to learn any programming language as you won’t know your knowledge gaps or what’s important to remember until you have to build something from scratch.
Building this app has come about as a by-product of another project I’m working on and due to its simplicity I have no plans to update it frequently, i’ll be focusing on quarterly updates instead if there are any. It’s a good enough time period I feel for me to test the viability of the app.
Finally, I've decided to make the project open source, for people who may want to build similar apps like a gratitude/joy journal, or maybe even a hate list for all the things you hate (it can be surprisingly therapeutic). Oh and another thing, there is no signing up required!
This experience for me has been a manifestation of fulfilling one's potential – a blend of determination, temporary solitude, and a conscious effort to overcome self-imposed obstacles (which I call 'getting out of your own way').
It's been such an exciting and serendipitous journey and I'll rest well tonight, reflecting on the all the lessons and the fact that I got to build a fantastic entity as a result of it all.
P.S.: The story behind the app is a story for another day, just hope you find it as useful as I do.