Building a Pomodoro App in Flutter

I wanted a pomodoro app that doesn't spy on my, charge me, or throw adverts at me, so I built my own...

As someone who struggles with staying focused and managing my time effectively, I was drawn to the Pomodoro technique. But I couldn't find a free, high-quality app that fit my needs, so I set out to create my own.

The Pomodoro technique was developed by Francesco Cirillo in the late 1980s. Named after the tomato-shaped kitchen timer Cirillo used during university, the technique is a time management method that encourages people to work with the time they have, rather than against it. It involves breaking work into 25-minute intervals, separated by short breaks. After four of these "Pomodoros," you take a longer break.

For more information on the history and benefits of the Pomodoro technique, you can visit Francesco Cirillo's official website.

I found this method really helpful for improving my productivity and focus, but the apps I tried either came with unwanted features, like data tracking and adverts, or required a subscription.

So I decided to build my own Pomodoro Timer app, called simply "Pomodoro." I wanted it to have a clean, user-friendly design that would help me stay on track without any distractions. The app allows you to customise the work and break durations, track your completed cycles, and even choose between light and dark themes.

Screenshots

Home Screen Home Screen

Main Timer Screen Main Timer Screen

Cycle History Cycle History

Settings Settings

Landscape Mode Landscape Mode

Dark Mode Dark Mode

Dark Mode Continued Dark Mode Continued

One of the key things for me was making sure the app respected my device's theme settings. I hate when apps force a theme on you, so I made sure mine would automatically switch between light and dark modes based on your device preferences.

The app is also fully responsive, working great on both portrait and landscape orientations, as well as on devices of all sizes – from phones to tablets and folding screens. And I built it with a modular architecture to keep the code clean and make it easy to add new features in the future.

Ultimately, I just wanted a simple, distraction-free Pomodoro timer that would help me be more productive without any strings attached. I hope others who are looking for the same thing will find my app useful. Let me know if you have any feedback!