OpenFocusTimer

Pomodoro timer with categories, reflection, history & statistics.

GPL-3.0 License

Stars
24

OpenFocusTimer

Pomodoro timer with categories, reflection, history & statistics.

Developed fully in the open while streaming live on Twitch, full recordings available here on YouTube.

About

You can find a description of this projects features here.

Getting Started

This project is modularized into many small Swift packages using Point-Free's modularization approach. To work on it, open the OpenFocusTimer/OpenFocusTimer.xcodeproj file (not the Package.swift file at the root). Choose the scheme iOSApp or macOSApp to run the full app.

The advantage of the modularization is that you can also choose any of the other targets such as TimerFeature to only build a smaller package for faster build times when working only on that part of the project.

This app applies Point-Free's The Composable Architecture (TCA). For TCA newcomers, it consists of a View with a related State struct and Action enum which are combined in the so called Store object. All navigation, state updating and side-effects logic is put into a Reducer, which has access to an Environment to make the whole feature easily testable.

Donation

OpenFocusTimer was brought to you by Cihat Gndz while streaming live on Twitch. If you want to thank me and support the development of this project, please make a small donation on PayPal. In case you also like my other open source contributions and articles, please consider motivating me by becoming a sponsor on GitHub or a patron on Patreon.

Thank you very much for any donation, it really helps out a lot!

Contributing

Contributions are welcome. Feel free to open an issue on GitHub with your ideas or implement an idea yourself and post a pull request. If you want to contribute code, please try to follow the same syntax and semantic in your commit messages (see rationale here).

To get the current code of line statistics, install tokei (e.g. via brew install tokei) and run tokei in the project folder. For more detailed Swift-statistics, install Sitrep (e.g. via brew install twostraws/brew/sitrep) and run sitrep in the project folder.

License

This project is released under the GNU General Public License, version 3 (GPL-3.0).

Related Projects