Taxonomy of the Application
To ensure the HMI Torch is safe, robust, and verifiable, we adopted a strict 3-Layer
Taxonomy via Android’s Clean Architecture standards.
Layer 1: The Frozen Core
This is the “Hardware” of the instrument, implemented in pure Kotlin. It contains zero
Android dependencies. It is purely mathematical.
- Contains the reference data (Basal values).
- Contains the evaluation logic (OSI, GHI functions).
- Is 100% unit testable on any JVM.
Analogy: This is the sensor chip inside the device.
Layer 2: The ViewModel (State)
This layer manages the session. It holds the “Investigation Log” and manages the current physiological
state.
- Validates inputs (e.g., prevents negative heart rates).
- Records the “Audit Trail” of user actions.
- Exposes the
AppStateto the UI.
Analogy: This is the circuit board that connects the sensor to the screen.
Layer 3: The UI (Embodiment)
Built with Jetpack Compose, this is the tactile surface. It is designed to be calm,
readable, and responsive.
- Dashboard: High-level system overview.
- Organ Detail: Granular control (Sliders).
- Settings: Profiling and Reset tools.
Analogy: This is the plastic case, the buttons, and the screen.
Why Separation Matters
By strictly separating these layers, we ensure that a UI bug cannot alter the math. The Core is
protected. This allows us to update the look and feel of the app without ever risking the integrity of
the medical definition underneath.
Tech Stack
Language: Kotlin
UI: Jetpack Compose (Material 3)
Architecture: MVVM + Clean Architecture
Build: Gradle (CLI-first)