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
Markdown
# 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