Remote is a highly decoupled/isolated and testable networking layer written in Swift.
- Simple and customizable implementation
- Easy to integrate and use
- Clean and Neat implementation (SOLID principles)
- Based on pure NSURLSession with no obscured code
- Flexible response parser
- Swift4 Codable/Decodable protocols oriented
Current version is based upon the network architecture design described in:
- Atlas networking layer: link
- The complete guide to Network Unit Testing in Swift: link
- Network Layers in Swift: link
- Ultimate Guide to JSON Parsing with Swift 4: link
- Under the hood of Futures & Promises in Swift link
In order to give a complete out-of-box approach I’ve used the following libraries:
You can install Swiftline using CocoaPods, carthage and Swift package manager
use_frameworks!
pod 'Remote'
github 'dev4jam/Remote'
Add swiftline as dependency in your Package.swift
import PackageDescription
let package = Package(name: "YourPackage",
dependencies: [
.Package(url: "https://github.com/dev4jam/Remote.git", majorVersion: 0),
]
)