Skip to content

maep13/NullProcrast

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NullProcrast 📵

A "tough but fair" Android application designed to combat social media procrastination through conscious, unbreakable productivity cycles.


✨ Core Concept

NullProcrast is a personal productivity tool for Android, built on the philosophy of a "productivity contract." Instead of a permanent, passive block, the user consciously decides to enter a time-limited, unbreakable focus session.

The workflow is designed to be a deliberate commitment:

  1. Configure: The user selects which apps to limit, a maximum usage time, and a mandatory block time.
  2. Commit: After confirming their choices, a focus cycle begins.
  3. Enforce: During the cycle, the app becomes a Device Administrator, preventing it from being uninstalled or force-stopped. If the usage limit is reached, the app blocks access by repeatedly sending the user to the home screen.
  4. Release: Once the usage and block times have fully elapsed, the app automatically revokes its own Device Administrator privileges, returning to a normal state where it can be uninstalled.

🛠️ Architecture & Technologies

This project was built from the ground up following modern Android development best practices.

  • Language: Kotlin
  • User Interface: Jetpack Compose for a fully declarative and reactive UI.
  • Core Architecture:
    • MVVM (Model-View-ViewModel): For a clean separation of concerns between the UI and business logic.
    • Foreground Service: For persistent, reliable background monitoring of app usage.
    • Device Admin API: To implement the "unbreakable" functionality during a focus cycle.
  • Jetpack Components:
    • ViewModel: To manage UI-related data in a lifecycle-conscious way.
    • DataStore: For modern, asynchronous persistence of user settings.
  • Asynchronicity: Kotlin Coroutines are used extensively to handle all background tasks, from data storage to the monitoring service, ensuring a smooth and non-blocking user experience.

🚀 Getting Started

  1. Clone the repository:
    git clone [https://github.com/maep13/NullProcrast.git](https://github.com/maep13/NullProcrast.git)
  2. Open the project in the latest version of Android Studio.
  3. Sync the project with Gradle.
  4. Run the application on an emulator or a physical device.

Note: For full functionality, the application requires several special permissions to be granted by the user (Device Administrator, Usage Stats Access, Overlay, and Notifications). The app is designed to guide the user through this setup process.

About

Android app to combat social media procrastination.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages