dev4jam / remote

Remote is a highly decoupled networking layer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Platform: iOS 10+ Language: Swift 4.0 License: MIT Carthage compatible

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:

  • Reactive Programming in Swift: As a callback hell solution RxSwift
  • Realm: Caching realm.io

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),
  ]
)

About

Remote is a highly decoupled networking layer

License:MIT License


Languages

Language:Swift 97.3%Language:Ruby 1.9%Language:Objective-C 0.8%