smart8612 / NetworkKit

Light weight network abstraction layer used for singularis7's iOS Platform

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

๐Ÿ“ก NetworkKit

โญ๏ธ Overview

  • ๋‹จ์ˆœํ•œ ๋„คํŠธ์›Œํฌ ์ถ”์ƒํ™” ๊ณ„์ธต์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • API ๋ช…์„ธ๋ฅผ ํ•˜๋‚˜์˜ ๊ตฌ์กฐ์ฒด ํƒ€์ž…์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‚ฌ์ „์— ์ •์˜ํ•ด๋‘” API ๋ช…์„ธ ํƒ€์ž…์„ ํ†ตํ•ด ์†์‰ฌ์šด ๋„คํŠธ์›Œํฌ ์š”์ฒญ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“ฐ Related Articles

NetworkKit์ด ๊ฐœ๋ฐœ ๊ณผ์ • ๋ฐ ์˜๋„๋Š” ๋‹ค์Œ์˜ ๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๋ฌผ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ–ผ๏ธ UML Diagram

networkkit

๐Ÿ› ๏ธ Used Technology

๋„๊ตฌ

#Xcode #Swift

๋ชจ๋ธ๋ง

#Protocol-Oriented Programming

๋„คํŠธ์›Œํ‚น

#URLSession

๋น„๋™๊ธฐ API ๋ฐ ๋™์‹œ์„ฑ

#Swift Concurrency

โš™๏ธ Installation

Swift Package Manager

  • Apple ํ”Œ๋žซํผ์˜ ์‘์šฉํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๋Š” ํ”„๋กœ์ ํŠธ์—์„œ๋Š” Xcode UI๋ฅผ ํ†ตํ•ด NetworkKit์— ๋Œ€ํ•œ ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • SPM ํŒจํ‚ค์ง€ ํ”„๋กœ์ ํŠธ๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ ์ค‘์ด์–ด๋„ Package.swift ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜์—ฌ NetworkKit์— ๋Œ€ํ•œ ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Xcode UI๋ฅผ ํ™œ์šฉํ•œ ์˜์กด์„ฑ ์ถ”๊ฐ€๋ฒ•

  1. Xcode์˜ ๋ฉ”๋‰ด๋ฐ”์—์„œ Project Settings๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  2. Project Settings์˜ ํ•˜์œ„ ๋ฉ”๋‰ด ์ค‘ Swift Packages๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  3. Swift Packages ์ฐฝ์—์„œ NetworkKit์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

Package.swift๋ฅผ ํ™œ์šฉํ•œ ์˜์กด์„ฑ ์ถ”๊ฐ€๋ฒ•

  1. ๋‹ค์Œ์˜ dependency๋ฅผ Package.swift์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
.package(url: "https://github.com/smart8612/NetworkKit", branch: "main")
  1. 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"]),
    ]
)

๐Ÿ“– API Documentation

Xcode์˜ DocC ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ํ™œ์šฉํ•ด API ๋„ํ๋ฉ˜ํŠธ๋ฅผ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Build Documentaion ๊ธฐ๋Šฅ์„ ํ†ตํ•ด API์˜ ์„ธ๋ถ€ ์„ค๋ช…์„ ํ™•์ธํ•ด๋ณด์„ธ์š”!

  • ๋‹จ์ถ•ํ‚ค: control + shift + command + d ๋‹ค์Œ์˜ GitHub Pages ๋ฅผ ํ†ตํ•ด์„œ ์˜จ๋ผ์ธ ๋„ํ๋ฉ˜ํŠธ๋ฅผ ์—ด๋žŒํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • NetworkKit Official documentation

๐Ÿคผ Sample Projects

NetworkKit์„ ํ†ตํ•ด ๊ตฌ์ถ•๋œ ์ƒ˜ํ”Œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค์Œ์˜ Repository์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

About

Light weight network abstraction layer used for singularis7's iOS Platform


Languages

Language:Swift 100.0%