Domain Layer
Core business layer independent from USB communication and database details.
- RadiationMeasurement
- DoseStats
- AppSettings
- MeasurementDataSource
SmartDose follows an MVVM architecture based on Clean Architecture principles, optimized for modern Android development with Jetpack Compose. This structure ensures a modular, scalable and high-performance application for real-time dosimetric acquisition.
The application is organized into independent layers to clearly separate business logic, data sources, user interface and utilities.
Core business layer independent from USB communication and database details.
Handles data sources, local persistence and repository mediation.
Responsible for display, navigation and user interaction.
Cross-functional helpers dedicated to safety, alarms and reports.
Data flows from the detector or simulation to the repository, then to the ViewModel and finally to the Compose UI.
The USB detector or simulation mode produces real-time dosimetric measurements.
The repository receives the data, selects the active source and saves the history.
The ViewModel observes data streams and transforms measurements into stable UI state.
The interface automatically redraws values, charts and alerts.
Thanks to the separation between domain, data and UI layers, SmartDose can easily integrate new acquisition modes such as Bluetooth or IoT radiometers.