/app-scheduler

A modern Android app scheduler built with Jetpack Compose, MVVM Architecture, and the latest Android development practices. Schedule any installed app to launch automatically at your desired time.

Primary LanguageKotlin

App Scheduler ๐Ÿ“ฑโฐ

A modern Android app scheduler built with Jetpack Compose, MVVM Architecture and the latest Android development practices.
Easily schedule any installed app to launch automatically at your desired time.

โœจ Features

  • ๐ŸŽฏ Schedule Any App โ€“ Launch any installed app at a specific date and time
  • ๐Ÿ“Š Schedule Management โ€“ View, edit, and delete scheduled tasks
  • ๐Ÿ”„ Status Tracking โ€“ Monitor pending, executed, cancelled, and failed schedules
  • ๐Ÿ”” Exact Alarms โ€“ Precise scheduling using Android's AlarmManager
  • ๐Ÿ—„ Local Storage - Room database

๐Ÿ“ฑ Screenshots

            


            



Project Structure

AppScheduler/
โ”œโ”€โ”€ app/
โ”‚   โ”œโ”€โ”€ manifests/
โ”‚   โ”‚   โ””โ”€โ”€ AndroidManifest.xml
โ”‚   โ”œโ”€โ”€ kotlin+java/
โ”‚   โ”‚   โ””โ”€โ”€ com.piashcse.appscheduler/
โ”‚   โ”‚       โ”œโ”€โ”€ data/
โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ local/
โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ model/
โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ repository/
โ”‚   โ”‚       โ”œโ”€โ”€ di/
โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ DatabaseModule.kt
โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ RepositoryModule.kt
โ”‚   โ”‚       โ”œโ”€โ”€ receiver/
โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ AppLaunchReceiver.kt
โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ BootReceiver.kt
โ”‚   โ”‚       โ”œโ”€โ”€ ui/
โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ component/
โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ screen/
โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ theme/
โ”‚   โ”‚       โ”œโ”€โ”€ utils/
โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ AlarmUtils.kt
โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ AppUtils.kt
โ”‚   โ”‚       โ”‚   โ”œโ”€โ”€ Converters.kt
โ”‚   โ”‚       โ”‚   โ””โ”€โ”€ TimeUtils.kt
โ”‚   โ”‚       โ”œโ”€โ”€ Application.kt
โ”‚   โ”‚       โ””โ”€โ”€ MainActivity.kt
โ”‚   โ”‚   โ”œโ”€โ”€ com.piashcse.appscheduler (androidTest)/
โ”‚   โ”‚   โ””โ”€โ”€ com.piashcse.appscheduler (test)/
โ”‚   โ”œโ”€โ”€ java (generated)/
โ”‚   โ”œโ”€โ”€ res/
โ”‚   โ””โ”€โ”€ res (generated)/
โ”œโ”€โ”€ Gradle Scripts/
โ”‚   โ”œโ”€โ”€ build.gradle.kts (Project: App_Scheduler)
โ”‚   โ”œโ”€โ”€ build.gradle.kts (Module: app)
โ”‚   โ”œโ”€โ”€ proguard-rules.pro (ProGuard Rules for ":app")
โ”‚   โ”œโ”€โ”€ gradle.properties (Project Properties)
โ”‚   โ””โ”€โ”€ libs.versions.toml (Version Catalog)
โ””โ”€โ”€ README.md

๐Ÿ–ฅ Main Interface

  • Schedules Tab โ€“ View all your scheduled apps with status badges
  • Apps Tab โ€“ Browse and select from installed apps
  • Statistics โ€“ Monitor your scheduling activity

โš™๏ธ Schedule Management

  • Create Schedule โ€“ Pick date/time for any installed app
  • Status Tracking โ€“ Flow: PENDING โ†’ EXECUTED / CANCELLED / FAILED
  • Quick Actions โ€“ Edit, cancel, or retry schedules

๐Ÿ›  Tech Stack

Core Technologies

  • Language - Kotlin 2.2.10
  • UI Framework - Jetpack Compose (Material 3)
  • Architecture - MVVM
  • Build System - Gradle with Version Catalogs (TOML)

๐Ÿ”ง Libraries & Dependencies

  • Build Tools - KSP (Kotlin Symbol Processing)
  • DI - Hilt for dependency injection
  • Async - Kotlin Coroutines & Flow
  • Scheduling - Android AlarmManager
  • State - StateFlow & Compose State

๐Ÿงช Testing

Unit Tests Coverage

  • ScheduleDao Tests - Database operations (7 tests)
  • MainViewModel Tests- Business logic (11 tests)
  • Repository Tests - Data layer (8 tests)
  • Model Tests - Data validation (3 tests)

๐Ÿ“‹ Usage

Creating a Schedule

  • Navigate to Apps tab
  • Tap the notification icon next to desired app
  • Select date and time in the dialog
  • Tap Schedule to confirm

Managing Schedules

  • View - Check Schedules tab for all scheduled tasks
  • Filter - Use status chips (PENDING, EXECUTED, etc.)
  • Edit - Tap edit icon to modify schedule time
  • Cancel - Tap delete icon to cancel pending schedules
  • Retry - Retry failed schedules (up to 3 attempts)

๐Ÿ‘จ Developed By

Mehedi Hassan Piash

Twitter Medium Linkedin Web Blog