An Android digital assistant that can be used as an app launcher! Swyp Launcher is a modern Android assistant application that serves as a launcher to launch apps quickly. The app provides four distinct interaction modes (handwriting, index, keyboard, and voice) optimized for single-handed operation. All UI elements are positioned in the bottom half of the screen for easy thumb access. It's completely free and all four modes run locally without any internet connection.
- Handwriting Mode: Draw letters or gestures to find apps using on-device ML Kit recognition
- Index Mode: Browse apps alphabetically with letter-based grid navigation
- Keyboard Mode: Traditional text search with real-time filtering and calculator support
- Voice Mode: Hands-free app launching with speech recognition
- Usage-Based Ranking: Apps automatically ordered by frequency and recency
- App Shortcuts: Quick access to specific apps by searching pre-defined terms
- Hidden Apps: Hide certain apps from appearing in the main app list
- Customizable UI: Adjust grid size, icon shapes, background blur and sort order
- System Integration: Works as Android's default assistant (swipe from corner or long-press power button)
- 100% Offline: All processing happens on-device
- No Tracking: Zero data collection or analytics
- No Network: No internet permissions required for core functionality
- Open Source: Fully transparent codebase
- Android 14 (API 34) or higher
- Approximately 20MB storage space
- Optional: Microphone permission for voice mode
- Download the latest APK from Releases
- Enable "Install from Unknown Sources" in your device settings
- Install the APK
- Follow the setup wizard
- Clone the repository:
git clone https://github.com/jol333/swyplauncher.git
cd swyplauncher- Build and install:
./gradlew assembleDebug installDebug- Launch the app and follow the setup wizard to:
- Set Swyp Launcher as your default digital assistant
- Grant usage stats permission for smart app ordering
- Configure your preferences
- Gesture: Swipe diagonally from the bottom corners of your screen
- Power Button: Long-press the power button
- App Icon: Long press app icon and select an interaction mode directly
Tap the mode icons or swipe horizontally to switch between handwriting, index, keyboard, and voice modes. Your last-used mode is remembered next time when you open the assistant.
app/src/main/java/com/joyal/swyplauncher/
├── data/ # Repository implementations and data sources
├── di/ # Hilt dependency injection modules
├── domain/ # Business logic, use cases, and models
├── service/ # Android VoiceInteractionService implementations
├── ui/ # Compose screens, ViewModels, and components
└── util/ # Utility classes and extensions
Contributions are welcome! Please read CONTRIBUTING.md for guidelines.
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Test thoroughly on Android 14+
- Submit a pull request
- Add enum entry in
domain/model/AppLanguage.ktwith language code and display names- Use base language codes (e.g.,
zh,pt) to match all regional variants
- Use base language codes (e.g.,
- Add language code to
supportedLanguageCodesinutil/LocaleManager.ktandlocaleFiltersinapp/build.gradle.kts(inandroidResourcesblock) - Create
res/values-{code}/strings.xmlwith translated strings. Usevalues-zhforzh,values-ptforpt, etc. - Add
<locale android:name="{code}"/>tores/xml/locales_config.xml
This project is licensed under the Apache License, Version 2.0 - see the LICENSE file for details.
See PRIVACY_POLICY for our complete privacy policy.
TL;DR: We don't collect, store, or transmit any user data. Everything runs offline on your device.
For issues, questions, or feature requests, please open an issue on GitHub.
- CONTRIBUTING.md - Contribution guidelines
- CHANGELOG.md - Version history
- PRIVACY_POLICY.md - Privacy policy
- LICENSE - Apache License, Version 2.0