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

版本记录

版本号 时间
V1.0 2018.03.20

前言

iOS圈内有几个人大家基本都知道,比如说王巍、唐巧,还有YYKit框架的作者现任职于滴滴的郭曜源 - ibireme等。这里有一篇唐巧对他的专访,还有他的 GitHub - Yaoyuan博客,这里贴出来框架YYKit 框架。接下来几篇我们就一起来看一下这个框架。

Overview

YYKit是iOS组件的集合,这个框架的代码量很大,这里就分出几个独立的部分。


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.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框架源码分析的第一篇文章,主要介绍了框架的一些基本的情况,后面会详细的分析每一个模块的功能。喜欢的可以给个赞或者关注,谢谢~~~~

推荐阅读更多精彩内容