Latest 2.0.0
Homepage https://github.com/dev4jam/remote
License MIT Copyright 2017 Dev4Jam
Platforms ios 10.3, requires ARC
Dependencies When
Frameworks Foundation
Authors

RemotePlatform: iOS 10+Language: Swift 4.0
License: MITCarthage 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),
  ]
)

Latest podspec

{
    "name": "Remote",
    "version": "2.0.0",
    "license": {
        "type": "MIT",
        "file": "LICENSE",
        "text": "Copyright 2017 Dev4Jam"
    },
    "summary": "Remote is a highly decoupled networking layer",
    "homepage": "https://github.com/dev4jam/remote",
    "authors": {
        "Dev4Jam": "[email protected]"
    },
    "social_media_url": "http://twitter.com/dev4jam",
    "source": {
        "git": "https://github.com/dev4jam/remote.git",
        "branch": "master",
        "tag": "2.0.0"
    },
    "source_files": "Remote/*.swift",
    "platforms": {
        "ios": "10.3"
    },
    "requires_arc": true,
    "frameworks": "Foundation",
    "dependencies": {
        "When": []
    }
}

Pin It on Pinterest

Share This