UNPKG

react-native-healthkit-bridge

Version:

A comprehensive React Native bridge for Apple HealthKit with TypeScript support, advanced authorization, and flexible data queries

445 lines (347 loc) 18.3 kB
# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/lang/en/). ## [1.15.3] - 2025-07-21 ### Fixed - **iOS Authorization**: Use `[NSSet set]` instead of `nil` for empty authorization sets - **Property Not Configurable**: Resolve error by following Apple's recommended approach - **Read-Only Authorization**: Fix method to properly request read-only permissions - **Write-Only Authorization**: Fix method to properly request write-only permissions ### Technical - **Native Implementation**: Updated both authorization methods to use empty NSSet instead of nil - **iOS Compatibility**: Follow Apple's HealthKit documentation for proper authorization requests ## [1.15.2] - 2025-07-21 ### Added - **iOS Authorization Diagnosis**: New `diagnoseAuthorizationRequirements` method to detect iOS HealthKit limitations - **Automatic Fallback Mechanism**: When read-only authorization fails, automatically tries with minimal write permissions - **Diagnostic Component**: Added diagnostic button in app demo to test authorization requirements - **Enhanced Error Detection**: Better detection of iOS HealthKit inconsistencies ### Changed - **Read-Only Authorization**: Now includes automatic fallback for iOS limitations - **Error Handling**: Improved error messages and logging for authorization failures - **App Demo**: Added diagnostic functionality to help developers understand iOS limitations ### Fixed - **iOS Compatibility**: Automatic handling of cases where iOS requires write permission for read access - **Authorization Flow**: More robust authorization process that adapts to iOS limitations ### Technical - **Native Implementation**: Added `diagnoseAuthorizationRequirements` method in Objective-C++ bridge - **Provider Updates**: Updated `NativeProvider` and `MockProvider` with diagnostic method - **Bridge Integration**: Added diagnostic method to `HealthKitBridge` class - **Interface Updates**: Extended `HealthKitProvider` interface with diagnostic capabilities ## [1.15.1] - 2025-07-21 ### Added - **Write-Only Authorization Method**: New `requestWriteOnlyAuthorization` method for requesting write-only permissions only - **Specific Authorization Hooks**: New `requestReadOnlyAuthorization` and `requestWriteOnlyAuthorization` methods in the hook - **Responsibility Separation**: Each authorization method now has a single, clear responsibility ### Changed - **Native Implementation**: Updated to use `nil` instead of empty sets for better iOS compatibility - **App Demo**: Updated to demonstrate all three authorization methods (general, read-only, write-only) ### Fixed - **iOS Compatibility**: Fixed "Property is not configurable" error by using `nil` for empty permission sets - **Method Consistency**: Ensured all authorization methods follow the same pattern and return types ### Technical - **Native Implementation**: Added `requestWriteOnlyAuthorization` method in Objective-C++ bridge - **Provider Updates**: Updated `NativeProvider` and `MockProvider` with write-only method - **Hook Integration**: Added specific authorization methods to `useHealthKitAuthorization` - **Interface Updates**: Extended `HealthKitProvider` interface with new methods ## [1.15.0] - 2025-07-21 ### Added - **Read-Only Authorization Method**: New `requestReadOnlyAuthorization` method for requesting read-only permissions only - **Write-Only Authorization Method**: New `requestWriteOnlyAuthorization` method for requesting write-only permissions only - **Individual Permission Control**: Separate read and write permissions to avoid requiring write access for read operations - **Enhanced Type Safety**: Improved type consistency across all methods - **Specific Authorization Hooks**: New `requestReadOnlyAuthorization` and `requestWriteOnlyAuthorization` methods in the hook ### Changed - **Authorization Flow**: Hook now uses `requestReadOnlyAuthorization` by default for better user experience - **Data Return Types**: All quantity methods now return `HealthKitSample[]` instead of `number[]` for consistency - **Type Definitions**: Updated `HealthKitProvider` interface for better type safety - **Native Implementation**: Updated to use `nil` instead of empty sets for better iOS compatibility ### Fixed - **Authorization Issue**: Resolved problem where write permissions were required for read operations - **Type Inconsistencies**: Fixed type mismatches between interface and implementation - **Data Conversion**: Proper conversion from native number arrays to HealthKitSample objects - **iOS Compatibility**: Fixed "Property is not configurable" error by using `nil` for empty permission sets ### Technical - **Native Implementation**: Added `requestReadOnlyAuthorization` and `requestWriteOnlyAuthorization` methods in Objective-C++ bridge - **Provider Updates**: Updated `NativeProvider` and `MockProvider` with new methods - **Hook Integration**: Modified `useHealthKitAuthorization` to include specific authorization methods - **Type Safety**: Ensured all methods return consistent types across the library - **Responsibility Separation**: Each authorization method now has a single, clear responsibility ## [1.14.1] - 2025-07-21 ### Fixed - **Critical Fix**: Fixed `requestSelectiveAuthorization` to use `undefined` instead of empty array `[]` for `writeTypes` - **Authorization Issue**: Resolved problem where empty array for writing caused authorization inconsistencies - **Read-Only Authorization**: Now works correctly for requesting read-only permissions only ### Technical - Improved authorization logic for cases where only reading is needed - Fixed `writeTypes` parameter type to accept `undefined` when writing is not needed ## [1.14.0] - 2025-07-21 ### Added - **Comprehensive Debug Logs for Authorization Issue**: Adicionados logs extensivos para diagnosticar problema de autorização - **Critical Bug Fixes**: Corrigido loop infinito causado por múltiplas instâncias de HealthKitBridge - **Enhanced Error Diagnostics**: Melhorado sistema de diagnóstico de erros com logs detalhados - **Technical Improvements**: Otimizações de performance e estabilidade ### Changed - **Debug Logging**: Adicionados logs em `HealthKitBridge.mm` para rastrear: - Inicialização do HealthKitBridge - Estado do app (Active/Inactive/Background) - Processamento de tipos de dados - Detalhes de exceções durante autorização - **Hook Logging**: Adicionados logs em `useHealthKitAuthorization.ts` para: - Rastrear execução de métodos de autorização - Monitorar criação de instâncias do bridge - Logar resultados de verificações de permissão - **App Logging**: Adicionados logs em componentes do app demo para: - Rastrear solicitações de autorização - Monitorar resultados de verificações - Debug de tipos autorizados ### Fixed - **Infinite Loop**: Corrigido problema onde múltiplas instâncias de HealthKitBridge causavam loop infinito - **Bridge Instantiation**: Corrigido uso incorreto de `new HealthKitBridge()` em métodos internos - **Performance**: Removidos logs excessivos que causavam degradação de performance - **Memory Leaks**: Corrigido vazamento de memória causado por instâncias múltiplas ### Technical - **Singleton Pattern**: Implementado padrão singleton para HealthKitBridge interno - **Error Handling**: Melhorado tratamento de erros com logs detalhados - **Thread Safety**: Garantida execução de operações críticas na main thread - **Cache Management**: Otimizado sistema de cache para evitar operações desnecessárias ## [1.13.0] - 2025-07-21 ### Added - **Enhanced useHealthKitAuthorization Hook**: Melhorias significativas no hook oficial - **Critical App Demo Fixes**: Correções importantes no app de demonstração - **Documentation Updates**: Atualizações abrangentes na documentação ### Changed - **Authorization Flow**: Simplificado fluxo de autorização para melhor usabilidade - **Error Handling**: Melhorado tratamento de erros com mensagens mais claras - **Performance**: Otimizações de performance em operações de autorização ### Fixed - **App Demo Issues**: Corrigidos problemas de roteamento e navegação - **Authorization Status**: Melhorada precisão na verificação de status de autorização - **Component Integration**: Corrigida integração entre componentes do app demo ### Technical - **Code Organization**: Reorganização do código para melhor manutenibilidade - **Type Safety**: Melhorias na tipagem TypeScript - **Testing**: Adicionados testes para funcionalidades críticas ## [1.12.0] - 2025-07-21 ### Added - **Batch Authorization Methods**: Novos métodos para autorização em lote - **Enhanced Type Checking**: Verificação avançada de tipos de dados - **Comprehensive Documentation**: Documentação completa dos novos recursos ### Changed - **Authorization API**: Refatorada API de autorização para suportar arrays de tipos - **Error Messages**: Melhoradas mensagens de erro para debugging - **Performance**: Otimizações de performance em operações em lote ### Fixed - **Type Validation**: Corrigida validação de tipos de dados - **Authorization Flow**: Melhorado fluxo de autorização - **Error Handling**: Corrigido tratamento de erros em operações em lote ### Technical - **Array-based Methods**: Implementados métodos que aceitam arrays de identificadores - **Type Safety**: Melhorada segurança de tipos - **Code Quality**: Melhorias gerais na qualidade do código ## [1.11.0] - 2025-07-21 ### Added - **New Authorization Methods**: Métodos para verificar disponibilidade e permissões - **Enhanced Error Handling**: Sistema robusto de tratamento de erros - **Comprehensive Logging**: Logs detalhados para debugging ### Changed - **Authorization Flow**: Melhorado fluxo de autorização - **Error Messages**: Mensagens de erro mais informativas - **Performance**: Otimizações de performance ### Fixed - **Authorization Issues**: Corrigidos problemas de autorização - **Error Handling**: Melhorado tratamento de erros - **Logging**: Corrigidos problemas de logging ### Technical - **New Methods**: Adicionados métodos `isTypeAvailable`, `canReadType`, `canWriteType` - **Error Handling**: Implementado sistema robusto de tratamento de erros - **Logging**: Sistema de logging detalhado ## [1.10.0] - 2025-07-21 ### Added - **Enhanced Authorization**: Melhorias no sistema de autorização - **Better Error Handling**: Tratamento de erros mais robusto - **Performance Improvements**: Otimizações de performance ### Changed - **Authorization API**: Refatorada API de autorização - **Error Messages**: Mensagens de erro mais claras - **Code Organization**: Reorganização do código ### Fixed - **Authorization Bugs**: Corrigidos bugs de autorização - **Performance Issues**: Resolvidos problemas de performance - **Error Handling**: Melhorado tratamento de erros ### Technical - **Code Refactoring**: Refatoração do código para melhor manutenibilidade - **Error Handling**: Sistema robusto de tratamento de erros - **Performance**: Otimizações de performance ## [1.9.0] - 2025-07-21 ### Added - **New Features**: Novas funcionalidades adicionadas - **Enhanced Documentation**: Documentação melhorada - **Better Testing**: Testes mais abrangentes ### Changed - **API Improvements**: Melhorias na API - **Performance**: Otimizações de performance - **Code Quality**: Melhorias na qualidade do código ### Fixed - **Bug Fixes**: Correções de bugs - **Performance Issues**: Resolvidos problemas de performance - **Documentation**: Correções na documentação ### Technical - **Code Improvements**: Melhorias gerais no código - **Testing**: Testes mais robustos - **Documentation**: Documentação atualizada ## [1.8.0] - 2025-07-21 ### Added - **Enhanced Features**: Funcionalidades aprimoradas - **Better Error Handling**: Tratamento de erros melhorado - **Performance Optimizations**: Otimizações de performance ### Changed - **API Changes**: Mudanças na API - **Code Organization**: Reorganização do código - **Documentation**: Atualizações na documentação ### Fixed - **Critical Bugs**: Correções de bugs críticos - **Performance Issues**: Resolvidos problemas de performance - **Error Handling**: Melhorado tratamento de erros ### Technical - **Code Refactoring**: Refatoração do código - **Error Handling**: Sistema robusto de tratamento de erros - **Performance**: Otimizações de performance ## [1.7.0] - 2025-07-21 ### Added - **New Authorization Methods**: Novos métodos de autorização - **Enhanced Type Safety**: Melhor segurança de tipos - **Comprehensive Testing**: Testes abrangentes ### Changed - **Authorization Flow**: Melhorado fluxo de autorização - **Error Handling**: Tratamento de erros aprimorado - **Performance**: Otimizações de performance ### Fixed - **Authorization Issues**: Corrigidos problemas de autorização - **Type Safety**: Melhorada segurança de tipos - **Error Handling**: Corrigido tratamento de erros ### Technical - **Type Safety**: Melhorias na segurança de tipos - **Error Handling**: Sistema robusto de tratamento de erros - **Testing**: Testes mais abrangentes ## [1.6.0] - 2025-07-21 ### Added - **Enhanced Features**: Funcionalidades aprimoradas - **Better Documentation**: Documentação melhorada - **Performance Improvements**: Melhorias de performance ### Changed - **API Improvements**: Melhorias na API - **Code Organization**: Reorganização do código - **Error Handling**: Tratamento de erros melhorado ### Fixed - **Bug Fixes**: Correções de bugs - **Performance Issues**: Resolvidos problemas de performance - **Documentation**: Correções na documentação ### Technical - **Code Quality**: Melhorias na qualidade do código - **Performance**: Otimizações de performance - **Documentation**: Documentação atualizada ## [1.5.0] - 2025-07-21 ### Added - **New Features**: Novas funcionalidades - **Enhanced Error Handling**: Tratamento de erros aprimorado - **Better Performance**: Melhor performance ### Changed - **API Changes**: Mudanças na API - **Code Structure**: Estrutura do código melhorada - **Documentation**: Documentação atualizada ### Fixed - **Critical Issues**: Correções de problemas críticos - **Performance Problems**: Resolvidos problemas de performance - **Error Handling**: Melhorado tratamento de erros ### Technical - **Code Improvements**: Melhorias no código - **Error Handling**: Sistema robusto de tratamento de erros - **Performance**: Otimizações de performance ## [1.4.0] - 2025-07-21 ### Added - **Enhanced Authorization**: Sistema de autorização aprimorado - **Better Type Safety**: Melhor segurança de tipos - **Comprehensive Testing**: Testes abrangentes ### Changed - **Authorization Flow**: Fluxo de autorização melhorado - **Error Handling**: Tratamento de erros aprimorado - **Performance**: Otimizações de performance ### Fixed - **Authorization Bugs**: Corrigidos bugs de autorização - **Type Safety Issues**: Resolvidos problemas de segurança de tipos - **Error Handling**: Corrigido tratamento de erros ### Technical - **Type Safety**: Melhorias na segurança de tipos - **Error Handling**: Sistema robusto de tratamento de erros - **Testing**: Testes mais abrangentes ## [1.3.0] - 2025-07-21 ### Added - **New Features**: Novas funcionalidades adicionadas - **Enhanced Documentation**: Documentação melhorada - **Better Error Handling**: Tratamento de erros aprimorado ### Changed - **API Improvements**: Melhorias na API - **Code Organization**: Reorganização do código - **Performance**: Otimizações de performance ### Fixed - **Bug Fixes**: Correções de bugs - **Performance Issues**: Resolvidos problemas de performance - **Documentation**: Correções na documentação ### Technical - **Code Quality**: Melhorias na qualidade do código - **Performance**: Otimizações de performance - **Documentation**: Documentação atualizada ## [1.2.0] - 2025-07-21 ### Added - **Enhanced Features**: Funcionalidades aprimoradas - **Better Performance**: Melhor performance - **Comprehensive Testing**: Testes abrangentes ### Changed - **API Changes**: Mudanças na API - **Code Structure**: Estrutura do código melhorada - **Error Handling**: Tratamento de erros melhorado ### Fixed - **Critical Issues**: Correções de problemas críticos - **Performance Problems**: Resolvidos problemas de performance - **Error Handling**: Melhorado tratamento de erros ### Technical - **Code Improvements**: Melhorias no código - **Error Handling**: Sistema robusto de tratamento de erros - **Performance**: Otimizações de performance ## [1.1.0] - 2025-07-21 ### Added - **New Features**: Novas funcionalidades - **Enhanced Documentation**: Documentação melhorada - **Better Error Handling**: Tratamento de erros aprimorado ### Changed - **API Improvements**: Melhorias na API - **Code Organization**: Reorganização do código - **Performance**: Otimizações de performance ### Fixed - **Bug Fixes**: Correções de bugs - **Performance Issues**: Resolvidos problemas de performance - **Documentation**: Correções na documentação ### Technical - **Code Quality**: Melhorias na qualidade do código - **Performance**: Otimizações de performance - **Documentation**: Documentação atualizada ## [1.0.0] - 2025-07-21 ### Added - **Initial Release**: Primeira versão estável - **Core Features**: Funcionalidades principais - **Basic Documentation**: Documentação básica ### Features - **HealthKit Integration**: Integração completa com HealthKit - **Authorization System**: Sistema de autorização - **Data Retrieval**: Recuperação de dados de saúde - **Type Safety**: Segurança de tipos TypeScript - **Error Handling**: Tratamento de erros - **Performance**: Otimizações de performance ### Technical - **React Native Bridge**: Bridge nativo para React Native - **TypeScript Support**: Suporte completo a TypeScript - **iOS Native Code**: Código nativo iOS - **Documentation**: Documentação completa - **Testing**: Testes abrangentes