Releases: vmrchnk/NetworkKit
Releases · vmrchnk/NetworkKit
Release list
0.2.0 - Download/Upload Progress & Session Providers
NetworkKit 0.2.0
This release adds download/upload progress tracking and flexible session management.
New Features
- Download with Progress - Download files with real-time progress tracking using
AsyncThrowingStream<RequestProgress<URL>, Error> - Upload with Progress - Upload files with progress tracking using
AsyncThrowingStream<RequestProgress<Response>, Error> - RequestProgress Enum -
.progress(Double)and.completed(T)cases for tracking transfer operations
Session Providers
- DefaultSession - Standard session for most API calls
- EphemeralSession - Private requests without caching or cookies
- BackgroundSession - Transfers that continue when app is backgrounded
- Custom SessionProvider - Protocol for creating custom session configurations
Improvements
- Custom Base URL - Override
baseURLper request for multi-endpoint APIs - Simplified Configuration -
NetworkClientConfigurationnow delegates timeout control to SessionProvider
Example App
- Added Download Demo screen with circular progress indicator
- TabView navigation between Weather and Download demos
Bug Fixes
- Fixed download progress not updating (was using upload delegate instead of bytes API)
0.1.0 - Initial release of NetworkKit - a lightweight, type-safe networking library for Swift using the Request Object Pattern.
Features
- Request Protocol - Type-safe API requests with compile-time response type checking
- NetworkClient - Configurable client with async/await support
- NetworkClientConfiguration - Base URL and default headers configuration
- HTTPMethod - Support for GET, POST, PUT, PATCH, DELETE methods
- Query & Body encoding - Automatic JSON encoding for request body and query parameters
- Error Handling - Comprehensive NetworkError enum with retryable error detection
- Logging - Built-in request/response logging with NetworkLogger
Example App
Includes a weather app example demonstrating:
- Geocoding API integration
- Weather API integration
- Request execution with async/await