2019 年终总结
December 8, 2019

这是在公司每年年终时准备的总结,现把它发布到博客上。

read more...

本篇是 Kingfisher 源码分析的最后一篇,这节主要分析一些笔者认为该库比较主要,且值得学习的点。

read more...

image 缓存分为两种:内存缓存磁盘缓存。在 ImageCache.swift 类中分别有两种实例来处理

// Memory
fileprivate let memoryCache = NSCache<NSString, AnyObject>()

// Disk
fileprivate let ioQueue: DispatchQueue
fileprivate var fileManager: FileManager!
read more...

上篇说道 KingfisherManager.swift 下载图片,本篇打开 ImageDownloader.swift 文件看看到底 downloader 是怎么下载图片的

read more...

Kingfisher 通过给 ImageView 和 Button 分别扩展了两个分类方法来设置图片

read more...

Kingfisher 是一个纯 swift 语言编写的图片处理库,它的很多设计思路借鉴了 OC 版本的 SDWebImage ,但不影响它成为 swift 语言中最好用的图片库。它的源码前后断断续续地阅读了很长时间,每次阅读都感觉能学到很多东西。

read more...
再看 Runtime
October 6, 2018

runtime 这个老生常谈的话题。Google一下会有不下10几篇的详细介绍 runtime 原理的文章。最近项目中因为埋点上报功能用到了,感觉相当强大。现站在巨人的肩膀上,整理些我认为比较重要的几点吧。

read more...
升级 Xcode 10 适配swift 4.2
September 18, 2018

今天提示 Xcode 10 GM 版本出来,也是等了好久,第一时间做了升级,之前装了 beta 版和正式版共存,导致项目中的 protobuf 编译出来的文件有问题,后来就卸载了。这次 Swift 小版本的升级主要优化了编译时间,swift 的编译速度实在是难以忍受..

read more...
记一次艰难的项目重构
September 16, 2018

忙了一个多月的新版本开发,终于坎坷的上线了…

read more...

项目用了 WebViewJavascriptBridge 这个强大的库来实现 JS 和 Swift 交互,已达到原生页面可以和网页进行数据的通讯。前段时间仔细研究了一下它的实现原理,窥探一下这个在 github 上拥有 11K stars 的库的厉害之处,看明白后发现原理其实也很简单,但他的实现思路可谓非常精妙!

read more...