Skip to content

Repository files navigation

πŸ“… Calendar β€” Android App

A clean, minimal calendar app for Android built entirely with Jetpack Compose and Material 3. No third-party dependencies, no bloat β€” just a fast, native calendar experience.


✨ Features

  • Monthly calendar grid β€” clean 7-column layout with a Saturday-first week start
  • Swipe navigation β€” swipe left/right anywhere on the screen to move between months
  • Animated transitions β€” smooth slide animations when changing months, with correct directional logic
  • Tap to navigate β€” tap the month or year in the header to jump directly via picker dialogs
  • Year picker β€” scrollable grid covering 1991–2050, auto-scrolled to the current year
  • Month picker β€” 3-column grid for quick month selection
  • Today card β€” pinned bottom card showing today's full date; tap it to jump back to the current month
  • Today & selected day indicators β€” today gets an outline ring; selected date gets a filled circle
  • Edge-to-edge UI β€” full-screen layout with no wasted space
  • Material 3 theming β€” follows system color scheme (light/dark mode)

πŸ›  Tech Stack

Layer Technology
Language Kotlin
UI Jetpack Compose
Design system Material 3
Date/time java.time (LocalDate, YearMonth)
Architecture Single-Activity, Composable functions
Min SDK 35 (Android 15)
Target SDK 36

πŸ“ Project Structure

app/src/main/java/com/mrjis/calendar/
β”‚
β”œβ”€β”€ MainActivity.kt          # Entry point; hosts CalendarApp composable
β”‚
└── ui/theme/
    β”œβ”€β”€ Color.kt             # App color palette
    β”œβ”€β”€ Theme.kt             # MaterialTheme setup
    └── Type.kt              # Typography definitions

Key composables inside MainActivity.kt:

  • CalendarApp β€” root composable; manages state (current month, selected date, slide direction)
  • CalendarHeader β€” animated month/year label with tap-to-pick support
  • WeekdayHeader β€” static Sat–Fri day-of-week labels
  • CalendarGrid β€” LazyVerticalGrid rendering all day cells for a given month
  • DayCell β€” individual day tile with selected/today visual states
  • TodayDateCard β€” bottom card displaying today's full date and acting as a reset button
  • YearPickerDialog β€” scrollable year selection dialog
  • MonthPickerDialog β€” 3-column month selection dialog

πŸš€ Getting Started

Prerequisites

  • Android Studio Hedgehog or later
  • Android SDK 35+
  • Kotlin 2.x

Build & Run

git clone https://github.com/MrDeveloperJIS/Calendar-AndroidApp.git
cd Calendar-AndroidApp

Open the project in Android Studio, wait for Gradle sync, then run on a device or emulator running Android 15 (API 35) or higher.


πŸ“± Screenshots

1 2 3 4 5 6 7

πŸ“„ License

This project is open source. See LICENSE for details.

About

A minimal, swipeable Android calendar built with Jetpack Compose and Material 3. Clean monthly view, animated transitions, and tap-to-jump year/month pickers.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages