All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.2.0 - 2025-01-08
- Infinite Query Support - Complete implementation of infinite queries with pagination
UseInfiniteQuerySwiftUI component for infinite scrollingInfiniteQuerycore class for managing paginated dataInfiniteQueryObserverfor reactive infinite query state management- Support for bidirectional pagination (next/previous pages)
- Automatic page parameter calculation
- Built-in pull-to-refresh support
- Configurable Initial Page - Pokemon demo now supports starting from any offset
- UI controls for selecting initial page
- Automatic refresh when initial page changes
- Proper cache separation for different starting points
- Enhanced SwiftUI Integration
- Fixed actor isolation issues for Swift 6 strict concurrency
- Improved
onChangehandlers inUseInfiniteQuery - Better error handling and loading states
- Type Constraints - Added
Equatableconstraint toTPageParamfor proper change detection - Options Handling - Fixed issue where old options were used instead of current options
- Demo App - Updated Pokemon list to showcase infinite query capabilities
- Pull-to-Refresh Bug - Fixed issue where first page was appended instead of resetting
- Actor Isolation - Resolved Swift concurrency errors with
@Stateproperties in closures - Query Key Changes - Fixed
UseInfiniteQueryto properly handle query key updates
- Swift 6.0 compatible with strict concurrency mode
- Comprehensive unit tests for infinite query functionality
- Updated to use Perception library for iOS 16+ compatibility
- Enhanced logging and debugging capabilities
0.1.0 - 2024-12-XX
- Initial release of SwiftUI Query
- Core Query System
UseQuerySwiftUI component for data fetchingQueryclass for individual query managementQueryClientfor centralized query managementQueryCachewith thread-safe operations
- SwiftUI Integration
QueryClientProviderfor dependency injection- Environment-based query client access
- Reactive state updates with
@Perceptible
- Advanced Features
- Automatic refetching (on mount, focus, reconnect)
- Request deduplication and caching
- Configurable retry logic with exponential backoff
- Garbage collection for unused queries
- Stale-while-revalidate caching strategy
- Developer Experience
- Comprehensive unit test suite
- Swift 6 strict concurrency compliance
- Multi-platform support (iOS, macOS, tvOS, watchOS)
- Complete Pokemon API demo application