YYKit源碼探究(一) —— 基本概覽

版本記錄

版本號(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.mNSThread+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)注,謝謝~~~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容