- ๋จ์ํ ๋คํธ์ํฌ ์ถ์ํ ๊ณ์ธต์ ์ ๊ณตํฉ๋๋ค.
- API ๋ช ์ธ๋ฅผ ํ๋์ ๊ตฌ์กฐ์ฒด ํ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
- ์ฌ์ ์ ์ ์ํด๋ API ๋ช ์ธ ํ์ ์ ํตํด ์์ฌ์ด ๋คํธ์ํฌ ์์ฒญ์ด ๊ฐ๋ฅํฉ๋๋ค.
NetworkKit์ด ๊ฐ๋ฐ ๊ณผ์ ๋ฐ ์๋๋ ๋ค์์ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์์ ํ์ธํ์ค ์ ์์ต๋๋ค.
![]() |
---|
#Xcode
#Swift
#Protocol-Oriented Programming
#URLSession
#Swift Concurrency
- Apple ํ๋ซํผ์ ์์ฉํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๋ ํ๋ก์ ํธ์์๋ Xcode UI๋ฅผ ํตํด NetworkKit์ ๋ํ ์์กด์ฑ์ ์ถ๊ฐํ์ค ์ ์์ต๋๋ค.
- SPM ํจํค์ง ํ๋ก์ ํธ๋ฅผ ํตํด ๊ฐ๋ฐ ์ค์ด์ด๋
Package.swift
ํ์ผ์ ์์ ํ์ฌ NetworkKit์ ๋ํ ์์กด์ฑ์ ์ถ๊ฐํ์ค ์ ์์ต๋๋ค.
- Xcode์ ๋ฉ๋ด๋ฐ์์ Project Settings๋ฅผ ์ ํํฉ๋๋ค.
- Project Settings์ ํ์ ๋ฉ๋ด ์ค Swift Packages๋ฅผ ์ ํํฉ๋๋ค.
- Swift Packages ์ฐฝ์์ NetworkKit์ ์ถ๊ฐํฉ๋๋ค.
- ๋ค์์ dependency๋ฅผ Package.swift์ ์ถ๊ฐํฉ๋๋ค.
.package(url: "https://github.com/smart8612/NetworkKit", branch: "main")
- NetworkKit์ ์ฌ์ฉํ๊ณ ์ถ์ target์ NetworkKit์ ์์กด์ฑ์ ์ถ๊ฐํฉ๋๋ค.
import PackageDescription
let package = Package(
name: "OrderClient",
platforms: [ .iOS(.v14) ],
products: [
// Products define the executables and libraries a package produces, and make them visible to other packages.
.library(
name: "OrderClient",
targets: ["OrderClient"]),
],
dependencies: [
// Dependencies declare other packages that this package depends on.
// .package(url: /* package url */, from: "1.0.0"),
.package(url: "https://github.com/smart8612/NetworkKit", branch: "main")
],
targets: [
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
// Targets can depend on other targets in this package, and on products in packages this package depends on.
.target(
name: "OrderClient",
dependencies: ["NetworkKit"]),
]
)
Xcode์ DocC ์ปดํ์ผ๋ฌ๋ฅผ ํ์ฉํด API ๋ํ๋ฉํธ๋ฅผ ๋น๋ํ ์ ์์ต๋๋ค. Build Documentaion ๊ธฐ๋ฅ์ ํตํด API์ ์ธ๋ถ ์ค๋ช ์ ํ์ธํด๋ณด์ธ์!
- ๋จ์ถํค: control + shift + command + d ๋ค์์ GitHub Pages ๋ฅผ ํตํด์ ์จ๋ผ์ธ ๋ํ๋ฉํธ๋ฅผ ์ด๋ํ์ค ์ ์์ต๋๋ค.
- NetworkKit Official documentation
NetworkKit์ ํตํด ๊ตฌ์ถ๋ ์ํ ํ๋ก์ ํธ๋ฅผ ๋ค์์ Repository์์ ํ์ธํ์ค ์ ์์ต๋๋ค.