A modern, feature-rich mathematics calculator built with Flutter that solves complex mathematical problems with step-by-step explanations.
- Advanced Math Engine: Solve equations, perform calculus, matrix operations, and statistical calculations
- Landscape Mode: Advanced features unlock in landscape orientation
- Simple Mode: Simplified interface for portrait mode or manual toggle
- Step-by-Step Solutions: Detailed explanations for every calculation
- History Tracking: Save and review past calculations
- Modern UI: Material 3 design with dark/light theme support
- Order of operations
- Parentheses grouping
- Constants (π, e)
- Functions: sin, cos, tan, log, sqrt, exp
- Linear equations:
2x + 3 = 7 - Quadratic equations:
x^2 - 5x + 6 = 0 - Polynomial equations:
x^3 - 8 = 0
- Derivatives:
d/dx(x^2) - Definite integrals:
integral(x^2, 0, 1) - Limits:
limit(1/x, x, 0)
- Determinant:
det([1,2;3,4]) - Inverse:
inv([2,1;1,2]) - Linear systems:
solve([[1,2],[3,4]], [5,6])
- Mean:
mean([1,2,3,4,5]) - Median:
median([1,3,5,7,9]) - Sum:
sum([1,2,3,4,5])
- Function definition:
f(x) = x^2 + 2x + 1 - Function evaluation:
f(3) - Function composition:
f(g(x)) = x^2
- Text Input: Type expressions directly
- Calculator Keypad: Use the built-in keypad for easy input
- Example Chips: Tap example chips for quick calculations
- Simple Mode: Basic calculator with essential functions
- Advanced Mode: Full feature set (available in landscape)
- Solve Tab: Main calculator interface
- History Tab: View past calculations
- Settings Tab: Customize theme, precision, and mode
- Android: API 21+ (Android 5.0+)
- Target: Android 15 compatible
- Architecture: ARM64, ARMv7, x86_64
flutter_riverpod: State managementmath_expressions: Mathematical expression parsingequations: Equation solvingflutter_math_fork: LaTeX renderinggoogle_fonts: Typographyshared_preferences: Data persistence
- Flutter 3.19+
- Dart 3.3+
- Android SDK 21+
- Gradle 8.0+
lib/
├── main.dart # Main application entry point
├── pubspec.yaml # Dependencies and project configuration
└── android/ # Android-specific configuration
├── app/
│ ├── build.gradle.kts
│ └── src/main/AndroidManifest.xml
└── build.gradle
- Install Flutter
- Install Android Studio
- Set up Android SDK and emulator
# Clone the repository
git clone https://github.com/aminegames125/matmate.git
cd matmate
# Install dependencies
flutter pub get
# Run the app
flutter run# Build APK
flutter build apk --release
# Build App Bundle (recommended for Play Store)
flutter build appbundle --releaseThe project includes automated CI/CD workflows:
- Triggers: Push to main, Pull Requests
- Actions:
- Code analysis with
flutter analyze - Unit tests with
flutter test - Build APK for Android
- Upload artifacts to GitHub Releases
- Code analysis with
- Triggers: New GitHub Release
- Actions:
- Build signed release APK
- Attach APK to release
- Generate release notes
- System theme (follows device setting)
- Light theme
- Dark theme
- Adjustable decimal precision (0-10 places)
- Real-time preview of precision changes
- Toggle between simple and advanced interfaces
- Automatic mode switching based on orientation
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow Flutter/Dart style guidelines
- Add tests for new features
- Update documentation as needed
- Ensure all linter checks pass
This project is licensed under the MIT License - see the LICENSE file for details.
- math_expressions for mathematical parsing
- equations for equation solving
- flutter_math_fork for LaTeX rendering
- Flutter team for the amazing framework
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: your.email@example.com
MatMate - Making mathematics accessible and beautiful! 🧮✨