This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Alarmee is a Kotlin Multiplatform library for scheduling alarms and notifications on Android and iOS. It consists of two main modules:
alarmee: Core library with local notification support for all platforms (Android, iOS, desktop, etc.)alarmee-push: Extended library adding push notification support via Firebase (mobile-only)
The library uses platform-specific implementations with a common interface, following the expect/actual pattern for multiplatform code.
-
alarmee/: Core module with local notificationscommonMain/: Shared interfaces and modelsandroidMain/: Android-specific implementations using Android notificationsiosMain/: iOS-specific implementations using UserNotifications frameworknonMobileMain/: Non-mobile platform implementations
-
alarmee-push/: Push notification extensioncommonMain/: Common push notification interfacesandroidMain/: Firebase messaging for AndroidiosMain/: APNs integration for iOS
-
sample/composeApp/: Demo application showcasing library usage
AlarmeeService: Main entry point for all targetsMobileAlarmeeService: Mobile-specific service with push supportLocalNotificationService: Handles scheduling and local notificationsPushNotificationService: Handles push notifications (mobile only)
The library requires platform-specific configuration:
AlarmeeAndroidPlatformConfiguration: Android notification channels and iconsAlarmeeIosPlatformConfiguration: iOS-specific settings
# Build all modules
./gradlew build
# Build specific module
./gradlew :alarmee:build
./gradlew :alarmee-push:build
# Check for dependency updates
./gradlew dependencyUpdates
# Generate documentation
./gradlew dokkaHtml# Sync CocoaPods dependencies
./gradlew :alarmee:podGenMacX64
./gradlew :alarmee-push:podGenMacX64# Run Android sample
./gradlew :sample:composeApp:installDebug
# iOS sample must be run through Xcode
open sample/iosApp/iosApp.xcodeproj- Kotlin: 2.2.0
- Compose Multiplatform: 1.8.2
- Android SDK: Min 24, Compile 35
- iOS Deployment Target: 12.0
- Java Compatibility: VERSION_21
buildSrc/src/main/kotlin/ProjectConfiguration.kt: Centralized project configurationgradle/libs.versions.toml: Dependency version catalogsettings.gradle.kts: Module declarations
For push notifications, Firebase configuration is required:
- Android:
google-services.jsonin sample app - iOS:
GoogleService-Info.plistand notification service extension
Library is published to Maven Central under group io.github.tweener with modules:
alarmee: Core libraryalarmee-push: Push notification extension