Building My Daily Habit Tracker App: A Digital Marketer's Journey in Software Development

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

  • Android Studio with Java and Kotlin: Developed the app using Android Studio, leveraging Java and Kotlin for both UI and backend functionalities.
  • Room Database: Used Room for local storage, allowing users to track habits and progress without needing internet connectivity.
  • Jetpack Compose: Managed UI components with Jetpack Compose for a smooth and responsive user experience.

Key Features of the App

  1. Habit Creation and Update: Users can create and edit habits, set names and descriptions, and track their daily progress.
  2. Progress Tracking: A dynamic progress bar updates in real time as users complete or undo tasks. The goal is to fill up the bar completely each day, ensuring all daily tasks are finished.
  3. Date and Time Pickers: Users can set specific times for habits, keeping their schedules on track.
  4. Responsive UI: The app is compatible with various screen sizes, looking great on both phones and tablets.


RecyclerView of Habits with checkboxes and progress bar


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

  • State management in Jetpack Compose can be complex, but transitioning to ViewModel with StateFlow was a game-changer.
  • Managing local data with Room and linking it to the UI effectively ensures data consistency across sessions.

Personal Growth

  • Improved my debugging skills and deepened my understanding of Android’s architecture patterns.
  • Working solo taught me to rely on myself for problem-solving while also reaching out to the community when needed. This project encouraged independent learning and balancing multiple responsibilities.

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.

Check out the project on GitHub

Download Dailio v1.0.0 (Release Link)

Visit the landing page

Connect with me on LinkedIn

要查看或添加评论,请登录

社区洞察

其他会员也浏览了