Skip to main content

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

FeatureDescription
Scroll TrackingConverts raw pixel movement into real-world units (meters) to visualize infinite scrolling.
Smart LimitsEnforces daily limits with a “friction” mechanism that makes snoozing progressively harder.
Behavioral InsightsIdentifies 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

SectionWhat You’ll Find
ArchitectureDependency injection (Hilt), background workers, and service lifecycles
Data LayerDatabase entities, repositories, and sync logic
FeaturesImplementation details for specific screens (Dashboard, Limits, Pledge)
UI & DesignTheming engine, custom visualizations, and component library

Getting Started

  1. Understanding the Core: Start with App Usage Tracking Service to see how data is ingested.
  2. Exploring the Data: Check Database Schema to understand how we store events.
  3. Viewing the UI: See Design System for the visual language and components.

This documentation was auto-generated from the codebase. Last updated: October 2023
Last modified on January 25, 2026