Your personal AI-powered German language learning companion.
Download Latest APK »
Report Bug
·
Request Feature
SprachNinja is a modern Android application designed to help you master the German language. It leverages the power of Google's Gemini API to generate an endless stream of personalized practice questions tailored to your skill level. The app is built with a local-first philosophy, meaning all your progress and data are stored securely on your device, ensuring complete privacy.
- 🤖 AI-Powered Learning: Questions are dynamically generated by Google's Gemini API based on your level.
- 📚 Structured Curriculum: Follows the Common European Framework of Reference for Languages (CEFR) from A1 to B2.
- 🎯 Multiple Practice Modes:
- Learn Words: Multiple-choice vocabulary practice.
- Grammar: Fill-in-the-blank exercises for grammar concepts.
- Translate: English-to-German translation challenges.
- 💡 Intelligent Validation: Get smart, contextual feedback on your translations, not just a "correct/wrong" mark.
- 🔒 100% Private & Offline First: All your progress and API key are stored securely and encrypted on your device. No server, no accounts, no data collection.
- 📈 Track Your Progress: A dedicated profile screen shows your stats and lets you manage your learning level.
- ☀️ Tip of the Day: Get a new, interesting tip about German language or culture every day.
- ✨ Modern & Clean UI: Built entirely with Jetpack Compose and Material 3, featuring a sleek dark mode.
This project is built with a modern Android technology stack and follows best practices for creating a scalable and maintainable application.
- Language: Kotlin
- UI: Jetpack Compose with Material 3
- Concurrency: Kotlin Coroutines & Flow
- Architecture: MVVM with Clean Architecture principles
- Networking: Retrofit & Kotlinx Serialization
- Local Storage: Room Database
- Secure Storage: EncryptedSharedPreferences for the API key
- Dependency Injection: A simple, manual DI Container for clarity and control.
The app's architecture is layered to separate concerns and improve testability:
- Presentation Layer: (Jetpack Compose UI, ViewModels) - Responsible for displaying the UI and handling user interaction.
- Domain Layer: (Use Cases) - Contains the core business logic, independent of any framework.
- Data Layer: (Repositories) - Manages data from various sources like the local database (Room) and the remote Gemini API (Retrofit).
SprachNinja uses a "Bring Your Own Key" (BYOK) model. To use the AI features, you need to get a free API key from Google AI Studio.
- Visit Google AI Studio.
- Click "Create API key".
- Copy the generated key.
- Paste it into the Settings screen in the SprachNinja app.
This approach ensures that your usage is private and you have full control over the API calls made from your device.
If you want to build the project yourself, follow these steps:
- Clone the repository:
git clone https://github.com/vpk11/SprachNinja.git
- Open in Android Studio: Open the cloned project in the latest version of Android Studio.
- Build the project: Let Gradle sync and build the project.
- Run the app: Run on an emulator or a physical device. You will need to add your own Gemini API key in the app's settings screen to enable the learning features.
A huge thanks to the people who have contributed to this project:
This project is licensed under the MIT License. See the LICENSE file for details.
Made with ❤️ for language learners.






