Inspiration
Managing reminders across multiple devices is fragmented. We wanted a seamless cross-platform solution with real-time sync that delivers a truly native experience on both Android and iOS.
What it does
Remind is a cross-platform reminder app with smart categorisation (Overdue, Upcoming, Missed, Snoozed), flexible scheduling with advanced notifications, snooze functionality, real-time multi-device sync, offline support, and multi-provider authentication (Email, Google, Apple).
How we built it
- Kotlin Multiplatform + Compose Multiplatform for ~90% shared code
- Room Database for local persistence, Firebase Firestore for cloud sync
- MVVM + Clean Architecture with Koin for dependency injection
- Platform-specific: AlarmManager/WorkManager (Android), UserNotifications (iOS)
Challenges we ran into
- Precise notifications across platforms with different scheduling APIs
- Device reboot persistence - implemented BroadcastReceiver to reschedule alarms
- Offline-first sync with optimistic updates and exponential backoff retry
- Cross-platform datetime handling with timezone consistency
Accomplishments that we're proud of
- Smart categorisation algorithm with real-time 30-second refresh
- Reliable background sync with conflict resolution
- Seamless offline-to-online data recovery
What we learned
Kotlin Multiplatform is production-ready. Compose Multiplatform accelerates cross-platform UI development. Platform nuances (Doze mode, iOS background limits) require thoughtful native solutions.
What's next for Remind
Widgets, WearOS/Apple Watch support, location-based reminders, collaboration features, and calendar integration.
Built With
- android
- android-studio
- firebase
- firestore
- ios
- jetpackcompose
- kotlin
- room
- swift
Log in or sign up for Devpost to join the conversation.