Inspiration
Open Instagram for one message, lose 40 minutes to Reels
Existing blockers kill the whole app — you lose DMs too
Wanted a scalpel, not a hammer
What it does
Detects and blocks Reels/Shorts surfaces in real time
Rest of the app stays fully usable
No root, no VPN, minimal battery cost
How we built it
Kotlin + Jetpack Compose, native Android
AccessibilityService reads the view hierarchy, matches feeds by structure
Consent gate enforced in the nav graph; everything on-device
Challenges we ran into
Repeated Play rejections over AccessibilityService disclosure rules
Fixes were structural, not copy — full-screen disclosure before any prompt
Feed layouts change every release, so detection had to avoid brittle IDs
Accomplishments that we're proud of
Cleared Play review on one of Android's most policed permissions
Surgical blocking instead of all-or-nothing
Shipped a polished Compose app solo
What we learned
Compliance pressure made the product clearer, not just legal
Screen time is an interface problem, not a willpower problem
Store visibility matters as much as the code
What's next for Focus Shield
More surfaces: TikTok, Snapchat, Facebook Reels
Scheduled shields and softer friction modes
Time-reclaimed stats; paid tier for advanced controls, core stays free
Try it out
Log in or sign up for Devpost to join the conversation.