美文网首页
搭建一个完整的swift项目

搭建一个完整的swift项目

作者: Anson杨春安 | 来源:发表于2018-01-22 14:30 被阅读448次

对于一个 iOS 项目,在搭建项目的时候,使用的架构为 MVVM 架构,需要考虑的有以下几点:

数据模型

网络请求

缓存

代码架构 - MVVM

图片加载

工具类

单元测试

一、MVVM架构之RxSwift

首先说一下框架,目前比较流行的是MVVM架构,在OC里,我们用的是ReactiveCocoa这个,想必这个使用的人比较多,大家也比较熟悉。在swift里用的是RxSwift这个,RxSwift就是ReactiveCocoa的swift版。

二、网络请求

对于使用Objective-C的开发者,一定非常熟悉AFNetworking这个网络框架。在苹果推出的Swift之后,AFNetworking的作者专门用Swift来编写一个类似AFNetworking的网络框架,称为Alamofire。Alamofire地址 >>

三、数据模型转换

在OC中,我们有很多优秀的第三方库帮助我们实现,比如MJExtension、JSONModel等,这些库基本都是利用runtime实现读取属性名并利用kvc重新赋值属性。

在Swift中,由于runtime的局限,比较出名的有SwiftyJSON、ObjectMapper等。

那么,今天的主角 HandyJSON就出现了,这个库是阿里一位大神推出的,能够做到JSON转Model一步到位,而且使用起来,非常简洁方便。

关于HandyJSON原理:

摘自网上一段说明如下:

HandyJSON另辟蹊径,采用Swift反射+内存赋值的方式来构造Model实例,保持原汁原味的Swift类定义。

四、网络层的进一步封装

一般我们会在项目中添加一个网络请求层,来管理网络请求,一般会叫APIManager或者NetworkModel,但是这样子还是会有一点不好:

这一层比较混乱,不好管理,混合了各种请求

不好做单元测试

但是Moya是专业处理这些问题而生滴。Moya有以下优点:

定义了一个清晰的网络结构

更加简单地进行网络单元测试

Moya是作用在Alamofire之上,让我们不再直接去使用Alamofire了,Moya也就可以看做我们的网络管理层,只不过他拥有更好更清晰的网络管理。可以看到下图,我们的APP直接操作Moya,让Moya去管理请求,不在跟Alamofire进行接触

相关文章

网友评论

      本文标题:搭建一个完整的swift项目

      本文链接:https://www.haomeiwen.com/subject/gdnqettx.html