Summary
The Commitment Pledge is a psychological tool designed to help users formalize their intention to reduce screen time. Instead of just changing a setting, the user goes through a ceremonial process of signing a digital contract with themselves. This creates a sense of accountability and makes the decision to “scroll less” feel like a binding agreement rather than a casual preference.How It Works
The feature functions as a linear “ceremony” consisting of five distinct stages. It begins with an introduction and ends with a celebratory confirmation.Initiation via Badge
The entry point is the Pledge Badge, a card-like element on the settings screen. This badge features a 3D tilt effect that responds to touch, mimicking a physical credit card or ID. If the user hasn’t signed yet, it displays a “Pledge Now” button.
The Agreement Form
Once started, the user is presented with a formal declaration. They must manually type their Name and Location, and select their Age using a date picker. This manual data entry forces the user to slow down and read the text, which outlines the “Scroll Less Initiative.”
The Biometric Seal
Instead of a simple “Submit” button, the user must press and hold a fingerprint icon. As they hold their finger down:
- The icon fills up with color (transitioning from red to green).
- The phone vibrates with increasing intensity (using ).
- If the user lets go too early, the progress resets, requiring a deliberate, sustained commitment.
The Sealing Ceremony
Upon successful completion of the fingerprint hold, a digital “Rubber Stamp” animation plays. The stamp slams down onto the screen with a heavy impact effect and dust particles, visually marking the document as “OFFICIAL.” Confetti rains down to reward the user.
Data Stored
Currently, the pledge data is stored in memory only for the current session. This means if the user fully closes and restarts the app, the pledge resets.| Field | Type | Description |
|---|---|---|
| isSigned | Boolean | Whether the user has completed the ceremony |
| userName | String | The name entered by the user |
| userPlace | String | The location entered by the user |
| userAge | String | The calculated age of the user |
| signedDate | String | The date the pledge was signed (e.g., “October 24, 2023”) |
Key Components
PledgeScreen
The main controller that manages the 5-stage flow (Intro, Agreement, Fingerprint, Sealing, Signed).
PledgeViewModel
Manages the temporary state of the pledge and calculates the user’s age from the date picker.
InkStampSeal
A custom drawing that renders the “PLEDGED” rubber stamp graphic dynamically.
PledgeBadge
The interactive 3D card on the settings menu that serves as the launchpad and status indicator.