版本記錄
| 版本號(hào) | 時(shí)間 |
|---|---|
| V1.0 | 2018.03.20 |
前言
iOS圈內(nèi)有幾個(gè)人大家基本都知道,比如說(shuō)王巍、唐巧,還有YYKit框架的作者現(xiàn)任職于滴滴的郭曜源 - ibireme等。這里有一篇唐巧對(duì)他的專訪,還有他的 GitHub - Yaoyuan 和 博客,這里貼出來(lái)框架YYKit 框架。接下來(lái)幾篇我們就一起來(lái)看一下這個(gè)框架。
Overview
YYKit是iOS組件的集合,這個(gè)框架的代碼量很大,這里就分出幾個(gè)獨(dú)立的部分。
- YYModel - iOS高性能模型框架
- YYCache - iOS高性能緩存框架
-
YYImage - iOS的圖像框架用于顯示/編碼/解碼動(dòng)畫
WebP,APNG,GIF - YYWebImage - 異步圖像加載框架
- YYText - iOS中強(qiáng)大的文本組件
- YYKeyboardManager - 訪問(wèn)鍵盤視圖并跟蹤鍵盤動(dòng)畫
- YYDispatchQueuePool - iOS實(shí)用程序類來(lái)管理全局調(diào)度隊(duì)列
- YYAsyncLayer - 用于異步渲染和顯示的iOS實(shí)用程序類
- YYCategories - Foundation和UIKit的一組有用分類。
Demo
這里給出的是仿微博和Twitter的例子。



安裝
1. CocoaPods
- Podfile中添加
pod 'YYKit' - 運(yùn)行
pod install或者pod update - 引入
<YYKit/YYKit.h>
2. Carthage
- 將
github "ibireme/YYKit"加入到Cartfile - 運(yùn)行
carthage update --platform ios并將框架加入到項(xiàng)目中 - 引入
<YYKit/YYKit.h> - 注意:
carthage框架不包括Webp 部分,如果你想支持webp,使用CocoaPods或者手動(dòng)集成。
3. Manually - 手動(dòng)
下載所有的YYKit子目錄
將源文件添加到xcode項(xiàng)目中
將-fno-objc-arc編譯flag到
NSObject+YYAddForARC.m和NSThread+YYAdd.m-
鏈接需要的庫(kù)
- UIKit
- CoreFoundation
- CoreText
- CoreGraphics
- CoreImage
- QuartzCore
- ImageIO
- AssetsLibrary
- Accelerate
- MobileCoreServices
- SystemConfiguration
- sqlite3
- libz
如果你想支持
WebP那么添加Vendor/WebP.framework靜態(tài)庫(kù)。引入YYKit.h
注意
這個(gè)ibireme的原話:
我希望調(diào)用 API 時(shí),有著和調(diào)用系統(tǒng)自帶 API 一樣的體驗(yàn),所以我并沒有為 Category 方法添加前綴。我已經(jīng)用工具掃描過(guò)這個(gè)項(xiàng)目中的 API,確保沒有對(duì)系統(tǒng) API 產(chǎn)生影響,但即使這樣沒有前綴的 Category 也可能會(huì)帶來(lái)其他麻煩。因此我不太推薦直接使用 YYKit 這個(gè)庫(kù),你應(yīng)該先嘗試一下上面那些拆分出來(lái)的獨(dú)立組件。
基本框架
下面我們就看一下YYKit的基本框架。




后記
本篇作為YYKit框架源碼分析的第一篇文章,主要介紹了框架的一些基本的情況,后面會(huì)詳細(xì)的分析每一個(gè)模塊的功能。喜歡的可以給個(gè)贊或者關(guān)注,謝謝~~~~
