A language learning application that helps users learn languages through text stories.
I've decided to implement a PWA instead of native app, thanks to Google. Read the story in our blog or in my LinkedIn.
Feel free to use a new PWA. It's not open-source yet, unfortunately.
๐ฌ๐ง ๐ช๐ธ ๐ฉ๐ช ๐ซ๐ท ๐ฎ๐น ๐ท๐บ ๐บ๐ฆ ๐ต๐ฑ ๐จ๐ฟ ๐ท๐ธ ๐ต๐น ๐ซ๐ฎ ๐ธ๐ช ๐ช๐ช ๐ฑ๐ป ๐ฑ๐น ๐ฑ๐บ
This project is currently a Work in Progress. It's being developed as an MVP with the goal of rapid development.
That's why:
- There are no Compose optimizations performed yet. Will be added after the basic implementation is complete.
- Single module. However, it's being developed keeping in mind future multi-module support, so most of the code is ready to be split into modules by copy-paste.
- No separation to Data/Domain level models. Will add later, for now using models from Data layer everywhere (and sometimes Presentation-level models).
- Commits are that huge.
- No tests. The most important ATM part - backend - is fully covered by tests, but not the client. Will add tests later.
- โ Android (Done)
- ๐ iOS (In progress, broken)
- ๐ Web (In progress, broken)
- Interactive stories for language learning
- Quiz: Answer the story-related questions
- Retelling: Retell the story and get instant feedback with detailed review
- Word and sentence learning tools
- Kotlin Multiplatform - Cross-platform development
- Compose Multiplatform - Cross-platform UI
- Material 3 - UI
- Koin - DI
- Ktor - HTTP client
- Kotlinx Serialization - JSON serialization/deserialization
- Kotlinx Coroutines - Asynchronous programming
- Kotlinx DateTime - Date and time handling
- Firebase Authentication - Authentication service (Google & Apple sign in)
- RevenueCat - IAP
- Appodeal - Ads
- KSoup - HTML parsing (for text highlighting)
Room - Cross-platform SQLite ORM- removed due to incompatibility with the WASM target
This application requires a backend server to run, which is closed-source.
Tests will be added later as this is an MVP focused on rapid development.
You can find the development instructions in this document.
Attribution-NonCommercial-ShareAlike 4.0 International







