Cross-platform companion app for BreakMate G2. Schedules local notifications that forward to Even Realities G2 glasses via the native Even App's notification forwarding.
The Even Hub SDK (v0.0.9) does not expose any background/notification API for third-party glasses apps. To deliver alerts without keeping the BreakMate G2 app open in the foreground, this companion mobile app uses local notifications that the native Even App forwards to your glasses (when you have "Notification Access for Even App" enabled in your phone settings).
- Expo SDK 54 with React Native 0.81 / React 19
- expo-notifications for local scheduled notifications
- AsyncStorage for persistence
- TypeScript, dark theme
- Master enable/disable switch
- 5 reminder types: eyes, water, movement, posture, stretch
- Per-type interval configuration (1-120 min)
- Snooze duration (1-30 min)
- Notification action buttons: Done / Snooze (v0.2.0)
- Smart scheduling (v0.3.0): respects your calendar — reminders defer 5 min if you're currently in a meeting
- Quiet hours (v0.3.0): pause reminders during a configurable window (e.g. 22:00 → 07:00); suppressed reminders are rescheduled 15 min later
- 3 languages: English, Portuguese, Spanish
- Test reminder button (fires in 2s)
- Permission request flow
- Notifications (required): to fire reminders
- Calendar read (optional, v0.3.0): enables "Respect calendar". iOS uses
NSCalendarsUsageDescription/NSCalendarsFullAccessUsageDescription; Android usesREAD_CALENDAR. BreakMate only reads events — it never writes to your calendar.
cd D:/dev/breakmate-mobile
npm install
npx expo startThen:
- Android: scan the QR code with Expo Go, or
npm run android - iOS: scan the QR code with the Camera app (then open in Expo Go), or
npm run ios(macOS only)
For real notifications (not just Expo Go), you'll need a development build:
npx expo install expo-dev-client
eas build --profile development --platform android
eas build --profile development --platform ios- Enable notifications for BreakMate when prompted
- Open the Even Realities app on your phone
- Go to Settings → Notification Access and enable "BreakMate"
- The G2 glasses will now display BreakMate alerts as overlay notifications, even when no app is open on the glasses
src/
├── state.ts — Types, defaults, todayStr/emptyStats helpers
├── i18n.ts — pt/en/es translations + reminder messages
├── notifications.ts — expo-notifications wrapper, scheduling logic
├── calendar.ts — expo-calendar wrapper, meeting & quiet-hours checks (v0.3.0)
└── storage.ts — AsyncStorage persistence
App.tsx — Main UI (settings, intervals, language, test)