简介
# Uncomment the next line to define a global platform for your project
platform :ios, '15.0'
# Your project does not explicitly specify the CocoaPods master specs repo. Since CDN is now used as the default, you may safely remove it from your repos directory via `pod repo remove master`. To suppress this warning please add `warn_for_unused_master_specs_repo => false` to your Podfile.
##忽略.cocoapods中多个specs源引起的警告问题
install! 'cocoapods', :warn_for_unused_master_specs_repo => false
target 'XXX' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# 网络
pod 'Alamofire', '~> 5.4'
pod 'Moya', '~> 15.0' #对Alamofire的二次封装
# JSON解析
pod 'HandyJSON', '~> 5.0.2' #和YYModel类似,用了runtime,不需要写map
pod 'SwiftyJSON', '~> 4.0' #不需要定义Model,直接使用字段
# 响应式编程框架
pod 'RxSwift'
pod 'RxCocoa'
pod 'RxDataSources'
# 弹窗提示
pod 'SwiftMessages'
#UI布局
pod 'SnapKit' #自动布局库
pod 'Then' #配合'SnapKit',使用链式语法
pod "R.swift"
#图片库
pod 'Kingfisher' #图片下载和缓存
#轮播图
pod 'FSPagerView'
# 输入框随键盘移动
pod 'IQKeyboardManagerSwift'
# 提供加密相关的方法
pod 'CryptoSwift'
#本地存储
pod 'SwiftyUserDefaults'
end
post_install do |installer|
# XCode14.1之后,要求最低的构建版本为11.0,这里是为了解除警告
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f < 11.0
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
end
end
end
end
网络
这个推荐使用,比直接使用Alamofire简洁很多
JSON解析
如何选择,可以参考这篇文章:Swift:分别使用SwiftyJSON、ObjectMapper、HandyJSON处理JSON
选择HandyJSON的原因是因为用了runtime机制,不需要写map,和YYModel类似
HandyJSON同时选择SwiftyJSON的原因是很多时候,直接使用字段就好了,没有必要转成Model
SwiftyJSONObjectMapper也很不错,实现map协议,自己写字段映射。概念简单,很不错。如果HandyJSON不是像YYModel那样省心省力,选这个也很不错。当然,这里就不需要重复了
ObjectMapper
Toast
- 选择Toast-Swift的原因是这个库是用Swift写的;
Toast-Swift
Hud
选择这个纯粹是因为Swift写的;
PKHUD官网介绍不清不楚的,下面这篇文章介绍的使用方法比较好:
Swift HUD库PKHUD另外两个也很好,在OC的时候经常用;
SVProgressHUD
MBProgressHUD
通知消息
响应式框架
这个基本就会选RxSwift,RxCocoa和RxDataSources是配套组件
RxSwift: ReactiveX for SwiftRxSwift学习曲线还是有的,只是在Swift语境下,async/await不是很好用,所以感觉RxSwift更值得学习一下;官方提供了教程,相对来说还不错。
RxSwift中文版下面两篇文章是介绍使用方法的,写得很好
理解 RxSwift:为什么要使用 RxSwift(一)
理解 RxSwift:MVVM(三)
UI布局
基本上用这个SnapKit
Then和R.swift这两个可以认为是语法糖
图片库
- 基本上用这个Kingfisher
轮播图
- 上千的start,还是可以信任的FSPagerView
键盘管理
- 这个非常好,OC的时候就用,啥也不用做
IQKeyboardManager
加解密
- 接近10K的start,用这个应该没错。
CryptoSwift
本地存储
- 基本上用这个,Star上千就能用。YYModel对应的Swift版本没有找到
SwiftyUserDefaults