SeduleMe: A Custom Android Launcher
· 2 min read
SeduleMe: A Custom Android Launcher
SeduleMe was my attempt at building an Android launcher — the app that becomes your home screen and app drawer — using Flutter and Dart. It's a smaller project, but a genuinely instructive one, because a launcher forces you to touch parts of the OS that a normal app never sees.
Why I made it
The name is a play on "schedule me." The premise was that the home screen shouldn't just be a grid of icons — it should be the place where your tasks and a couple of everyday utilities live, so the thing you look at most often is actually useful. I wanted my launcher to blend app-launching with lightweight task management instead of keeping them in separate apps.
How it was built
It's a Flutter / Dart app, and the dependencies tell the story of what a launcher actually needs:
installed_appsto enumerate and launch the apps on the device,call_logandbattery_infoto surface real device state,sqflitefor a local SQLite database to store tasks,- and
flutter_screenutilto keep the layout consistent across screen sizes.
The app is built around a few pages: an apps view (the drawer), a home view, and a small English-word feature — a bit of vocabulary practice tucked into the launcher. The task data lives in its own layer backed by SQLite, so your to-dos persist across launches.
What I learned
- A launcher is a different kind of app. Reading the installed-app list, launching other apps, and pulling call logs and battery state meant dealing with permissions and platform APIs I'd normally never touch.
- Persistence deserves a real store. Wiring
sqflitefor tasks was good practice in treating local data seriously instead of dumping everything into shared preferences. - Scope creep is real. The English-word utility was fun, but it also taught me how quickly a "simple launcher" grows extra rooms.
SeduleMe isn't a polished daily driver, but as a hands-on way to understand how Android home screens work under the hood, building one myself taught me far more than reading about it would have.
If you want to look at the code, here it is: SeduleMe on GitHub.