How HealthBridge works in Unreal Engine
HealthBridge presents one Unreal-native API while selecting a platform provider for the current runtime.
Runtime layers
Section titled “Runtime layers”| Layer | Purpose |
|---|---|
FHealthBridgeService |
Static C++ entry point and active-provider owner |
UHealthBridgeSubsystem |
Game-instance facade for Blueprint and UObject callers |
IHealthBridgeProvider |
Contract implemented by mock, HealthKit, and Health Connect providers |
FHealthBridgeEvents |
Native lifecycle, permission, read, write, route, delete, and heart-rate events |
UHealthBridgeSettings |
Project-owned permissions and mock configuration |
FHealthDataTypeRegistry |
Unified IDs, platform support, permissions, categories, and write support |
Which entry point should you use?
Section titled “Which entry point should you use?”Use UHealthBridgeSubsystem when:
- You are working in Blueprint.
- Your UObject code already has a game instance.
- You want Blueprint-assignable events and dynamic completion delegates.
Use FHealthBridgeService when:
- You are writing native C++ systems.
- A static service fits your architecture.
- You want native
TFunctioncallbacks and delegates.
Both paths use the same active provider and deliver completions on the game thread.
Provider selection
Section titled “Provider selection”- Editor and desktop:
FMockHealthProvider. - iOS device: HealthKit provider.
- Android device: Health Connect provider.
Do not infer device readiness from an editor success. The mock provider proves your integration logic, not mobile permissions, signing, native packaging, or real records.
Data flow
Section titled “Data flow”Blueprint or C++ ↓Subsystem or static service ↓Active platform provider ↓HealthKit, Health Connect, or mock data ↓Game-thread completion and eventsSettings and generated platform configuration
Section titled “Settings and generated platform configuration”The setup wizard and permission editor save structured settings in
DefaultGame.ini. Platform packaging derives permission and type information
from those settings, but Android can request only permissions present in the
final manifest and iOS still requires valid HealthKit signing and usage text.
Optional behavior
Section titled “Optional behavior”Not every provider supports every feature. Gate optional UI with
SupportsCapability and handle failed results for routes, writes, deletes, or
heart-rate monitoring instead of assuming parity.
