SPM Swift License Platform Hits
๐๐ปโโ๏ธ iOS15+ ๋ฅผ ์ง์ํฉ๋๋ค.
๐๐ปโโ๏ธ URLSession์ ๊ธฐ๋ฐ์ผ๋ก ํ์ฌ ๊ตฌํ๋์์ต๋๋ค.
๐๐ปโโ๏ธ URLSession์ ๋ค์ํ ์ต์
์ ์ง์ํฉ๋๋ค.
โ AsyncURLSession ์ฌ์ฉํ๋ฉด, ๋คํธ์ํน ์ฝ๋๋ฅผ ์ข๋ ๊ฐ๊ฒฐํ๊ฒ ์ฌ์ฉ ํ ์ ์์ด์!
์ด ํ๋ก์ ํธ๋ URLSession์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํ๋์์ต๋๋ค.
๋ณด๋ค ์์ธํ ๋ด์ฉ์ ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํด ์ฃผ์ธ์
let package = Package( ... dependencies: [ .package(url: "https://github.com/Roy-wonji/AsyncURLSession.git", from: "1.0.2") ], ... )
import AsyncURLSessionimport AsyncURLSession protocol BaseTargetType : TargetType { } extension BaseTargetType { public var baseURL: URL { return URL(string: BaseAPI.baseURL.apiDesc)! } public var headers: [String : String]? { return APIHeader.baseHeader } }
import AsyncURLSession public enum TrackService { case trackEvent(event: Event) } extension TrackService : BaseTargetType { public var path: String { switch self { case .trackEvent: return TrackAPI.trackEvent.desc } } public var method: AsyncURLSession.HTTPMethod { switch self { case .trackEvent: return .post } } public var task: AsyncURLSession.NetworkTask { switch self { case .trackEvent(let event): return .requestParameters(parameters: event.toDictionary(), encoding: .json) } } }
let provider = AsyncProvider<GitHub>() func getDate() async throws -> CurrentDate? { return try await provider.request(.getDate) }
๋ก๊ทธ ๊ด๋ จ ์ฌ์ฉ์ LogMacro ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํด์ฃผ์ธ์.
์์์ง(Roy) suhwj81@gmail.com
๊ฐ์ ์ ์ฌ์ง๊ฐ ์๋ ๋ชจ๋ ๊ฒ๋ค์ ๋ํด ์ด๋ ค์์ต๋๋ค.
PullRequest๋ฅผ ํตํด ๊ธฐ์ฌํด์ฃผ์ธ์. ๐
AsyncMoya ๋ MIT ๋ผ์ด์ ์ค๋ก ์ด์ฉํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ผ์ด์ ์ค ํ์ผ์ ์ฐธ์กฐํด ์ฃผ์ธ์.
AsyncMoya is available under the MIT license. See the LICENSE file for more info.