Focusy is a hardcore, single-purpose productivity app designed to force deep work by actively locking down your phone and blocking access to highly distracting apps.
Unlike typical productivity apps that rely purely on willpower or soft timers, Focusy leverages native Android system-level APIs to physically prevent you from leaving the app or launching distractions while your focus timer is active.
- One-Tap Focus Mode: A completely simplified, distraction-free UI. Set a timer and hit "START FOCUS."
- Screen Pinning (App Pinning): Once activated, Focusy natively calls Android's
startLockTask(), locking the phone screen directly to the Focusy app. You cannot leave the app until the timer stops or you explicitly choose to stop it. - Aggressive Distraction Blocking: Uses an Android
AccessibilityServicerunning silently in the background. Even if you somehow bypass the App Pinning, attempting to launch specific distracting apps (like Instagram, TikTok, YouTube) will result in Focusy immediately kicking you back to the home screen.
Focusy is built by combining beautiful, reactive UI with low-level Android native code.
- Frontend / UI: Flutter & Dart
- Native Android Communication: MethodChannels (
io.flutter.plugin.common.MethodChannel) - Native Android Logic: Kotlin
- System APIs Used:
AccessibilityService(Listens totypeWindowStateChangedto detect when banned apps open)Activity.startLockTask()/stopLockTask()(App Pinning)
Because Focusy uses aggressive, system-level Android permissions to control the device, you must grant it specific rights the very first time you install it.
Connect your physical Android device and run:
flutter runBefore pressing "Start Focus" in the app, you need to allow it to monitor your screen.
- Open your Android phone's Settings.
- Go to Accessibility.
- Go to Installed apps (or "Downloaded apps").
- Find focusy in the list.
- Toggle it to ON.
(Note: Without this, the background distraction blocker will silently fail).
Open the Focusy app and click START FOCUS. You will immediately notice two things happen:
- Android will show a system dialog asking if you want to Pin this app. Tap "Got it" or "Yes". The phone is now locked to Focusy.
- The
AccessibilityServicewakes up.
If you hit STOP EARLY, Focusy will gracefully unpin itself and turn off the background blocker.
For the sake of simplicity, the initial version of Focusy has a hardcoded set of distracting apps that it looks for when active:
- Instagram (
com.instagram.android) - TikTok (
com.zhiliaoapp.musically) - YouTube (
com.google.android.youtube)
(In future updates, this list can be dynamically populated from the Flutter UI via the updateBlockedApps MethodChannel).