Remote
Remote is a highly decoupled/isolated and testable networking layer written in Swift.
Features
- 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
Architecture Design
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
Used Libraries
In order to give a complete out-of-box approach I’ve used the following libraries:
Installation
You can install Swiftline using CocoaPods, carthage and Swift package manager
CocoaPods
use_frameworks!
pod 'Remote'
Carthage
github 'dev4jam/Remote'
Swift Package Manager
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),
]
)