KHabit
A habit tracker app for iOS in SwiftUI
2020-11-20
Lately I have grown some interest into making mobile iOS apps. I'm currently doing that as full time job for a company, but those are often quite complex apps that interacts with external devices, and I didn't want to do that. I wanted something relaxing, simple, and enjoyable to develop. It's been a while since I wanted to use a simple daily task and habit tracker app, but I couldn't find anything on the App Store that was really simple and without useless complications. Every app I saw was packed with loads and loads of features that, In my opinion, only 1% of their users really want. I see this as an excuse for the developers to put hard limitations on the core functionality, and give you the option to subscribe to their service while they give you all this loads of features. I feel that the App Store is lacking of really simple apps aimed to do just one specific thing without friction. So this give me the motivation to start make a series of apps just like that.
The concepts: Pure app
So, my concept of "Pure App" is an app which
-
Does not have in-app
-
Does not have subscriptions
-
Does not have tracking
-
Does not have data collection
-
Open source
All this is because I want the apps to be 'honest' and deliver all their contents without any real limitation that pops out after you installed on your device, and also I don't want them to be full of analytics and data collection for no reason. Lastly, I want them to be open source, so anyone can check the code and contribute or learn from it.
Being open source also give the chance to be totally free for people that can't spend their money on it
The implementation
It's not a secret that I really love to try new technologies, so this time I tried SwiftUI, since I normally use Objective-C and Swift at work, I never really gave it a shot. It wasn't the first time I used reactive programming, I was familiar with React (Or Reagent since I used it with ClojureScript), but I was quite surprised seeing how well it worked on iOS with SwiftUI. The codebase shrinks a lot compared to the same app made with normal imperative Swift, so the final code is much more readable and maintainable. Lastly, the preview mode is really handy, once you understand its limitations and how to work with it effectively.
The UI
This part should also reflect the pure concept of it, so I wanted to keep it look clean with a native feel with touches of really light eye candies here and there to give it a bit of personality without being too weird. All the core functionality should be reachable in 1 or 2 touches once the app is launched. I used familiar icons and structures to reduce text as much as possible, this give the chance to not worry too much about translations since the app should be usable even with a very limited knowledge of English.
The series
As I anticipated before, I'm planning on releasing a series of this kind of apps with a similar style. I'm already working on the next one, and that will be an income/expense tracker. Other ones are planned but I still have to realize those ideas into prototypes.
External Links
- KHabit Repository: https://github.com/elkiwy/khabit