A full-featured calculator for students, engineers, and developers.
Nine calculation modes · Live currency rates · 160 currencies · 35 passing tests · No ads, no tracking
Because the ones I tried forced me into five different apps: one for matrices, one for unit conversion, one for currency, one for programmer math, and something else for calculus. CalcPro puts all of it in a single, fast, offline-first app — with a parser I wrote from scratch instead of string-punting to eval.
| Mode | What it handles |
|---|---|
| Standard | Arithmetic, percent, memory (MC/M+/M−/MR), undo/redo, share as image |
| Scientific | Trig (deg/rad), inverses, hyperbolics, logs, roots, nPr/nCr, factorial, constants |
| Calculus | Numerical derivatives, integrals (Simpson's rule), limits, sums, products, Taylor series, ODEs |
| Matrix | Visual editor — transpose, determinant, inverse, trace, rank, eigenvalues, solve Ax=b |
| Complex | Full complex arithmetic — conjugate, modulus, argument, re/im, exp, ln, trig |
| Statistics | Descriptive stats, regression, normal/binomial/Poisson/t/χ² distributions |
| Programmer | BIN/OCT/DEC/HEX, bitwise ops, shifts, complements, popcount, CLZ |
| Unit Converter | 12 categories, ~100 units, physical constants |
| Currency | Live rates, 160+ currencies with official names and countries, search, swap |
- Custom expression engine — lexer → recursive-descent parser → AST → visitor evaluator. Full operator precedence, functions, constants, variables.
- Live preview — results update as you type, before you press
=. - History — 500 entries persisted locally, searchable, shareable.
- Themes — Dark, Light, AMOLED, plus a high-contrast accessibility mode.
- Haptics — toggleable in Settings.
- Precision control — configurable decimal places.
- Undo/Redo — 50 steps deep.
- Share — export results as text or PNG image.
lib/
├── core/ enums, theme tokens, share-image utility
├── domain/
│ ├── parser/ lexer + recursive-descent parser
│ ├── ast/ AST node definitions
│ ├── evaluator/ visitor-pattern evaluator
│ └── functions/ calculus, complex, matrix, programmer, stats
├── l10n/ localization scaffold (9 languages)
└── presentation/
├── bloc/ CalculatorCubit, HistoryCubit (flutter_bloc)
├── screens/ calculator, history, settings, converters, editors
└── widgets/ display + 7 specialized keypads
Stack: Flutter · flutter_bloc · shared_preferences · http · share_plus
git clone https://github.com/CR3-Architect/CalcPro.git
cd CalcPro
flutter pub getDevelopment
flutter run # hot-reload on connected device
flutter test # 35 testsRelease (small APK)
flutter build apk --release --split-per-abi --tree-shake-icons
# → build/app/outputs/flutter-apk/app-arm64-v8a-release.apk (~18 MB)Install via ADB
adb install -r build/app/outputs/flutter-apk/app-arm64-v8a-release.apk
adb shell am start -n com.calcpro.calcpro_studio/.MainActivity| Build | Size |
|---|---|
| Debug (all ABIs) | 152 MB |
| Release arm64 | 18.2 MB |
| Release armeabi-v7a | 15.9 MB |
Release builds use R8 shrinking, resource shrinking, icon tree-shaking, and per-ABI splits. The google_fonts runtime downloader was removed in v2.1.0 in favor of system fonts.
flutter test35 tests covering the lexer, parser, evaluator, calculus functions, and programmer operations.
- 2D function graphing
- Equation solver (systems, polynomial roots)
- Home screen widget (Android)
- CSV import/export for statistics
- Offline currency cache
- Custom theme builder
- Wear OS + tablet layouts
MIT — use it, modify it, ship it. Keep the copyright notice.
Built with Flutter · © 2026 Atiqullah