vitalera SDK v2 — Kotlin Multiplatform para más de 30 dispositivos médicos
El SDK v2 de vitalera es una biblioteca Kotlin Multiplatform (KMP) que proporciona una API unificada para integrar dispositivos médicos en Android e iOS. Reemplaza el SDK v1 monolítico con una arquitectura modular basada en proveedores.
Características principales
- Sistema modular de proveedores: Incluya solo las integraciones de dispositivos que su aplicación necesita. Cada fabricante de dispositivos (Omron, Polar, Lifevit, Beurer, etc.) es un módulo de proveedor independiente.
- Kotlin Multiplatform: Código base compartido entre Android e iOS con implementaciones específicas de plataforma para BLE y criptografía.
- Observaciones tipadas: Más de 30 clases de observaciones tipadas (p. ej.,
BloodPressureObservation,HeartRateObservation) reemplazan el modelo genéricoObservationde v1. - Descubrimiento basado en Flow: El escaneo de dispositivos utiliza Kotlin
Flow(Android) yAsyncSequence(iOS) con tiempos de espera y filtrado integrados. - Autenticación DPoP: Claves de licencia de organización con tokens OAuth2 vinculados con DPoP. Período de gracia offline de 7 días con permisos en caché.
- Modo conectado: Opcionalmente resuelva pacientes y envíe observaciones directamente al backend de vitalera.
- Fallback BLE estándar: Los dispositivos que utilizan perfiles de salud estándar de Bluetooth SIG (Presión Arterial, Frecuencia Cardíaca, etc.) funcionan automáticamente sin un proveedor específico del fabricante.
Arquitectura
Soporte de plataformas
| Plataforma | Versión mínima | Distribución |
|---|---|---|
| Android | API 24 (Android 7.0) | Maven (GitHub Packages) |
| iOS | 14.0 | Swift Package Manager |
Módulos
| Módulo | Artefacto Android | Producto SPM iOS | Descripción |
|---|---|---|---|
| Core | com.vitalera:sdk-core | VitaleraSdkCore | Builder, autenticación, registro, tipos de observación |
| BLE | com.vitalera:sdk-ble | VitaleraSdkBle | Abstracción BLE, perfiles estándar |
| Omron | com.vitalera:provider-omron | VitaleraSdkProviderOmron | Tensiómetro, termómetro |
| Polar | com.vitalera:provider-polar | VitaleraSdkProviderPolar | Frecuencia cardíaca (H10, Verity Sense) |
| Lifevit | com.vitalera:provider-lifevit | VitaleraSdkProviderLifevit | Tensiómetro, pulsioxímetro, báscula |
| Beurer | com.vitalera:provider-beurer | VitaleraSdkProviderBeurer | Tensiómetro, pulsioxímetro |
| Smart Peak Flow | com.vitalera:provider-smart-peak-flow | VitaleraSdkProviderSmartPeakFlow | Flujo espiratorio máximo basado en audio |
| HealthKit | N/A | VitaleraSdkProviderHealthKit | Apple HealthKit (solo iOS) |
| Health Connect | com.vitalera:provider-health-connect | N/A | Android Health Connect |
| Umbrella | com.vitalera:sdk-android | VitaleraSdk | Todos los proveedores incluidos |
Inicio rápido
// 1. Initialize SDK with DPoP auth
val sdk = VitaleraSdk.builder()
.clientId("your-org-license-key")
.addProvider("omron")
.addProvider("polar")
.connectedMode(true)
.build()
// 2. Discover devices
val filter = DiscoveryFilter(
capabilities = setOf(DeviceCapability.BLOOD_PRESSURE)
)
sdk.devices.discover(filter, timeoutMs = 15_000L).collect { descriptor ->
println("Found: ${descriptor.name} (${descriptor.provider})")
}
// 3. Connect and collect typed observations
val device = sdk.devices.createDevice(descriptor)
device.connect()
device.collect().collect { observation ->
when (observation) {
is BloodPressureObservation ->
println("BP: ${observation.systolic}/${observation.diastolic}")
is HeartRateObservation ->
println("HR: ${observation.heartRate} bpm")
}
}
device.disconnect()
// 4. Cleanup
sdk.close()
Primeros pasos
- Android: Consulte la Descripción general de Android, Instalación y guías de Uso.
- iOS: Consulte la Descripción general de iOS, Instalación y guías de Uso.
- Migración desde v1: Consulte la guía de migración en la documentación de referencia del SDK.
- Soporte de dispositivos: Consulte las Guías de integración de dispositivos para instrucciones de configuración por dispositivo.
Soporte
Contacte con sdk@vitalera.com para claves de licencia o soporte técnico.