History
In the summer of 2023, I read the book "Atomic Habits" by James Clear. I found the idea of changing one's lifestyle through small habits fascinating. So, I tried to introduce one or two new habits into my daily routine. As it often happens, I let these habits slide after a while. Of course, there were plenty of reasons - or rather, excuses 😂. Nevertheless, I wanted to take it seriously and looked for a solution. It occurred to me to use an app for this purpose. Although there are already many such apps in the App Store, I wanted to develop something of my own.
Idea and Motivation
My goal was to implement an app that follows the principles from "Atomic Habits". Users should have the ability to create habits with goals, rewards, and a specific timeframe. What does this mean? Unlike many existing apps that often assume daily tasks, I wanted to offer more flexibility. For example, I don't want to go to the gym every day, but maybe just twice a week for weight training. This possibility for individual customization was missing in other apps, and that's exactly what I wanted to implement.
Additionally, I planned to integrate more analytical tools into the app. For instance, I wanted to know which categories most of my habits fall into or on which days I most successfully accomplish all my plans. Many more ideas for useful features came to mind. Of course, the app should also send notifications and be able to display habits on the Apple Watch.
The ideas were just pouring out. At the same time, I was excited to program something interesting again. One thing led to another, and I decided to bring the app to life.
Implementation
For me, Flutter is still the framework of choice when it comes to mobile applications. Dart, the programming language used in Flutter, is still familiar to me, although I hadn't worked with it for a while.
This time, I decided to use a backend. To avoid writing a backend myself, I turned to the Backend-as-a-Service (BaaS) from Appwrite.io for this project. It offers the possibility to easily configure various authentication methods, provides databases, and also offers storage space for files. If the functions offered by Appwrite are not sufficient, custom functions can also be implemented. Appwrite offers a comprehensive package and has a very active community that is quick to help with questions. I can only recommend it.
So, I used Flutter + Dart for the frontend and Appwrite's BaaS for the backend to implement the features of atomin. You're welcome to check out the result on the product website and download the app.
Change your life with small steps, maybe even improve it!