Skip to content

Latest commit

 

History

History
47 lines (33 loc) · 2.33 KB

File metadata and controls

47 lines (33 loc) · 2.33 KB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Project Overview

"Simple Random Reminders" (internal name: Yapp) - an Android app that delivers random reminder notifications at user-configured times. Users create reminders with customizable schedules (days of week, time windows, frequency), colors, and action items. Includes a motivational quotes feature and home screen widget.

Build Commands

./gradlew assembleDebug          # Build debug APK
./gradlew assembleRelease        # Build release APK
./gradlew testDebugUnitTest      # Run unit tests
./gradlew connectedDebugAndroidTest  # Run instrumented tests (requires device/emulator)
./gradlew kspDebugKotlin         # Run KSP annotation processing (Room, Hilt)
./gradlew lint                   # Run Android lint

Architecture

Single-module Kotlin app using Jetpack Compose with MVVM + Repository pattern.

Package structure (com.happypuppy.simplerandomreminders):

  • data/ - Room database (YappDatabase, entities, DAOs), DataStore preferences, repository implementations
  • domain/ - Models (Reminder, ActionItem, Quote, ReminderColor, SortMode) and scheduler interfaces
  • di/ - Hilt dependency injection modules (AppModule, RepositoryModule)
  • ui/ - Compose screens, theme, navigation (YappNavGraph with type-safe routes via YappRoute)
  • notification/ - Alarm scheduling (ReminderAlarmReceiver), boot receiver, notification management
  • widget/ - Glance-based home screen widget
  • util/ - PDF export and JSON backup utilities

Key tech stack: Kotlin, Jetpack Compose, Material 3, Room (KSP), Hilt, DataStore, Navigation Compose (type-safe with kotlinx.serialization), Glance (widget), AlarmManager (scheduling)

Theme: Teal primary / Orange accent color scheme with light/dark/dynamic color support. Theme composable is SimpleRandomRemindersTheme in ui/theme/Theme.kt.

Database: Room database named yapp_database with tables for reminders, action items, and quotes.

Navigation: Type-safe routes defined as sealed interface YappRoute (Home, Editor, Settings, Quotes).

Project Config

  • Package: com.happypuppy.simplerandomreminders
  • Min SDK: 31 (Android 12)
  • Target/Compile SDK: 36
  • Java: 11
  • Version catalog: gradle/libs.versions.toml