HoverKitSDK 1.1

HoverKitSDK 1.1

Onur H. Çantay 维护。



版本 1.1

apmCocoaPods compatible Carthage compatible Swift Package Manager compatible Swift

当前可用

平台 版本
iOS 12.0
tvOS 10.0
macOS 10.15
watchOS 3.0
macCatalyst 13.0

Hover 是一个使用 Apple 的新框架 Combine 的网络层,它提供了异步网络调用和不同类型请求函数。

何时以及为什么使用

使用 Hover 的主要优势是尽可能多地将网络层抽象化,并从您的项目中去除冗余代码。众所周知,Apple 宣布了一个名为 Combine 的新框架,主要目的是提供处理时间上值的声明性 Swift API。这些值可以表示许多类型的异步事件,因此网络调用是最重要的异步事件,实际上需要支持 Combine 来防止和整合 Apple 的原生框架。您不应该使用 Hover 的情况是当您没有那么多网络调用,以及不复杂的数据流需要跟踪哪种情况,也就是说,您没有 UI 的状态时则不要使用它。:)

Cocoapods 安装

target 'MyApp' do
  pod 'HoverKitSDK', "~> 1.1"
end

Carthage 安装

github "onurhuseyincantay/Hover" ~> 1.1

Swift Package Manager 安装

分支

示例用法

提供目标

 enum UserTarget {
  case login(email: String, password: String) 
 }
 
 extension UserTarget: NetworkTarget { 
    var path: String {
        switch self {
        ...
    }
    var providerType: AuthProviderType {
        ...
    }
    
    var baseURL: URL {
        ...
    }
    
    var methodType: MethodType {
        switch self {
          ...
        }
    }
    
    var contentType: ContentType? {
        switch self {
         ...
        }
    }
    
    var workType: WorkType {
        switch self {
          ...
        }
    }
    
    var headers: [String : String]? {
        ...
    }
 }

与发布者请求

let provider = Hover()
let publisher = provider.request(
            with: UserTarget.login(email: "[email protected]", password: "123456"),
            scheduler: DispatchQueue.main,
            class: UserModel.self
        )
...
publisher.sink({ ... })

与订阅者请求

let provider = Hover()
let userSubscriber = UserSubscriber()
provider.request(with: UserTarget.login(email: "[email protected]", password: "123456"), class: UserModel.self, subscriber: userSubscriber)

JsonPlaceholder上进行测试;受Moya启发;使用如下:🧡