NIX - 网络接口扩展
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。