A beautiful, clean, and efficient Pomodoro Timer app built with Flutter following Clean Architecture principles.
- π Complete Pomodoro Timer - Full timer functionality with start/pause/resume/reset β
- β±οΈ Accurate Background Timer - Timestamp-based calculation that works perfectly in background β
- π Scheduled Notifications - Get notified even if app is closed or killed by system β
- βοΈ Skip Session - Skip current session and auto-start next one β
- π Auto Transitions - Seamless flow between work and break sessions β
- π Session Progress - Real-time counter and visual progress indicators β
- π Sound Alerts - Custom audio notifications for session completions β
- π± Push Notifications - Background notifications with robust permission handling β
- π Auto Timezone Detection - Works correctly in any timezone worldwide β
- π§π· Portuguese Interface - Complete localization for Brazilian users β
- βοΈ Advanced Settings - Volume control, sound/notification toggles β
- π Credits System - Proper attribution for sounds and libraries β
- ποΈ Smart Controls - Context-aware controls that adapt to session state β
- πΎ Session Persistence - Resume your session after app restart β
- ποΈ Clean Architecture - Maintainable, testable, and scalable codebase β
- π§ͺ Comprehensive Testing - 57+ automated tests ensuring reliability β
- π± Cross Platform - Works on Android and iOS (build for iOS requires macOS) β
- π‘ Offline First - All data stored locally, works without internet β
- π Modern Dark Theme - Beautiful dark mode with rich colors and perfect contrast β
- π¦ Dependency Injection - GetIt setup with manual configuration β
- ποΈ Domain Layer - Entities, repositories, and use cases β
- πΎ Data Layer - Local storage with SharedPreferences β
- ποΈ State Management - BLoC pattern implementation β
- βοΈ Customizable Settings - Adjust timer durations to your preference
- π Productivity Statistics - Track your focus sessions and streaks
- π Enhanced Dark Theme - Improve dark theme UI/UX design
- π¨ Multiple Themes - Additional color schemes and customization options
- π± iOS Native Interface - Cupertino widgets for authentic iOS experience
- π Adaptive Design - Platform-specific widgets that feel native on each OS
- π΅ Multiple Sound Themes - Different notification sound sets
- π Multiple Languages - Support for additional languages beyond Portuguese
| Settings Screen | Credits Screen |
|---|---|
![]() |
![]() |
| Complete audio and notification controls | Proper attribution for sounds and libraries |
- π― Clean, Distraction-Free Design - Minimalist interface that keeps you focused
- β° Circular Progress Timer - Visual countdown with smooth animations
- π Session Progress Tracking - Dots showing your progress through the 4-session cycle
- ποΈ Smart Control Buttons - Context-aware controls (Start/Pause/Skip/Reset)
- π Seamless Transitions - Automatic flow between work sessions and breaks
- π± Responsive Design - Looks great on phones and tablets
- βοΈ Advanced Settings - Complete audio and notification control panel
- π Credits System - Proper attribution with clickable links and licensing info
- π Notification Testing - Platform-specific notification testing (Android only)
- π΅ Sound Management - Volume control, sound testing, and audio preferences
- Material Design 3 components with modern styling
- Intuitive Color Coding - Different colors for work (red) and break (green/blue) sessions
- Real-time Updates - Session counter and timer update smoothly
- Confirmation Dialogs - Prevents accidental actions with user-friendly prompts
- System Theme Support - Automatically follows system dark/light mode (basic implementation)
- Portuguese Localization - Complete interface in Brazilian Portuguese
- Card-based Layout - Clean, organized settings and credits screens
- Interactive Elements - Sliders, switches, and buttons with smooth animations
- Platform-aware UI - Features adapt based on the platform (Android/iOS)
Our Pomodoro follows the classic Pomodoro Technique with intelligent automation and comprehensive features:
- π Start β Choose work session from floating buttons
- β° Focus β 25-minute timer with progress visualization
- β Complete β Automatic transition to 5-minute break
- β Break β Relax while the break timer counts down
- π Repeat β Automatic cycle progression (4 work sessions + breaks)
- π― Long Break β 15-minute break after completing 4 work sessions
- π Finish β Complete cycle with option to start fresh
- βοΈ Skip Feature: Need to move on? Skip any session instantly with the purple "Skip Session" button!
- βοΈ Settings Access: Tap the gear icon to access comprehensive audio and notification settings
- π Sound Control: Adjust volume, test sounds, and customize audio alerts
- π± Notification Management: Enable/disable notifications with platform-specific testing
- π Credits & Attribution: View complete information about sounds and libraries used
- π§π· Portuguese Interface: Fully localized experience for Brazilian users
Before you begin, ensure you have the following installed:
- Flutter (3.9.2 or later)
- Dart (3.0.0 or later)
- Android Studio or VS Code
- Android SDK (for Android development)
- Xcode (for iOS development - macOS only)
-
Clone the repository
git clone https://github.com/Penfore/our-pomodoro.git cd our-pomodoro -
Install dependencies
flutter pub get
-
Run the app
flutter run
Android (APK)
flutter build apk --releaseAndroid (App Bundle)
flutter build appbundle --releaseiOS (requires macOS)
flutter build ios --releaseπ± Platform Notes:
- Android: Fully tested and APK available in releases
- iOS: Buildable on macOS, but not officially distributed yet
- Cross-platform compatibility: Same codebase works on both platforms
This project follows Clean Architecture principles, ensuring:
- Separation of Concerns - Each layer has a single responsibility
- Dependency Inversion - High-level modules don't depend on low-level modules
- Testability - Easy to unit test business logic
- Maintainability - Easy to modify and extend
lib/
βββ core/ # Shared functionality
β βββ constants/ # App constants
β βββ error/ # Error handling
β βββ network/ # Network utilities
β βββ platform/ # Platform specific code
β βββ theme/ # App theming
β βββ usecase/ # Base use case interface
βββ features/ # Feature modules
β βββ pomodoro/ # Pomodoro feature
β βββ data/ # Data layer (models, repositories, datasources)
β βββ domain/ # Domain layer (entities, repositories, use cases)
β βββ presentation/ # Presentation layer (pages, widgets, BLoC)
βββ injection_container.dart # Dependency injection setup
βββ main.dart # App entry point
- Framework: Flutter 3.35.6
- Language: Dart 3.9.2
- State Management: Flutter BLoC
- Dependency Injection: GetIt
- Local Storage: SharedPreferences
- Functional Programming: Dartz (Either, Option)
- Testing: Flutter Test, BLoC Test, Mocktail
Run all tests:
flutter testRun tests with coverage:
flutter test --coverageView coverage report:
genhtml coverage/lcov.info -o coverage/html
open coverage/html/index.html- Clean Architecture setup
- Dependency injection
- Basic BLoC structure
- Data models and entities
- Timer functionality (start/pause/resume/reset)
- Session transitions and automatic flow
- Skip session functionality
- Session progress tracking and visual indicators
- Circular progress timer with responsive design
- Session state persistence
- Modern, intuitive timer interface
- Material Design 3 components
- Modern dark theme with rich colors and perfect contrast β
- Sound alerts and notifications (v0.3.0)
- Robust notification system (v0.3.1)
- Smooth animations and transitions
- Multiple color themes
- Advanced responsive design
- iOS native interface with Cupertino widgets
- Adaptive design that feels native on each platform
- Platform-specific animations and transitions
- iOS-style navigation and interactions
- Android Material You theming
- Statistics dashboard
- Customizable settings (timer durations)
- Multiple sound themes
- Export data functionality
- Multiple language support
- Background execution and notifications
- iOS App Store distribution
- System integration improvements
- Accessibility features
- Performance optimizations
We love contributions! Please read our Contributing Guide to learn about our development process.
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow Effective Dart guidelines
- Write meaningful commit messages
- Add tests for new features
- Update documentation as needed
- Ensure code passes
flutter analyze
- π Bug reports - Help us identify issues
- π‘ Feature requests - Suggest new functionality
- π§ Code contributions - Implement features or fix bugs
- π Documentation - Improve docs and examples
- π¨ Design - UI/UX improvements
- π Translations - Help localize the app
This project embraces modern development practices and acknowledges the role of AI in today's software development landscape.
- π― AI as a Tool: We recognize that AI tools (like GitHub Copilot, ChatGPT, etc.) are valuable assistants that help developers learn, explore new technologies, and increase productivity
- π₯ Human Review Required: While AI can assist with code generation and problem-solving, all code must be reviewed, understood, and validated by real humans before being merged
- π§ Learning Enhancement: AI tools are excellent for learning new patterns, understanding complex architectures, and exploring different implementation approaches
- π Quality Assurance: Contributors should always understand the code they're submitting, regardless of how it was generated
- β Use AI tools to help with boilerplate code, documentation, or learning new concepts
- β Review and understand all AI-generated code before submitting
- β Test thoroughly - AI-generated code should be tested just like any other code
- β Document your approach - If AI helped solve a complex problem, consider documenting the solution for others
- β Don't blindly copy-paste AI-generated code without understanding it
- β Don't rely solely on AI for architectural decisions or critical business logic
While we embrace AI assistance, we believe in:
- Human creativity in solving complex problems
- Human judgment in making architectural decisions
- Human empathy in understanding user needs
- Human responsibility for code quality and security
This project is built by humans, for humans, with AI as a helpful companion in our development journey.
This project is licensed under the MIT License - see the LICENSE file for details.
- [FΓΊlvio Leo] - Initial work - @Penfore
See also the list of contributors who participated in this project.
- π Issues: GitHub Issues
- π¬ Discussions: GitHub Discussions
- π§ Email: fulvioleo.dev@pm.me
- Inspired by the Pomodoro Technique by Francesco Cirillo
- Built with Flutter by Google
- Icons provided by Flutter Icons
- Thanks to all contributors
Made with β€οΈ and β by developers, for developers
If this project helped you, please consider giving it a β!





