Historias luis.dev
Me llego un requerimiento donde una aplicacion para un hospital requiere que los datos de salud que recaba el sistema operativo mobil los pueda leer esta app, los datos como: la cantidad de pasos, ritmo cardiaco, presion arterial, etc.
Por su puesto para esto ya tenia de referencia que en el sistema operativo IOS existe una funcionalidad llamada Health/Salud propia del sistema operativo, me eche un clavado sobre la documentacion de ios y menciona que toda la informacion de salud registrada en un telefono ios tiene que ser almacenada por esta dependencia, una practiva que me parece que tiene un beneficio mayor, asi deberia de ser con todo, de esta manera cualquier dispositivo de cualquier marca que use ios ingresara los datos de salud usando la api de HealtKit, esto facilita a cualquier otra aplciacion tomar esos datos para leerlos o escribirlos y que otra app tambien los pueda usar.
Hasta el momento sonaba facil, usar el sdk de healthkit es facil ya que su documentacion es casi perfecta por todo el soporte que hay detras, pero se el proyecto tenia un grado mas de complejidad, que es el uso del framwork ionic; Como se sabe este framwork no usa lenguaje Swift, entonces ahi tuvo que realizar una segunda investigacion, que es poder impleentar codigo nativo de iOS sobre ionic, se encontro que ionic ofrece capacitor, capacitor nos permite crear un plugin para ionic y la ventaja es que propociona la herramienta para crear una version de Android y una version de iOS, por lo que ahora lo complejo seria implementar el SDK de HealthKit en la arquitectura de un plugin y no es la de una app nativa para iOS.
Por su puesto se penso en que no hace falta inventar la rueda, por lo que encontre en un repositorio el siguiente plugin: (https://github.com/perfood/capacitor-healthkit) tenia una buena cantidad de funcionalidades que requeria mi aplicacion, pero aun asi le hacia falta, por lo que siguiente la impplentacion que hico perfood realize un fork del proyecto en la siguiente liga:
Sobre el repositorio orginal realize aportes en la sección de issues como los siguientes:
Donde comentaba como realizar el uso de los permisos sobre el plugin.