Logo composed of a laptop icon and my name

Focus Week

Mobile App

Project overview

Procrastination is a challenge I’ve faced as a student, and I’ve tried manually tracking my progress with a paper calendar but it became hard to maintain. To solve this problem, I built an app that automates focus-time tracking and records it in an intuitive calendar view, making it easy to visualize weekly and monthly progress. I also saw this as an opportunity to learn Android development through a practical project.

Planning and Research

I started by identifying must-have features for a productivity app such as creating, updating, and displaying past sessions. I then designed the app’s core functionality and added my own touches. For example, the progress circle acts as both a progress bar and a countdown for the week, tracking sessions and showing remaining time. This creates a sense of regret when time slips away, motivating me to refocus. Similarly, for the calendar view, I drew inspiration from GitHub's heatmap, using green shades to represent daily productivity levels (Image 1).

Iterative development

After designing the app, I built a basic version using Kotlin and Android Studio and invited friends to test it. Feedback revealed the activity customization screen was too plain and lacked personalization. In response, I added custom image selection, expanding from simple color selection to visually engaging activity images. This added both visual appeal and functionality, serving as a mental trigger to help users focus on their tasks (Image 2).

Challenge

Implementing the custom image feature caused performance issues when loading many images. To fix this, I integrated Glide, an asynchronous image-loading library, which enhanced responsiveness. This allowed users to swipe through and load images seamlessly, ensuring a smooth and user-friendly experience.

Key takeaways

One key lesson I learned through the process of building and releasing the app was the importance of deploying early, even if the app isn't fully complete. I waited until the app was feature-complete before deploying, which led to multiple issues, including reimplementing some libraries due to incompatibility with the production environment. Had I deployed earlier, I could have identified and resolved these issues sooner, avoiding unnecessary rework.

Three screenshots of my mobile app showing progression circle, focus session, and calendar view
Image 1: Progression circle, focus session, and calendar view.
Two screenshots showing feature improvement
Image 2: Old and new version of custom activity feature