A simple android calculator created in collaboration with the UI design of Andrea Chiara De Santis and the power of the EvalEx library created by Udo Klimaschewski
- Made in Kotlin
- Designed Using Jetpack Compose
- App has an Adaptive Launcher Icon
- Uses StateFlow for UI state and SharedFlow for one-off events
- Dependency injection via Hilt
- Calculation history persisted with DataStore
- History panel with recall and clear actions
sequenceDiagram
participant UI as Compose UI
participant VM as CalculatorViewModel
participant Engine as CalculatorEngine
participant History as HistoryRepository
UI->>VM: onAction(CalculatorAction)
VM->>Engine: evaluate(...) / toggleLastOperandSign(...)
Engine-->>VM: EvaluationResult / updated expression
VM->>History: addHistory(...)
VM-->>UI: uiState (StateFlow)
VM-->>UI: invalidExpressionEvents (SharedFlow)
See NOTICE for third-party attribution and license details.
