簡(jiǎn)介
# 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中多個(gè)specs源引起的警告問(wèn)題
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!
# 網(wǎng)絡(luò)
pod 'Alamofire', '~> 5.4'
pod 'Moya', '~> 15.0' #對(duì)Alamofire的二次封裝
# JSON解析
pod 'HandyJSON', '~> 5.0.2' #和YYModel類似,用了runtime,不需要寫(xiě)map
pod 'SwiftyJSON', '~> 4.0' #不需要定義Model,直接使用字段
# 響應(yīng)式編程框架
pod 'RxSwift'
pod 'RxCocoa'
pod 'RxDataSources'
# 彈窗提示
pod 'SwiftMessages'
#UI布局
pod 'SnapKit' #自動(dòng)布局庫(kù)
pod 'Then' #配合'SnapKit',使用鏈?zhǔn)秸Z(yǔ)法
pod "R.swift"
#圖片庫(kù)
pod 'Kingfisher' #圖片下載和緩存
#輪播圖
pod 'FSPagerView'
# 輸入框隨鍵盤(pán)移動(dòng)
pod 'IQKeyboardManagerSwift'
# 提供加密相關(guān)的方法
pod 'CryptoSwift'
#本地存儲(chǔ)
pod 'SwiftyUserDefaults'
end
post_install do |installer|
# XCode14.1之后,要求最低的構(gòu)建版本為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
網(wǎng)絡(luò)
這個(gè)推薦使用,比直接使用Alamofire簡(jiǎn)潔很多
JSON解析
如何選擇,可以參考這篇文章:Swift:分別使用SwiftyJSON、ObjectMapper、HandyJSON處理JSON
選擇HandyJSON的原因是因?yàn)橛昧藃untime機(jī)制,不需要寫(xiě)map,和YYModel類似
HandyJSON同時(shí)選擇SwiftyJSON的原因是很多時(shí)候,直接使用字段就好了,沒(méi)有必要轉(zhuǎn)成Model
SwiftyJSONObjectMapper也很不錯(cuò),實(shí)現(xiàn)map協(xié)議,自己寫(xiě)字段映射。概念簡(jiǎn)單,很不錯(cuò)。如果HandyJSON不是像YYModel那樣省心省力,選這個(gè)也很不錯(cuò)。當(dāng)然,這里就不需要重復(fù)了
ObjectMapper
Toast
- 選擇Toast-Swift的原因是這個(gè)庫(kù)是用Swift寫(xiě)的;
Toast-Swift
Hud
選擇這個(gè)純粹是因?yàn)镾wift寫(xiě)的;
PKHUD官網(wǎng)介紹不清不楚的,下面這篇文章介紹的使用方法比較好:
Swift HUD庫(kù)PKHUD另外兩個(gè)也很好,在OC的時(shí)候經(jīng)常用;
SVProgressHUD
MBProgressHUD
通知消息
響應(yīng)式框架
這個(gè)基本就會(huì)選RxSwift,RxCocoa和RxDataSources是配套組件
RxSwift: ReactiveX for SwiftRxSwift學(xué)習(xí)曲線還是有的,只是在Swift語(yǔ)境下,async/await不是很好用,所以感覺(jué)RxSwift更值得學(xué)習(xí)一下;官方提供了教程,相對(duì)來(lái)說(shuō)還不錯(cuò)。
RxSwift中文版下面兩篇文章是介紹使用方法的,寫(xiě)得很好
理解 RxSwift:為什么要使用 RxSwift(一)
理解 RxSwift:MVVM(三)
UI布局
基本上用這個(gè)SnapKit
Then和R.swift這兩個(gè)可以認(rèn)為是語(yǔ)法糖
圖片庫(kù)
- 基本上用這個(gè)Kingfisher
輪播圖
- 上千的start,還是可以信任的FSPagerView
鍵盤(pán)管理
- 這個(gè)非常好,OC的時(shí)候就用,啥也不用做
IQKeyboardManager
加解密
- 接近10K的start,用這個(gè)應(yīng)該沒(méi)錯(cuò)。
CryptoSwift
本地存儲(chǔ)
- 基本上用這個(gè),Star上千就能用。YYModel對(duì)應(yīng)的Swift版本沒(méi)有找到
SwiftyUserDefaults