docs/phone-setup

Phone Setup

v1.3.0last modified 2026-03-27
01

iOS Installation

iOS requirements
os:iOS 16 or later
device:iPhone 8 or newer
storage:~45 MB
source:App Store
1. Open App Store → search "Ekachit"
2. Tap Get → authenticate with Face ID / Touch ID
3. Open the app → sign in with your account
4. Grant notification permission when prompted
02

Android Installation

Android requirements
os:Android 10 (API 29) or later
storage:~40 MB
source:Google Play Store
1. Open Play Store → search "Ekachit"
2. Tap Install
3. Open the app → sign in
4. Grant notification permission
5. Disable battery optimization (see below)
03

Notification Permission

Notifications are required for core features:

focus_nudges — contextual coaching during sessions
pickup_alerts — Focus Guardian warnings
session_reminders — scheduled focus session prompts
daily_digest — end-of-day summary
streak_celebrations — phone-free streak milestones
// enable if denied initially
iOS: Settings → Ekachit → Notifications → Allow
Android: Settings → Apps → Ekachit → Notifications → Enable
04

Background Activity

Ekachit needs to run in the background to detect phone pickups during focus sessions.

// iOS
Settings → General → Background App Refresh → Ekachit → ON
// Android
Settings → Apps → Ekachit → Battery → Unrestricted
(disables battery optimization for Ekachit)
Without background activity, phone pickup detection will be unreliable. Focus Guardian may miss pickups if the OS kills the app.
battery impact
typical_usage:< 1% battery per day
reason:Ekachit uses no GPS, no Bluetooth, no continuous processing
how_it_works:listens only for app lifecycle events (foreground/background)
05

Focus Guardian

Focus Guardian is the core phone tracking feature. When you pick up your phone during a focus session, it shows you the cost.

// what you see on pickup
📱 Phone Pickup Detected
This pickup costs ~23 minutes of recovery time.
Session pickups: 3 | Total cost: 69 min | Streak broken

The 23-minute recovery cost is based on research from the University of California, Irvine on context-switching and attention residue. Each interruption requires the brain to fully reload working memory for the task at hand.

guardian settings
mode:gentle (badge) | assertive (full-screen) | silent (log only)
cooldown:30 seconds between alerts (prevent spam)
grace_period:5 seconds (ignore accidental pickups)
disable_per_session:toggle before starting a session
06

How Pickup Detection Works

Ekachit detects pickups using a simple mechanism:

// detection logic
trigger: Ekachit app transitions from background → foreground
condition: an active focus session exists
action: record pickup timestamp, calculate cost, show alert
This means Ekachit can only detect when you open the Ekachit app itself. It cannot detect if you open other apps. It has no awareness of your phone usage beyond its own lifecycle.

The assumption: if you picked up your phone and opened Ekachit during a focus session, you were probably checking your phone. This is a proxy signal — intentionally privacy-preserving. No screen time API, no usage stats, no monitoring of other apps.

07

Phone-Free Streaks

Streaks track consecutive focus sessions without phone pickups:

streak rules
increment:each completed session with 0 pickups
break:any session with 1+ pickups resets to 0
display:current streak + personal best in Insights tab
celebrations:nudge at 3, 5, 10, 25, 50 streak milestones
🔥 Streak: 12 sessions
Personal best: 23 sessions (March 15)
Next milestone: 25 sessions → 🏆
08

What IS Tracked

app_foreground_timestamp — when Ekachit opens
app_background_timestamp — when Ekachit closes
session_context — which focus session was active (if any)
pickup_count — number of pickups per session
That's the complete list. Four data points. Nothing else.
09

What is NOT Tracked

which other apps you open or use
screen time or total phone usage
notifications from other apps
browsing history or search queries
location or GPS coordinates
contacts, call logs, or SMS
photos, camera, or microphone
health data or fitness tracking
app install/uninstall events
keyboard input or clipboard