Tomo is a desktop timer app, primarily intended for the Pomodoro technique.
- Access app and see current timer progress via system menubar
- Pause, extend or restart timer
- See daily total time for each timer
- Configure multiple timers with dependencies
- Configure completion sound effects
- Realtime sync of timer config, current state and history across multiple devices
Tomo is written in Dart using Flutter. At the moment only MacOS is supported, although it should't be too difficult to add support for other platforms.
Synchronization is implemented using Firebase. To enabled it, you need to configure Firebase first (see below).
- Open
macos/Runner.xcodeproj
in Xcode, selectRunner
target and configure team. - Run
flutter run
from the root directory.
flutter build macos
Build results can be found in macos/build/Release/
.
This is optional step which enables syncing timer config, current state and history between multiple devices.
-
Run
flutterfire configure
-
Answer
y
to? Generated FirebaseOptions file /Users/kaspars/projects/tomox/tomo/lib/firebase_options.dart already exists, do you want to override it?
-
Select
<create a new project>
-
Enter your choosen project ID (at least 6 characters)
-
Select
macos
for? Which platforms should your configuration support (use arrow keys & space to select)?
-
Go to Firebase console > Authentication and enable Google provider.
-
Rerun
flutterfire configure
(this will updateGoogleService-Info.plist
) -
Lookup
REVERSED_CLIENT_ID
fromGoogleService-Info.plist
and add it as a new URL scheme tomacos/Runner/Info.plist
:<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>REVERSED_CLIENT_ID</string> </array> </dict> </array>