版本记录
版本号 | 时间 |
---|---|
V1.0 | 2018.03.20 |
前言
iOS圈内有几个人大家基本都知道,比如说王巍、唐巧,还有YYKit框架的作者现任职于滴滴的郭曜源 - ibireme等。这里有一篇唐巧对他的专访,还有他的 GitHub - Yaoyuan 和 博客,这里贴出来框架YYKit 框架。接下来几篇我们就一起来看一下这个框架。
Overview
YYKit是iOS组件的集合,这个框架的代码量很大,这里就分出几个独立的部分。
- YYModel - iOS高性能模型框架
- YYCache - iOS高性能缓存框架
-
YYImage - iOS的图像框架用于显示/编码/解码动画
WebP,APNG,GIF
- YYWebImage - 异步图像加载框架
- YYText - iOS中强大的文本组件
- YYKeyboardManager - 访问键盘视图并跟踪键盘动画
- YYDispatchQueuePool - iOS实用程序类来管理全局调度队列
- YYAsyncLayer - 用于异步渲染和显示的iOS实用程序类
- YYCategories - Foundation和UIKit的一组有用分类。
Demo
这里给出的是仿微博和Twitter的例子。
安装
1. CocoaPods
- Podfile中添加
pod 'YYKit'
- 运行
pod install
或者pod update
- 引入
<YYKit/YYKit.h>
2. Carthage
- 将
github "ibireme/YYKit"
加入到Cartfile
- 运行
carthage update --platform ios
并将框架加入到项目中 - 引入
<YYKit/YYKit.h>
- 注意:
carthage
框架不包括Webp 部分,如果你想支持webp,使用CocoaPods或者手动集成。
3. Manually - 手动
下载所有的YYKit子目录
将源文件添加到xcode项目中
将-fno-objc-arc编译flag到
NSObject+YYAddForARC.m
和NSThread+YYAdd.m
-
链接需要的库
- UIKit
- CoreFoundation
- CoreText
- CoreGraphics
- CoreImage
- QuartzCore
- ImageIO
- AssetsLibrary
- Accelerate
- MobileCoreServices
- SystemConfiguration
- sqlite3
- libz
如果你想支持
WebP
那么添加Vendor/WebP.framework
静态库。引入YYKit.h
注意
这个ibireme的原话:
我希望调用 API 时,有着和调用系统自带 API 一样的体验,所以我并没有为 Category 方法添加前缀。我已经用工具扫描过这个项目中的 API,确保没有对系统 API 产生影响,但即使这样没有前缀的 Category 也可能会带来其他麻烦。因此我不太推荐直接使用 YYKit 这个库,你应该先尝试一下上面那些拆分出来的独立组件。
基本框架
下面我们就看一下YYKit的基本框架。
后记
本篇作为YYKit框架源码分析的第一篇文章,主要介绍了框架的一些基本的情况,后面会详细的分析每一个模块的功能。喜欢的可以给个赞或者关注,谢谢~~~~