YYKit源码探究(一) —— 基本概览

版本记录

版本号 时间
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的例子。

YYKit源码探究(一) —— 基本概览_第1张图片
YYKit源码探究(一) —— 基本概览_第2张图片
YYKit源码探究(一) —— 基本概览_第3张图片

安装

1. CocoaPods

  • Podfile中添加pod 'YYKit'
  • 运行pod install 或者 pod update
  • 引入

2. Carthage

  • github "ibireme/YYKit"加入到Cartfile
  • 运行carthage update --platform ios并将框架加入到项目中
  • 引入
  • 注意:carthage框架不包括Webp 部分,如果你想支持webp,使用CocoaPods或者手动集成。

3. Manually - 手动

  • 下载所有的YYKit子目录

  • 将源文件添加到xcode项目中

  • 将-fno-objc-arc编译flag到NSObject+YYAddForARC.mNSThread+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源码探究(一) —— 基本概览_第4张图片
YYKit源码探究(一) —— 基本概览_第5张图片
YYKit源码探究(一) —— 基本概览_第6张图片
YYKit源码探究(一) —— 基本概览_第7张图片

后记

本篇作为YYKit框架源码分析的第一篇文章,主要介绍了框架的一些基本的情况,后面会详细的分析每一个模块的功能。喜欢的可以给个赞或者关注,谢谢~~~~

YYKit源码探究(一) —— 基本概览_第8张图片

你可能感兴趣的:(YYKit源码探究(一) —— 基本概览)