Welcome
Welcome to the technical documentation for ScrollLess. This application is designed to help users build healthier digital habits by tracking physical scroll distance, monitoring screen time, and enforcing intelligent usage limits. This documentation covers the app’s architecture, data flow, and feature implementation.Quick Navigation
Tracking Engine
How we calculate screen time and physical scroll distance
Database Schema
Entity relationships, Room configuration, and data flow
Limit Enforcement
The logic behind blocking apps and handling snoozes
Design System
Theming, typography, and custom Compose components
What This App Does
ScrollLess is a native Android application built with Jetpack Compose that goes beyond standard screen time tracking. It uses accessibility services to measure the physical distance a user scrolls (in meters/kilometers) and uses a “Coach” system to analyze behavioral patterns, offering interventions to stop doomscrolling before it becomes a habit.Core Features
| Feature | Description |
|---|---|
| Scroll Tracking | Converts raw pixel movement into real-world units (meters) to visualize infinite scrolling. |
| Smart Limits | Enforces daily limits with a “friction” mechanism that makes snoozing progressively harder. |
| Behavioral Insights | Identifies patterns like “Night Owl” usage, “Doomscrolling,” and “Compulsive Checking.” |
Architecture at a Glance
The application follows a clean architecture pattern, utilizing a single-activity approach with Jetpack Compose. Data flows from system services (Accessibility/UsageStats) into a local Room database, which serves as the single source of truth for the UI.Documentation Structure
| Section | What You’ll Find |
|---|---|
| Architecture | Dependency injection (Hilt), background workers, and service lifecycles |
| Data Layer | Database entities, repositories, and sync logic |
| Features | Implementation details for specific screens (Dashboard, Limits, Pledge) |
| UI & Design | Theming engine, custom visualizations, and component library |
Getting Started
- Understanding the Core: Start with App Usage Tracking Service to see how data is ingested.
- Exploring the Data: Check Database Schema to understand how we store events.
- Viewing the UI: See Design System for the visual language and components.
This documentation was auto-generated from the codebase. Last updated: October 2023