Mindra is a professional meditation and mindfulness application built with Flutter, supporting multi-platform deployment. The app name combines "Mind" (mind/thoughts) with "Mantra" (sacred utterance), incorporating a "Sandra"-style feminine ending to create an intimate yet mystical atmosphere, suggesting meditation and inner dialogue.
- 🎵 Personalized Experience - Support for local and network audio/video content import
- 🧘 Professional Features - Complete meditation session management and progress tracking
- 🎨 Beautiful Interface - Modern Material Design 3 design language
- 🌍 Multi-language Support - Chinese and English bilingual interface
- 📱 Cross-platform - Full platform support for iOS, Android, Web, Desktop (Linux AppImage only)
- Local Import - Import audio/video files from device storage
- Network Import - Add network audio/video resources via URL
- Smart Categorization - Multiple categories including meditation, sleep, focus, relaxation
- Metadata Management - Auto-fetch or manually edit content information
- Multi-media Support - Audio (MP3, AAC, WAV, FLAC, etc.) and video (MP4, MOV, etc.)
- Advanced Playback Controls - Play, pause, fast forward, rewind, loop playback
- Background Playback - Support for audio background playback and screen-off playback
- Playback Memory - Auto-record playback progress, resume from breakpoint
- Natural Sound Effects - Overlay rain, ocean waves, bird songs and other ambient sounds
- Smart Recording - Auto-record meditation session duration and type
- Progress Statistics - Visual display of meditation habits and growth trajectory
- Goal Setting - Set daily/weekly meditation goals
- Achievement System - Badges and achievements to motivate continuous practice
- Timed Reminders - Customize meditation reminder time and frequency
- Sleep Timer - Set playback duration with auto-stop
- Push Notifications - Local notification reminders for meditation time
- Multiple Theme Switching - Dark, light, natural and other themes
- Interface Customization - Adjust card spacing, padding and other UI elements
- Language Switching - Chinese and English interface language switching
- Flutter 3.8.1+ - Cross-platform UI framework
- Dart 3.8.1+ - Programming language
- BLoC Pattern - Business Logic Component pattern
- Provider - Lightweight state management
- HydratedBLoC - State persistence
- SQLite - Local database (mobile)
- Web Storage - Browser storage (web)
- SharedPreferences - User preference settings
- AudioPlayers - Audio playback engine
- VideoPlayer - Video playback support
- AudioService - Background audio service
- Dio - HTTP network requests
- FilePicker - File picker
- YouTubeExplode - Network video parsing
- Material Design 3 - Modern design language
- FlutterSVG - SVG image support
- CachedNetworkImage - Network image caching
- Shimmer - Loading animation effects
| Platform | Status | Notes |
|---|---|---|
| 🤖 Android | ✅ Tested | Android 5.0+ (API 21+) - Tested ✓ |
| 🐧 Linux | ✅ Tested | Ubuntu 22.04+ - Tested ✓ |
| 📱 iOS | ✅ Supported | iOS 12.0+ |
| 🌐 Web | ✅ Supported | Modern browsers |
| 🖥️ Windows | ✅ Supported | Windows 10+ |
| 🍎 macOS | ✅ Supported | macOS 10.14+ |
- Flutter SDK 3.32.5 or higher
- Dart SDK 3.8.1 or higher
- Corresponding platform development environment (Android Studio, Xcode, etc.)
-
Clone Repository
git clone https://github.com/gonewx/mindra.git cd mindra -
Install Dependencies
flutter pub get
-
Run Application
# Run in development mode flutter run # Run on specific platform (tested platforms) flutter run # Android - Tested ✓ flutter run -d linux # Linux - Tested ✓ flutter run -d chrome # Web flutter run -d macos # macOS flutter run -d windows # Windows
-
Build Release Version
# Android APK flutter build apk # iOS flutter build ios # Web flutter build web
# Code analysis
flutter analyze
# Run tests
flutter test
# Code formatting
dart format .
# Clean build cache
flutter cleanmindra/
├── lib/
│ ├── main.dart # App entry point
│ ├── core/ # Core functionality
│ │ ├── audio/ # Audio player
│ │ ├── config/ # App configuration
│ │ ├── constants/ # Constants definition
│ │ ├── database/ # Database management
│ │ ├── di/ # Dependency injection
│ │ ├── localization/ # Internationalization
│ │ ├── router/ # Route management
│ │ ├── services/ # Core services
│ │ ├── theme/ # Theme management
│ │ └── utils/ # Utility classes
│ ├── features/ # Feature modules
│ │ ├── home/ # Home page
│ │ ├── media/ # Media management
│ │ ├── meditation/ # Meditation sessions
│ │ ├── onboarding/ # Onboarding pages
│ │ ├── player/ # Player
│ │ ├── settings/ # Settings
│ │ ├── splash/ # Splash screen
│ │ └── theme/ # Theme settings
│ └── shared/ # Shared components
│ ├── utils/ # Shared utilities
│ └── widgets/ # Shared widgets
├── assets/ # Asset files
│ ├── audio/effects/ # Sound effect files
│ ├── images/ # Image resources
│ └── translations/ # Translation files
├── test/ # Test files
└── docs/ # Documentation
The project adopts Clean Architecture pattern with three layers:
- Presentation Layer - UI interface and state management
- Domain Layer - Business logic and entity definitions
- Data Layer - Data access and external services
Uses BLoC pattern for state management:
- Events - User action events
- States - UI state definitions
- BLoCs - Business logic processing
Uses GetIt + Injectable for dependency injection management, ensuring code testability and maintainability.
The project includes a complete test suite:
# Run all tests
flutter test
# Run specific test
flutter test test/database_test.dart
# Test coverage
flutter test --coverage- Unit Tests - Core business logic testing
- Widget Tests - UI component testing
- Integration Tests - Feature integration testing
- Localization Tests - Multi-language support testing
The project provides complete build and release scripts:
build_all.sh- Cross-platform buildbuild_android.sh- Android buildbuild_ios.sh- iOS buildrelease_android.sh- Android releaserelease_ios.sh- iOS releaseversion_manager.sh- Version management
# Development environment deployment
./scripts/quick_deploy.sh -e dev
# Production environment deployment
./scripts/quick_deploy.sh -e prodFor detailed instructions, see Build Release Guide.
The app supports multiple languages:
- 🇨🇳 Simplified Chinese - Default language
- 🇺🇸 English - English support
- Add translations in
lib/core/localization/app_localizations.dart - Update
supportedLocalesconfiguration - Rebuild the app
Contributions are welcome! Please follow these steps:
- Fork the project
- Create feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add some amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Create Pull Request
- Follow Dart official code style
- Use
dart formatto format code - Pass
flutter analyzestatic analysis - Write corresponding test cases
This project is licensed under the MIT License - see LICENSE file for details.
Thanks to the following open source projects:
- Flutter - Cross-platform UI framework
- BLoC - State management library
- AudioPlayers - Audio playback
- GoRouter - Route management
- 📧 Email: support@mindra.gonewx.com
- 🐛 Issue Feedback: GitHub Issues
- 💬 Discussion: GitHub Discussions
- 📖 Documentation: Project Docs
- Core playback functionality
- Content management system
- Meditation session tracking
- Multi-theme support
- Internationalization support
- Cross-platform support
- Android platform testing verification
- Linux platform testing verification
- Community features
- AI recommendation system
- Cloud sync functionality
- Advanced statistical analysis
- Smart voice assistant
- VR/AR meditation experience
- Professional course content
- Social sharing features
Crafted with care, focused on meditation 🧘♀️
Made with ❤️ by Mindra Team