Problem
SwiftyUpdateKitConfig combines identity, networking, comparison, presentation strings, retry settings, and storage environment in one long initializer. Some public types are also wider than needed: logs accept Any, successful version values remain optional, and condition protocols unnecessarily require reference types.
Scope
- Group app identity, network policy, and built-in presentation content into focused value types.
- Use non-optional
UpdateInfo values for successful results.
- Change the logger contract to accept
String.
- Remove
AnyObject from condition protocols unless identity is required.
- Provide compatibility initializers and adapters with a documented deprecation schedule.
Dependencies
Acceptance criteria
Tests
- Add compile-time API fixtures for old and new initialization paths and unit tests for configuration mapping.
Relevant files
Framework/Sources/SwiftyUpdateKitConfig.swift
Framework/Sources/Log.swift
Framework/Sources/SUK.swift
Framework/Sources/VersionCheckCondition.swift
Framework/Sources/RequestReviewCondition.swift
README.md
Problem
SwiftyUpdateKitConfigcombines identity, networking, comparison, presentation strings, retry settings, and storage environment in one long initializer. Some public types are also wider than needed: logs acceptAny, successful version values remain optional, and condition protocols unnecessarily require reference types.Scope
UpdateInfovalues for successful results.String.AnyObjectfrom condition protocols unless identity is required.Dependencies
Acceptance criteria
Tests
Relevant files
Framework/Sources/SwiftyUpdateKitConfig.swiftFramework/Sources/Log.swiftFramework/Sources/SUK.swiftFramework/Sources/VersionCheckCondition.swiftFramework/Sources/RequestReviewCondition.swiftREADME.md