Building My Daily Habit Tracker App: A Digital Marketer's Journey in Software Development
In the past two months, I’ve been working on something I’m truly excited about: a Daily Habit Tracker App. This app is designed to help users stay on top of their daily routines and build habits over time. The concept is straightforward: users set daily goals, track their progress, and visualize how well they’re maintaining their habits.
The project journey—from research and project approval to production and launching a landing page—has been both challenging and rewarding. What began as a Minimum Viable Product (MVP) evolved into a functional application with a sleek UI that I’m eager to expand. Throughout this process, I encountered various technical hurdles and gained invaluable insights about development, persistence, and growth.
Solo Developer, New Tech, and a Little Help from My AI Friends: The Making of My Daily Habit Tracker App
Developing an entire app solo—what was I thinking? With just a background in Python, C, SQL, HTML, CSS, and JavaScript, diving into Kotlin and Android Studio felt like learning to ride a bike while climbing a mountain. But, guess what? I went for it anyway and managed to bring the app to life in less than 2 months.
Sure, I didn’t have a traditional team of developers, designers, and project managers. Instead, I had an unconventional squad: ChatGPT, YouTube tutorial creators, and the ever-reliable Stack Overflow question authors. They guided me through the maze of Kotlin, Android Studio, and all things I had never encountered before.
From designing and coding to testing and launching a landing page, I wore all the hats. Even though push notifications and reminders are still on my to-do list, my focus was on ensuring the app was solid and user-friendly before tackling these advanced features.
So, while I might not have had a classic team, my digital allies and a hefty dose of perseverance got me through. If you’re considering going solo on a project, remember—you might not have a traditional team, but you’ve got a world of resources and a whole lot of determination at your disposal!
Purpose of the Project
The goal of my app is to provide a simple way for users to monitor and improve their daily habits. Whether it’s exercising, drinking more water, or reading daily, users can set goals, mark tasks as complete, and track their consistency over time with a dynamic progress bar.
The Story Behind the Project
Growing up, I struggled to establish and maintain a balanced daily routine. I often found (find?) myself losing track of habits like eating breakfast, meditating, or taking work breaks. Determined to change this pattern, I set out to create a tool that would help me—and others—stick to daily habits. I wanted an app that was simple yet effective, providing instant feedback and reinforcing the importance of daily commitment.
This personal challenge inspired me to develop the Daily Habit Tracker app. I believe building good habits is crucial for success, and this app is my way of supporting both myself and others in staying on track.
The Result
Dailio is a sleek, user-friendly app that lets users add habits, check off tasks, and track their progress with a dynamic progress bar. Its clean and functional interface ensures users can focus on their goals without distractions.
Technologies Used
Key Features of the App
领英推荐
The Most Difficult Technical Challenge: Real-time Progress Bar Updates
One of the biggest challenges was live updating the progress bar whenever a habit was marked complete or incomplete. Although it seemed simple at first—updating the progress bar based on selected checkboxes—it became clear that real-time UI updates required careful data handling and synchronization.
The challenge was to ensure the progress bar reflected changes instantly as users interacted with the checkboxes. The progress value needed to update dynamically, but initially, it wouldn’t update correctly until the app was restarted.
I needed to find a method to update the progress bar seamlessly whenever a user interacted with a checkbox, without needing to restart or refresh the app.
I shifted from using simple mutable state to employing ViewModel and StateFlow in Jetpack Compose. This allowed me to observe changes in real-time and ensure the progress bar updated automatically. I also optimized database queries to keep data consistent across app restarts.
With these improvements, the progress bar now updates in real-time, reflecting users' progress as they complete or uncheck tasks. This enhancement significantly boosted the app’s usability and interactivity, adding a gamification element that made tracking daily habits more engaging.
Lessons Learned
Technical Takeaways
Personal Growth
Looking Forward
Through this project reignited my passion for finding solutions and building tools that help people. I plan to add features like push notifications, analytics, user authentication, cloud-based database with real-time data sync and possibly a social component. It’s also inspired me to explore advanced topics in Android development, such as Kotlin coroutines for background processing.
About Me
I’m a digital marketing consultant who decided to dive into software engineering to enhance my skills and take a more hands-on role in managing programming and UI projects. As I prepare to launch my own advertising and communication agency, I wanted to equip myself with the knowledge to effectively oversee development and design. This project reflects my ongoing journey to blend creativity with technology.