TreeMap
무료 오픈소스 디스크 사용량 시각화 도구로, 사각형 트리맵·중복 파일 탐색·디스크 가득 예측·정리 시 파일을 휴지통으로만 이동한다
Digital Habits Blocker는 산만하고 중독성 앱·사이트를 차단해 집중을 돕는 오픈소스·프라이버시 우선 도구입니다
Digital Habits: Blocker (previously "ReDD Blocker") is a tool for blocking distracting and addictive apps and websites to focus on what matters. Open source, privacy-first, and easy to use.
생산성Kotlin · PythonGitHub @digitalhabits온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Digital Habits: Blocker Android
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Block distracting websites and apps with scheduled or one-off blocks. Stay focused on what matters.
Built by computer scientists at the University of Oxford (Dr Ulrik Lyngs) and the University of Maastricht (Dr Konrad Kollnig), as part of the Reduce Digital Distraction project (digitalhabits.org).README 전문 보기 ↗Block distracting websites and apps with scheduled or one-off blocks. Stay focused on what matters.
Built by computer scientists at the University of Oxford (Dr Ulrik Lyngs) and the University of Maastricht (Dr Konrad Kollnig), as part of the Reduce Digital Distraction project (digitalhabits.org).
flowchart TB
subgraph App["Android App (Kotlin / Jetpack Compose)"]
UI[User Interface]
Data[Room Database + DataStore]
Scheduler[Schedule Manager]
end
subgraph Service["Accessibility Service"]
AppWatcher[App Watcher]
WebWatcher[Browser URL Watcher]
end
subgraph Receiver["Broadcast Receivers"]
Boot[Boot Receiver]
Alarm[Alarm Receiver]
end
subgraph System["Android System"]
Apps[Running Apps]
Browsers[Browser URL Bar]
Home[Home Screen]
end
UI --> Data
UI --> Scheduler
Scheduler --> Alarm
Boot --> Scheduler
Alarm --> Service
AppWatcher -->|detect blocked app| Apps
AppWatcher -->|redirect to| Home
WebWatcher -->|detect blocked URL| Browsers
WebWatcher -->|redirect to digitalhabits.org| Browsers
Digital Habits: Blocker uses Android's Accessibility Service to monitor which app is in the foreground. When a blocked app is detected, the user is immediately returned to the home screen.
| Component | Role |
|---|---|
| Accessibility Service | Detects foreground app changes via onAccessibilityEvent |
| Home redirect | Launches the default launcher intent to return user to home screen |
The Accessibility Service also monitors the URL bar of supported browsers. When a blocked domain is detected, the browser is redirected to digitalhabits.org.
| Browser | Support |
|---|---|
| Firefox | ✅ URL bar monitoring via Accessibility |
| Chrome | ✅ URL bar monitoring via Accessibility |
| Brave | ✅ URL bar monitoring via Accessibility |
| Vanadium | ✅ URL bar monitoring via Accessibility |
| Other Chromium-based | ✅ URL bar monitoring via Accessibility |
Schedules define which apps and websites are blocked and when. Each schedule can be configured with:
Schedules are persisted via Room database and survive app restarts. A boot receiver re-registers alarms on device restart.
| Permission | Purpose |
|---|---|
| Accessibility Service | Required. Detects app launches and browser URL navigation |
| Notifications | Shows alerts when content is blocked |
| Battery Optimization Exemption | Ensures reliable background operation |
| Receive Boot Completed | Restores schedules after device restart |
ReDDBlockAndroid/
├── app/src/main/
│ ├── AndroidManifest.xml # App manifest & permissions
│ └── java/net/kollnig/reddblockandroid/
│ ├── MainActivity.kt # Main entry point
│ ├── ReDDBlockApp.kt # Application class
│ ├── data/ # Room database & data models
│ ├── receiver/ # Boot & alarm broadcast receivers
│ ├── schedule/ # Schedule management logic
│ ├── service/ # Accessibility service
│ ├── ui/ # Jetpack Compose UI screens
│ └── util/ # Utility functions
├── build.gradle # Project-level build config
├── app/build.gradle # App-level build config & dependencies
├── gradle/ # Gradle wrapper
└── settings.gradle # Project settings
# Clone the repository
git clone <repo-url>
cd ReDDBlockAndroid
# Build debug APK
./gradlew assembleDebug
# Install on connected device
./gradlew installDebug
Or open the project in Android Studio and run directly on a connected device or emulator.
# Debug build
./gradlew assembleDebug
# Release build
./gradlew assembleRelease
This project is based on Reef by Pranav Purwar, licensed under the MIT License.
MIT
Made with ♥ by digitalhabits.org