Friction Timer is a minimal Android self-discipline app that introduces a short delay whenever you open specified apps, helping you resist impulsive usage.
This application helps reduce impulsive app usage by introducing a configurable delay when opening selected apps. It is designed around three core principles:
- Friction: Introduce a configurable delay before the app can be used.
- Minimal UI: Motivational messages and simple buttons—no fancy animations required.
- Customizable: Add any app you want to target, with independent timers and messages.
You can download the latest APK from the Releases page, or build the app yourself by opening the project in Android Studio and selecting Build > Build Bundle(s) / APK(s) > Build APK(s).
-
App Detection:
Uses anAccessibilityServiceto detect when any target app you’ve added is opened in the foreground. -
Overlay & Countdown:
An overlay appears on top of the target app, preventing interaction until the countdown finishes. The overlay includes:- A configurable motivational message
- A disabled "Wait X seconds" button that counts down
- A "Cancel" button to dismiss the overlay
Once the countdown ends, the button changes to "Proceed," allowing the user to interact with the app again.
-
Cooldown & Reappearance:
After proceeding, the overlay will reappear the next time the target app is opened once the configurable cooldown period has elapsed. This ensures ongoing friction without being permanently intrusive. -
Customizable Per App:
Each target app can have its own wait time, cooldown duration, and list of motivational messages. All settings are accessible via the app’s settings screen.
Thanks to digipaws for the inspiration. Their source code served as a reference for the implementation of this app.
This project is distributed under the AGPLv3 License. See the LICENSE file for details.

