El desarrollo de apps de salud es el diseño y la ingeniería de aplicaciones móviles que manejan datos clínicos o personales de salud: apps de telemedicina y videoconsulta, plataformas de salud mental y terapia, portales del paciente, monitorización remota y productos de bienestar. Se diferencia del desarrollo de apps corriente en tres cosas concretas: las reglas para tratar los datos las fija la ley y no tu política de privacidad, una caída de conexión ocurre en mitad de la consulta de alguien y no en mitad de un feed, y una parte significativa de tus usuarios está enferma, es mayor o llega a la app a través de tecnología de asistencia.
Flutter encaja en salud porque renderiza su propia interfaz. Un flujo de reserva, un diario de síntomas o una pantalla de consulta se comportan igual en iOS y Android desde una sola base de código, por en torno a un 30-40 % menos que construir el mismo producto dos veces en nativo. Lo que toca la plataforma directamente —Apple HealthKit y Android Health Connect, periféricos Bluetooth, permisos de cámara y micrófono, algunos SDK de vídeo— pasa por platform channels: es trabajo rutinario, pero es trabajo real.
Los productos que construimos
- Telemedicina y videoconsulta: agenda, sala de espera, vídeo y chat en directo, notas de sesión y seguimiento
- Plataformas de salud mental y terapia: elección de especialista, sesiones recurrentes y mensajería entre citas, como en YouMi
- Portales del paciente y apps de acompañamiento clínico: citas, resultados, recetas, documentos y recordatorios sobre un sistema clínico ya existente
- Monitorización remota y gestión de enfermedades crónicas: lecturas de wearables y dispositivos Bluetooth, tendencias, umbrales y avisos al profesional sanitario
- Bienestar, fitness y adherencia: seguimiento de hábitos y de medicación, donde la superficie regulatoria es menor pero la retención es más difícil
- Herramientas para profesionales: apps de turnos y rondas, mensajería segura y captura de datos pensada para una mano y una ventana corta de atención
Quién construye tu app de salud
Dos cosas separan a un equipo capaz de construir una app de salud de otro que solo ha construido apps.
Un producto de telesalud en producción que nos llamaron a rescatar
YouMi es un servicio de consulta psicológica en línea: el paciente elige especialista, reserva y cambia sesiones, y escribe a su psicólogo entre citas. Cuando YouMi LLC acudió a nosotros, la app Flutter ya estaba publicada en ambas tiendas y fallaba justo en aquello para lo que existía: las sesiones se caían, los mensajes del chat no se entregaban y la pila de navegación tenía fugas de memoria suficientes para provocar cierres al cambiar de pantalla.
En dos semanas reconstruimos la capa WebSocket con un ciclo de vida de conexión real —reconexión automática, cola de mensajes durante los cambios de red y manejo correcto de errores—, añadimos seguimiento completo del estado de entrega para que paciente y psicólogo vean cuándo un mensaje se envió, se entregó y se leyó, y reescribimos la arquitectura de navegación sobre las API de enrutamiento modernas de Flutter.
Ese proyecto es la razón por la que en esta página hablamos primero de fiabilidad de sesión. En telesalud la conexión es el producto: una consulta que se cae en el minuto once no es una experiencia degradada, es una cita clínica que no ocurrió, y te cuesta el reembolso, la reprogramación y el paciente.
Tiempo real y mensajería segura, construidas más de una vez
El mismo problema aparece en todo nuestro trabajo. Jepta es una app de comunicación hiperlocal para barrios alemanes con una capa WebSocket detrás de cada chat y canal; Arcana transmite la salida del modelo por server-sent events a una interfaz de chat que sigue fluida con miles de mensajes. Hemos puesto por escrito nuestra postura sobre la criptografía que hay debajo, en lugar de solo afirmarla: ver El cifrado explicado, Cómo funciona realmente el cifrado de extremo a extremo y Tu SSL pinning probablemente no funciona.
Qué exigen de verdad las apps de salud
Seis asuntos aparecen en todo proyecto de salud. Así los tratamos.
Sesiones que sobreviven a una red real
Un paciente entra a la consulta con datos móviles, en un pasillo, pasando de Wi-Fi a LTE a mitad de camino. El vídeo va por WebRTC a través del SDK de un proveedor; el chat, la presencia y el estado de sesión van por WebSocket. Ambos se caerán, y la pregunta de diseño no es cómo evitarlo sino qué pasa después.
Los modos de fallo son concretos, y siempre son los mismos tres: un socket que reconecta pero nunca vuelve a suscribirse, así que la app parece conectada y no recibe nada; mensajes enviados sin conexión que se pierden en lugar de encolarse; y un cliente que sigue mostrando «en sesión» cuando el servidor ya la cerró. Tratamos el estado de entrega como una pieza de primera clase de la interfaz —enviado, entregado, leído, fallido— porque en una conversación clínica «¿le ha llegado?» no es una pregunta cosmética, y un fallo silencioso es peor que uno visible.
Datos del paciente y las reglas que los gobiernan
No tenemos atestación HIPAA ni certificación SOC 2, y cualquier agencia que ofrezca una certificación como argumento de venta en lugar de describir cómo construye te está vendiendo algo. Las obligaciones de HIPAA recaen sobre la entidad cubierta (covered entity) y sus socios comerciales (business associates) —donde HIPAA se aplica, eso suele significar tú, tu proveedor de hosting y tu proveedor de vídeo, con acuerdos de socio comercial (Business Associate Agreements) firmados—. Nuestro trabajo es construir de forma que tu cumplimiento sea alcanzable y no una reescritura:
- Credenciales y tokens en el Keychain de iOS y el Keystore de Android, nunca en preferencias compartidas
- TLS con certificate pinning y un plan de rotación que no deje inservibles los clientes antiguos
- Bloqueo biométrico o por código sobre el acceso a la información sanitaria protegida, no solo al abrir la app
- Almacenamiento local cifrado para todo lo que se cachee en el dispositivo, con política de retención y borrado al cerrar sesión
- Ningún dato de salud en logs, informes de fallos ni analítica: la fuga real más frecuente que encontramos
- El mínimo de datos en el dispositivo que el producto pueda permitirse, porque un dato que nunca se cacheó no se puede extraer de un móvil robado
RGPD añade sus propias restricciones de arquitectura, y los datos de salud son datos de categoría especial con arreglo al artículo 9, así que su tratamiento necesita una condición concreta en la que apoyarse —y, cuando te apoyas en el consentimiento, este debe ser explícito y revocable—. Una solicitud de supresión debe ser una consulta y no un proyecto de arqueología, y dónde residen físicamente los datos pasa a ser una decisión de diseño y no un detalle de hosting. Son decisiones que se toman pronto o se pagan después.
Una cita es un instante, no una cadena de texto
Este es el equivalente sanitario del problema de la aritmética del dinero en fintech. Una cita es un instante en el tiempo que dos personas en dos zonas horarias tienen que acordar. Guárdalo como hora local en texto y acabarás moviendo una consulta una hora cuando un cambio de horario de verano caiga entre la reserva y la sesión, o mostrando a un profesional sanitario en Berlín un hueco que un paciente en Lisboa reservó a una hora completamente distinta.
Guardamos instantes en UTC, conservamos junto a él la zona horaria de origen cuando la regla de visualización lo exige, mostramos en la zona local de cada participante y probamos los casos límite a propósito: una reserva hecha antes de un cambio de hora para una sesión posterior, un paciente que viaja entre ambas, un recordatorio que debe dispararse a la hora local correcta en un dispositivo cuya zona cambió después de programar la notificación. Reprogramar y cancelar es el mismo problema con una máquina de estados encima, y en la gestión de ausencias es donde se acumulan los casos límite.
Datos de salud en el dispositivo
Las lecturas de Apple HealthKit, Android Health Connect y periféricos Bluetooth Low Energy —tensiómetros, básculas, glucómetros, wearables— llegan a una app Flutter por platform channels. Algunos fabricantes publican paquetes Flutter; los que solo existen en nativo necesitan un envoltorio, que es una cantidad de trabajo conocida y no un riesgo, pero tiene que estar en la estimación.
Lo que los equipos subestiman son los permisos y los huecos. Los permisos de salud son granulares, revocables y distintos en cada plataforma; la entrega en segundo plano tiene sus propias reglas; y una sincronización que asume datos continuos mostrará un sinsentido la primera vez que alguien deje el reloj cargando dos días. Qué hace tu app con los datos que faltan es una decisión de producto, y se toma mejor antes de construir el gráfico.
Accesibilidad, que aquí no es opcional
Las apps de salud las usan personas con baja visión, temblor, pérdida auditiva y la carga cognitiva de estar enfermas, además de cuidadores que actúan en nombre de otro. Eso convierte la accesibilidad en un requisito funcional y no en una casilla de cumplimiento: tipografía dinámica que no rompe el diseño al 200 %, contraste que aguanta una sala de espera muy iluminada, áreas táctiles pensadas para una mano insegura, etiquetas de lector de pantalla en cada control con significado y subtítulos en el vídeo.
También es cada vez más una cuestión legal. La Ley Europea de Accesibilidad se aplica a una serie de servicios digitales de consumo en la UE desde junio de 2025, y la contratación pública federal estadounidense conlleva requisitos de la Sección 508 —si un producto concreto entra en su ámbito es una pregunta para tu asesoría jurídica, pero la respuesta de ingeniería es la misma en ambos casos—. Flutter alimenta las API de accesibilidad de ambas plataformas desde el árbol que construye su widget Semantics, así que es alcanzable; simplemente es trabajo que hay que especificar en lugar de descubrirlo al final.
La revisión de las tiendas, más estricta aquí de lo que esperas
Apple revisa las apps médicas bajo la directriz 1.4.1 y puede pedir la metodología y la autorización regulatoria detrás de cualquier afirmación clínica. La política de apps de salud de Google Play tiene sus propias declaraciones, y las funcionalidades de telemedicina y de receta electrónica conllevan requisitos país por país. Nada de esto es motivo para no lanzar, pero sí para cerrar tres cosas antes de construir la funcionalidad: qué afirma la app, quién respalda esa afirmación y en qué mercados se lanza. Los equipos que descubren esto al enviar la app a revisión pierden semanas.
Por qué Flutter para salud
El argumento honesto a favor de Flutter aquí:
| Requisito | Cómo lo aborda Flutter |
|---|---|
| iOS y Android con un solo equipo | Una base de código, en torno a un 30-40 % menos que dos desarrollos nativos |
| Interfaz clínica consistente entre dispositivos | Flutter dibuja sus propios píxeles, así que un flujo de reserva o de consulta es idéntico en ambas plataformas |
| Sesiones de vídeo y chat fiables | Hay SDK de WebRTC y WebSocket; la fiabilidad está en el diseño de la reconexión, no en el framework |
| Primitivas de seguridad de la plataforma | Keychain, Keystore y biometría a través de platform channels |
| HealthKit y Health Connect | Accesibles por platform channels; hay paquetes de la comunidad consolidados para los casos habituales |
| Accesibilidad | Las API de accesibilidad de ambas plataformas se alimentan del árbol Semantics, con tipografía dinámica y contraste resueltos en el sistema de diseño |
El ahorro no es un descuento en ingeniería: es la eliminación del trabajo duplicado. Un flujo de reserva, un flujo de consentimiento, un conjunto de pantallas clínicas, probados dos veces en lugar de construidos dos veces.
Dónde sigue ganando el nativo: si tu producto es esencialmente un envoltorio fino alrededor de una capacidad específica de la plataforma —una experiencia profunda en Apple Watch o una integración con un dispositivo que solo existe como framework de iOS—, la ventaja multiplataforma se encoge y lo nativo puede ser la respuesta honesta. Te lo diremos cuando sea el caso. La página general del servicio es desarrollo de apps con Flutter.
Cómo trabajamos
Proyecto de alcance cerrado. Nos hacemos cargo de la entrega de principio a fin: descubrimiento, arquitectura, construcción y envío a tiendas. Mejor cuando quieres delegar un alcance definido y tener un equipo responsable del resultado. Nuestro proceso de desarrollo describe cómo se ve semana a semana.
Ampliación de equipo. Nuestros ingenieros se incorporan a tu equipo, en tu repositorio y tus sprints, bajo tu gestión. Mejor cuando ya tienes liderazgo técnico y necesitas capacidad en Flutter: mira ampliación de equipo y nuestra guía para contratar desarrolladores Flutter, que es honesta sobre cuándo no contratarnos.
Rescate y estabilización. A veces la app ya existe y está fallando en producción, que es como empezó el proyecto de YouMi. Ese trabajo se acota a partir de los síntomas, no de una lista de funcionalidades.
Sea cual sea la vía, enviamos un presupuesto detallado en un plazo de dos días laborables desde que entendemos los requisitos.
Preguntas frecuentes
Lo que más nos preguntan los equipos que construyen productos de salud y telemedicina en Flutter.
Lee el desglose de costes en Cuánto cuesta desarrollar una app en Flutter en 2026, o mira el caso de YouMi para ver cómo es un producto de telesalud en Flutter ya publicado.
