Skip to content

Releases: vmrchnk/NetworkKit

0.2.0 - Download/Upload Progress & Session Providers

Choose a tag to compare

@vmrchnk vmrchnk released this 20 Feb 21:26

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 baseURL per request for multi-endpoint APIs
  • Simplified Configuration - NetworkClientConfiguration now 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.

Choose a tag to compare

@vmrchnk vmrchnk released this 20 Feb 21:24

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