Historie
Im Sommer 2023 las ich das Buch "Atomic Habits" von James Clear. Die Idee, mit kleinen Angewohnheiten seinen Lebensstil zu verändern, fand ich faszinierend. Also versuchte ich, die eine oder andere neue Gewohnheit in meinen Alltag einzuführen. Wie es oft so ist, ließ ich diese nach einer Zeit wieder schleifen. Natürlich gab es dafür reichlich Gründe - oder besser gesagt Ausreden 😂. Dennoch wollte ich es ernsthaft angehen und suchte nach einer Lösung. Mir kam die Idee, eine App dafür zu nutzen. Obwohl es bereits viele solcher Apps im App Store gibt, wollte ich etwas Eigenes entwickeln.
Idee und Motivation
Mein Ziel war es, eine App zu implementieren, die den Prinzipien aus "Atomic Habits" folgt. Der Nutzer sollte die Möglichkeit haben, Angewohnheiten mit Zielen, Belohnungen und einem speziellen Zeitrahmen anzulegen. Was bedeutet das? Anders als bei vielen existierenden Apps, die oft tägliche Aufgaben voraussetzen, wollte ich mehr Flexibilität bieten. Zum Beispiel möchte ich nicht jeden Tag ins Fitnessstudio gehen, sondern vielleicht nur zweimal pro Woche mit Gewichten trainieren. Diese Möglichkeit zur individuellen Anpassung fehlte mir bei anderen Apps, und genau das wollte ich umsetzen.
Zusätzlich plante ich, mehr Analysewerkzeuge in die App zu integrieren. Beispielsweise wollte ich wissen, in welche Kategorien die meisten meiner Angewohnheiten fallen oder an welchen Tagen ich am erfolgreichsten alle meine Vorhaben umsetze. Viele weitere Ideen für nützliche Funktionen kamen mir in den Sinn. Selbstverständlich sollte die App auch Benachrichtigungen senden und die Angewohnheiten auf der Apple Watch anzeigen können.
Die Ideen sprudelten nur so heraus. Gleichzeitig reizte es mich, wieder einmal etwas Spannendes zu programmieren. So kam eins zum anderen, und ich beschloss, die App zu realisieren.
Umsetzung
Für mich ist Flutter nach wie vor das Framework der Wahl, wenn es um mobile Applikationen geht. Dart, die in Flutter verwendete Programmiersprache, ist mir immer noch vertraut, obwohl ich schon länger nicht mehr damit gearbeitet hatte.
Diesmal entschied ich mich dafür, ein Backend zu nutzen. Um nicht selbst ein Backend schreiben zu müssen, griff ich bei diesem Projekt auf das Backend-as-a-Service (BaaS) von Appwrite.io zurück. Dieses bietet die Möglichkeit, verschiedene Authentifizierungsmethoden einfach zu konfigurieren, stellt Datenbanken zur Verfügung und bietet auch Speicherplatz für Dateien. Falls die von Appwrite angebotenen Funktionen nicht ausreichen sollten, können auch eigene Funktionen implementiert werden. Appwrite bietet ein umfangreiches Paket und hat eine sehr aktive Community, die bei Fragen schnell zur Stelle ist. Ich kann es nur empfehlen.
So habe ich für das Frontend Flutter + Dart verwendet und für das Backend das BaaS von Appwrite eingesetzt, um die Features von atomin zu realisieren. Das Ergebnis könnt ihr euch gerne auf der Produktwebseite ansehen und die App herunterladen.
Mit kleinen Schritten sein Leben verändern, vielleicht sogar verbessern!