Nix 1.0.5

Nix 1.0.5

Bazyli Zygan维护。



Nix 1.0.5

  • Bazyli Zygan

NIX - 网络接口扩展

CocoaPods Compatible Platform

Nix是使用Swift编写的HTTP网络库。在基于已经非常出色的Apple解决方案(URLSession)的基础上,Nix为您的API连接添加了结构,使您能够保持应用程序连接部分的清洁,并且易于更改/扩展。

功能

  • 链式请求/响应方法
  • URL / JSON
  • 上传文件 / 数据 / 流 / 多部分表单数据
  • 带有进度的上传和下载进度闭包和代理
  • 直接将文件下载到流
  • 从数据或本地文件恢复文件下载
  • HTTP响应验证
  • 文档

要求

  • iOS 10.0+ / macOS 10.10+ / tvOS 9.0+ / watchOS 2.0+
  • Xcode 9.3+
  • Swift 4.0+

通信

  • 如果您需要帮助,使用Stack Overflow。(标签'nixswift')
  • 如果您想提出一个一般性问题,在Stack Overflow提问。
  • 如果您发现了一个错误,请提交问题。
  • 如果您有,请开一个问题报告。
  • 如果您想要贡献力量,请提交一个pull request。

安装

CocoaPods

CocoaPods 是Cocoa项目的依赖管理器。您可以使用以下命令安装它

$ gem install cocoapods

CocoaPods 1.1+ 是构建Nix所需的。

要使用CocoaPods将Nix集成到Xcode项目中,请在您的Podfile中指定它。

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'
use_frameworks!

target '<Your Target Name>' do
    pod 'Nix'
end

然后,运行以下命令

$ pod install

手动

如果您不希望使用上述任何依赖管理器,您可以将Nix手动集成到项目中。

嵌入式框架

  • 在终端中,cd到您的顶级项目目录,并运行以下命令,如果您的项目还没有初始化为git仓库
$ git init
  • 通过运行以下命令将Nix作为git 子模块添加
$ git submodule add https://github.com/NovaProj/Nix.git
  • 打开新的Nix文件夹,并将Nix.xcodeproj拖动到您的应用Xcode项目的项目导航器中。

它应该出现在您的应用程序蓝色项目图标下面。它是在所有的其他Xcode组之上还是之下并不重要。

  • 在项目导航器中选中Nix.xcodeproj,并验证部署目标是否与您的应用程序目标相匹配。
  • 接下来,在项目导航器(蓝色项目图标)中选中您的应用程序项目,导航到目标配置窗口并选中侧边栏下的“Targets”标题下的应用程序目标。
  • 在窗口顶部的选项卡栏中,打开“General”面板。
  • 在“嵌入式二进制”部分下点击+按钮。
  • 您将看到两个不同的Nix.xcodeproj文件夹,每个文件夹都在一个名为Products的文件夹内嵌有两个不同版本的Nix.framework

您可以选择哪个Products文件夹并不重要,但您必须选择顶部的或底部的Nix.framework

  • 为iOS选择顶部的Nix.framework,为OS X选择底部的。

  • 这就是全部了!

在复制文件构建阶段,Nix.framework会自动作为目标依赖、链接框架和嵌入框架添加,这对于在模拟器和设备上构建您所需的一切。

常见问题(FAQ)

为什么是Nix?

因为苹果已经有一个非常出色的网络连接工具。它只需要一点点的微调,就可以让你的代码结构化、易于理解,并且集中在一个地方。它非常基本,将来会添加更多功能(在待办事项部分了解更多)。但它的主要目标是简单和结构化。

其他库有什么问题?

它们并没有什么问题。我自己在Swift生活中大部分时间都在使用Alamofire。事实是,Alamofire是当URLSession不像现在这样漂亮时的一个必然产物。随着时间的推移,我发现我并不真正了解Alamofire是如何工作的。Alamofire的代码离清晰很远。并且很难找到使用上的特有问题。实际上——随着时间的推移,Alamofire逐渐变得越来越过时。

最后,我所做的多数项目中都缺乏网络调用的结构。尽管大多数库提供了函数,但它们缺少苹果在其Foundation和UIKit中所带来的最重要元素——结构。这就是Nix的原因。

待办事项

Nix还有许多事情要实现。以下是最重要的一些:

  • 使用URLCredential进行身份验证
  • 网络可达性
  • 更多测试
  • 更多文档

许可证

Nix是在MIT许可证下发布的。有关详细信息,请参阅LICENSE