Fluenta - Language Learning & Quiz Flutter UI Kit
Fluenta is a Flutter UI kit for a language-learning app with a trivia quiz, for iOS and Android. It has 87 screens and states: onboarding with a placement test, a learning path, lessons, practice, a quiz, a game layer, an AI tutor screen, profile and settings. Everything runs on built-in sample courses and mock data, so every screen works before you connect a backend.
Try it in your browser: https://demo.oncombalado.net/fluenta/
Lessons are built from 11 exercise types: multiple choice, image choice, true or false, fill in the blank, word bank, matching pairs, translate, listening, speaking, flashcard and timed question. Each exercise is a few lines of JSON. Each type checks its own answers, can accept a typed answer with a missing accent or a typo (set per course) and says so, shows the correct answer with an explanation, and has screen reader labels. A lesson has three attempts and a combo multiplier, and a wrongly answered exercise comes back at the end. A new exercise type needs a model class, a parser entry and a view, and CONTENT_FORMAT.md walks through all three.
Courses, units, lessons, grammar tips, words, stories, the placement test and the quiz questions are JSON files, documented field by field in CONTENT_FORMAT.md. Six sample courses are included: Spanish with four playable units, 144 words and four stories, and a short first unit each in Japanese, Arabic, French, Hindi and Ukrainian, so Latin, Japanese, Arabic, Devanagari and Cyrillic text all appear in the app. Flashcards are scheduled by a spaced-repetition scheduler from the SM-2 family, written in plain Dart and unit-tested.
Three theme packs change the colours, display font, game words and drawings: Summit climb (metres, camps and rope teams), Building blocks (blocks, buildings and build-offs) and Astronauts (kilometres, worlds and fleets). Each comes in light and dark, the learner can switch packs at runtime, and you can remove one by deleting its folder and one registry line. The game layer has daily quests, a weekly challenge, a goal shared with a friend, streaks with rest days, leagues, 24 achievements, a shop and a weekly recap, with targets and rewards kept in JSON.
The trivia quiz is a separate mode built on the timed question type: four categories with 80 questions, a choice of difficulty and length, three lifelines (50:50, skip and extra time), a daily challenge that gives everyone the same five questions, and duels with friends against mock opponents.
Screens read data through seven repository interfaces with Riverpod providers. The mock implementations are bound in one file; replace them with classes that call your API and no screen needs to change. Audio playback, speech recognition and the AI tutor are stand-in services behind interfaces, marked "Mock" in the app until you connect real ones. English and Arabic are included (649 strings each) with a full right-to-left layout, and data screens have loading, empty, error and offline states.
Not included: a backend, audio files, a text-to-speech or speech recognition engine, an AI model, in-app purchases (the paywall and subscription screens are UI on mock plans), or push notifications. Leagues, friends and duels are sample data.
What's included
- Flutter project for iOS and Android: 87 screens and states, with an exercise gallery, a screen index and a design system gallery inside the app
- Exercise engine: 11 types, answer checking with accent and typo tolerance, lesson rules for attempts, combos and repeats
- Six sample courses: 52 lesson files with 558 exercises, grammar tips, 144 Spanish words, 4 stories and a placement test
- Trivia quiz: 4 categories, 80 questions, lifelines, a daily challenge and duels
- Spaced-repetition flashcards with decks, a My words deck and a five-day forecast
- Game layer: daily quests, weekly challenge, friend goal, streaks and rest days, leagues, 24 achievements, shop and weekly recap
- Three theme packs (Summit climb, Building blocks, Astronauts), each in light and dark, with their own drawings and game words
- AI tutor chat and an Explain my mistake screen on a mock service
- Paywall and subscription screens (UI only, mock plans)
- Seven repository interfaces with mock data, and stand-in audio and speech services
- English and Arabic (649 strings each) with right-to-left layout
- 286 unit and widget tests, including every screen in each theme pack, light and dark, and in Arabic
- Android release signing set up (add your key.properties)
- CONTENT_FORMAT.md for every content file, and HTML documentation with setup, Android and iOS release steps, rebranding and connecting an API
Requirements: Flutter 3.44 or later (Dart 3.12). Xcode 16 or later for iOS (deployment target iOS 13). Android Studio with an Android SDK for Android. Packages: flutter_riverpod, go_router, flutter_svg, intl. No API keys or accounts are needed to run the app.
License: one developer may use the kit in unlimited end products (apps for themselves or for clients). The kit's source code and design may not be resold, shared or published as a template or kit.