My Lexicon is an open-source Flutter app for saving and organizing things you want to learn. It is designed as a personal knowledge companion where you can store words, quotes, phrases, idioms, notes, tags, favorites, and collections in one place.
The app follows a feature-first architecture and keeps data locally on the device, making it a lightweight way to build your own learning library without relying on a remote backend.
- Personal Learning Library: Save learning items categorized as words, quotes, phrases, or idioms.
- Rich Entry Attributes: Add definitions, multiple example sentences, personal notes, tags, and custom collections.
- Smart Duplicate Prevention: Real-time inline duplicate term detection warning during entry creation.
- Contextual Actions: Fan-out floating action button on Dashboard and contextual type-specific add buttons in category lists.
- Import & Export Data: Changing device? or keeping backup? You are all set with one tap export and import in settings
- Favorites & Navigation: Mark items as favorites for quick access and configure your default app-launch tab.
- Powerful Search: Search and filter entries dynamically by text, type, tags, collections, and favorites.
- Offline-First & Local: Secure, lightweight local storage on your device with JSON and CSV export/import options.
- Modern Themes: Clean UI with support for light, dark, and system default themes.
- Framework: Flutter
- State Management: Riverpod
- Routing & Navigation: GoRouter
- Local Storage: Hive
- Settings Persistence: Shared Preferences
lib/
├── core/
│ ├── constants/
│ ├── services/
│ ├── theme/
│ └── utils/
├── features/
│ ├── collections/
│ ├── dictionary/
│ ├── home/
│ ├── idioms/
│ ├── phrases/
│ ├── quotes/
│ ├── search/
│ └── settings/
├── models/
├── routes/
├── widgets/
└── main.dart
Ensure you have the following tools installed:
- Flutter SDK (Stable channel)
- For Android builds: Android Studio, Android SDK, and JDK
- For iOS/macOS builds: Xcode and CocoaPods
-
Clone the repository:
git clone https://github.com/aryany9/MyLexicon.git cd MyLexicon -
Get dependencies:
flutter pub get
-
Generate Hive database adapters: This project uses code generation for local database models. Run the build runner to generate the necessary files:
flutter pub run build_runner build --delete-conflicting-outputs
-
Run the application:
flutter run
-
Build production binaries:
- Android APK:
flutter build apk --release
- Android App Bundle:
flutter build appbundle --release
- iOS IPA:
flutter build ipa --release
- Android APK:
Contributions are welcome. If you want to improve the app, please open an issue or submit a pull request.
Please keep changes aligned with the existing feature-first structure and local-first design.
This project is licensed under the Apache License, Version 2.0. See LICENSE for details.