β¬οΈ Download the APK (v1.0-beta) and install it on any Android 6.0+ device β or browse all releases.
It's a debug build, so Cortana runs fully offline (no Gemini key needed). Enable install from unknown sources, open the .apk, and you're back on Windows Phone. π±
Windows Phone was discontinued years ago, but for many of us its Metro design language never stopped feeling like the future: bold typography, flat color, motion with purpose, and a home screen made of Live Tiles that breathed with your day.
WP Launcher is a love letter to that era. It is an Android home-screen launcher that faithfully recreates the Windows Phone / Windows 10 Mobile experience and replaces your Android home screen entirely β the tilting tiles, the flip animations, the jump-list app drawer, the Action Center, the Metro lock screen, even a "Cortana" you can chat with. It is free and open source, because that design deserves to live on.
If you ever missed your Lumia, this is for you.
A full ~53-second narrated walkthrough is included in the repo, in both languages:
- π«π· WP Launcher β PrΓ©sentation (FR)
WP-Launcher-presentation-EN.mp4
- π¬π§ WP Launcher β Presentation (EN)
The animated preview at the top of this page (presentation/demo.gif) gives you a quick taste.
- Dynamic tiles that tilt in 3D under your finger as you press them.
- Tiles flip in 3D to reveal back content β weather, calendar, photos, and more.
- Three tile sizes: SMALL, MEDIUM, and WIDE.
- An edit mode to pin, resize, reorder, and unpin tiles.
- Alphabetical AβZ app list with a jump-list index for fast navigation.
- Built-in search to find any installed app instantly.
- Categorized settings list with authentic WP-style toggles.
- About a dozen accent colors to personalize the whole system.
- Wallpaper and parallax options.
- An in-app chat assistant backed by the Google Gemini API (in French).
- Text-to-speech voice replies.
- Works offline too: with no API key configured, Cortana falls back to canned local answers, so the app is fully usable without a key.
- Pull it down for quick toggles β Wi-Fi, Bluetooth, Airplane mode, Location.
- Metro-style notifications.
- Metro lock screen with a live clock and your next calendar event.
- Auto-detects modest hardware and offers to simplify animations to stay fluid: the 3D tilt becomes a zoom, the 3D flip becomes a fade.
- Also available as a manual toggle in settings.
- Renders app icons as flat white Metro glyphs.
- Smart transparency detection so full-bleed icons keep their original look.
- Registers as the default HOME launcher via Android
RoleManager.ROLE_HOME. - Hides the real Android status bar to avoid duplication with its own WP-style status strip.
| Layer | Technology |
|---|---|
| Language | Kotlin |
| UI | Jetpack Compose + Material 3 |
| Architecture | Single-Activity MVVM |
| Persistence | Room (local database) |
| Async / state | Kotlin Coroutines + StateFlow |
| Networking | Retrofit + Moshi |
| Codegen | KSP |
| AI assistant | Google Gemini API (with offline local fallback) |
- Android Studio (or a standalone Android SDK + an installed
gradle). - An Android device or emulator running Android 6.0 (API 23) or newer.
β οΈ No Gradle wrapper is committed to this repository. Use Android Studio's built-in Gradle integration, or an installedgradlefrom your command line (./gradlewwill only work if a wrapper is added later).
gradle :app:assembleDebugOr simply open the project in Android Studio and run the app configuration.
| Property | Value |
|---|---|
minSdk |
23 |
targetSdk |
36 |
versionName |
1.0 |
The "Cortana" assistant can use the Google Gemini API, but it is completely optional β without a key, Cortana answers using local fallback responses, so the app builds and runs with no configuration.
To enable the online assistant:
- Copy the example env file:
cp .env.example .env
- Set your key in
.env:GEMINI_API_KEY=your_key_here
The key is read from .env at build time and exposed to the app. When it is missing or left as the placeholder, the offline fallback is used automatically.
A single-module Android app:
wp-launcher/
βββ app/ # The launcher application module
β βββ src/main/java/com/example/
β βββ MainActivity # Single Activity, hosts the whole UI
β βββ viewmodel/ # LauncherViewModel β owns all UI state
β βββ repository/ # LauncherRepository β tiles, settings & installed apps
β βββ data/ # Room database, entities, DAO, Gemini service
β βββ ui/
β βββ screens/ # Start, All Apps, Settings, Cortana + overlays
β βββ theme/ # Metro colors & typography
βββ presentation/ # demo.gif and narrated promo videos (FR / EN)
βββ gradle/ # Version catalog (libs.versions.toml)
βββ LICENSE # MIT
The app is built around a single Activity and a single LauncherViewModel that owns all UI state as StateFlows; screen switching is done in-app (no Navigation library). Room persists home tiles and settings, while the repository also queries PackageManager for the installed-app list.
The product is French, so the entire UI is in French. If you are an English speaker, the design and interactions will still feel familiar β Windows Phone is Windows Phone in any language β but the on-screen text is French. The codebase and this README are in English.
- More Live Tile back-content types and richer dynamic updates.
- Additional accent colors and theming options.
- Expanded Cortana capabilities.
- Broader device compatibility and performance tuning.
Suggestions and feature requests are welcome β open an issue!
Contributions are warmly welcomed β whether it is a bug fix, a new tile type, an extra accent color, or just polishing the Metro feel.
- Open an issue to report a bug or suggest a feature.
- Send a pull request with your improvements on GitHub.
- Keep new UI text in French to match the rest of the product.
- Follow the existing code conventions (4-space Kotlin indentation, PascalCase composables/classes).
If you loved Windows Phone, help us keep it alive. π
v1.0-beta β free and open source. No paid services are required (Gemini is optional). Feedback, issues, and pull requests are very welcome.
This project is licensed under the MIT License β see the LICENSE file for details.
Built by Jeremy Fievet (@UnixSafe)
Repository: github.com/UnixSafe/wp-launcher
β If you miss Windows Phone, give this a star!
