随笔分类 -  开源框架源码解析

对一些常用开源源码进行解析
摘要:React Native之新架构中的Turbo Module实现原理分析有段时间没更新博客了,之前计划由浅到深、从应用到原理,更新一些RN的相关博客。之前陆续的更新了6篇RN应用的相关博客(传送门),后边因时间问题没有继续更新。主要是平时空余时间都用来帮着带娃了,不过还是要挤挤时间来总结下,目标是完成由浅到深、由应用到原理的RN系列博客。本篇算是属于原理部分的博客,不过 阅读全文
posted @ 2021-10-14 11:03 青玉伏案 阅读(3228) 评论(4) 推荐(1) 编辑
摘要:前两篇博客我们分别聊了ReactiveSwift框架中的负责标记对象的生命周期的类Lifetime以及负责原子性操作的Atomic类的具体代码实现。前两篇博客之所以聊Lifetime以及Atomic的代码实现,就是为了今天这篇博客做铺垫的。在Property以及MutableProperty的代码实 阅读全文
posted @ 2017-08-28 09:53 青玉伏案 阅读(1072) 评论(0) 推荐(2) 编辑
摘要:本篇博客我们来聊一下ReactiveSwift中的原子性操作,在此内容上我们简单的聊一下Posix互斥锁以及递归锁的概念以及使用场景。然后再聊一下Atomic的代码实现。Atomic主要负责多线程下的原子操作,负责共享资源的同步一致性。而在Atomic中就是使用到了Posix互斥锁和递归锁。在聊上述 阅读全文
posted @ 2017-08-18 09:32 青玉伏案 阅读(764) 评论(0) 推荐(2) 编辑
摘要:为了之后博客的进行,本篇博客我们就来聊一下ReactiveSwift框架中的Lifetime类的具体实现。从Lifetime这个名字中我们就这道,就是生命周期。在ReactiveSwift中使用Lifetime来标记一个对象的生命周期,其实主要功能还是将对象的deinit()析构函数通过发送信号量将 阅读全文
posted @ 2017-08-08 09:38 青玉伏案 阅读(1157) 评论(1) 推荐(3) 编辑
摘要:上篇博客我们聊完SignalProducer结构体的基本实现后,我们接下来就聊一下SignalProducerProtocol延展中的start和lift系列方法。SignalProducer结构体的方法扩展与Signal的扩展相同,都是面向协议的扩展。首先创建了一个SignalProducerPr 阅读全文
posted @ 2017-07-26 10:06 青玉伏案 阅读(3810) 评论(0) 推荐(2) 编辑
摘要:在前面几篇博客中我们详细的聊了ReactiveSwift中的Bag、Event、Observer以及Signal的使用方式和代码实现。那么在接下来的这几篇博客中,我们就依附于之前博客的基础上来聊一聊SignalProducer的用法以及内部的代码实现。从SignalProducer的名字中,我们容易 阅读全文
posted @ 2017-07-20 09:45 青玉伏案 阅读(1328) 评论(0) 推荐(2) 编辑
摘要:本篇博客我们就来聊一下combineLatest()的使用以及具体的实现方式。在之前的《iOS开发之ReactiveCocoa下的MVVM》的博客中我们已经聊过combineLatest()的用法,虽然是使用老版本的ReactiveCocoa和Objective-C语言介绍的,不过使用原理上都是一致 阅读全文
posted @ 2017-07-13 09:33 青玉伏案 阅读(4577) 评论(1) 推荐(4) 编辑
摘要:上篇博客我们聊了observe()、map()、filter()延展函数的具体实现方式以及使用方式。我们在之前的博客中已经聊过,Signal的主要功能是位于SignalProtocol的协议延展中的,而且延展函数是非常的多的。今天博客中我们继续来聊SignalProtocol中那些比较核心的延展实现 阅读全文
posted @ 2017-07-10 09:39 青玉伏案 阅读(1269) 评论(0) 推荐(2) 编辑
摘要:上篇博客我们对Signal的基本实现以及Signal的面向协议扩展进行了介绍, 详细内容请移步于《Signal中的静态属性静态方法以及面向协议扩展》。并且聊了Signal的所有的g功能扩展都是放在Signal所实现的SignalProtocol协议的扩展中的。本篇博客就沿袭上篇博客的内容,我们来聊一 阅读全文
posted @ 2017-07-05 09:24 青玉伏案 阅读(1253) 评论(2) 推荐(2) 编辑
摘要:上篇博客我们聊了Signal的几种状态、Signal与Observer的关联方式以及Signal是如何向关联的Observer发送事件的。本篇博客继续上篇博客的内容,来聊一下Signal类中静态的never和empty计算属性以及pipe()静态方法。然后再聊聊Signal中的面向协议编程中的面向协 阅读全文
posted @ 2017-07-01 06:45 青玉伏案 阅读(922) 评论(0) 推荐(2) 编辑
摘要:上篇博客我们详细的聊了ReactiveSwift源码中的Bag容器,详情请参见《ReactiveSwift源码解析之Bag容器》。本篇博客我们就来聊一下信号量,也就是Signal的的几种状态以及Signal的基本实现。当然本篇博客所解析的源码会用到上篇博客介绍的Bag容器。本篇博客我们先通过一个示例 阅读全文
posted @ 2017-06-27 09:26 青玉伏案 阅读(1652) 评论(0) 推荐(3) 编辑
摘要:今天博客我接着上篇博客的内容来,上篇博客我们详细的看了ReactiveSwift中的Observer已经Event的代码实现。接下来我们来看一下ReactiveSwift中的结构体Bag的实现。Bag:袋子,顾明思议,就是用来装东西的,我们暂且将Bag称之为容器。在ReactiveSwift中的Ba 阅读全文
posted @ 2017-06-21 09:32 青玉伏案 阅读(1253) 评论(0) 推荐(3) 编辑
摘要:ReactiveCocoa这个框架是做什么用的本篇博客就不做过多赘述了,什么是“响应式编程”也不多聊了,自行Google吧。本篇博客的主题是解析ReactiveCocoa框架中的核心模块ReactiveSwift中的两个核心类的实现,也就是对Event和Observer这两个类进行解析。之所以把这两 阅读全文
posted @ 2017-06-19 10:36 青玉伏案 阅读(2635) 评论(1) 推荐(3) 编辑
摘要:今天博客中的Alamofire源码的版本是以3.4版本为例。上篇博客系统的对NSURLSession相关的东西进行了详细的解析,详情请看《详解NSURLSession》,为了就是给本篇博客打下基础。因为AlamoFire就是对NSURLSession及其相关的东西进行了进一步的封装,让网络请求使用起 阅读全文
posted @ 2016-08-08 09:57 青玉伏案 阅读(5931) 评论(1) 推荐(5) 编辑
摘要:今天博客的主题不是Alamofire, 而是iOS网络编程中经常使用的NSURLSession。如果你想看权威的NSURLSession的东西,那么就得去苹果官方的开发中心去看了,虽然是英文的,但是结合代码理解应该不难。更详细的信息请移步于苹果官方介绍URL Loading System,网上好多i 阅读全文
posted @ 2016-08-01 09:15 青玉伏案 阅读(4098) 评论(0) 推荐(7) 编辑
摘要:Masonry是iOS在控件布局中经常使用的一个轻量级框架,Masonry让NSLayoutConstraint使用起来更为简洁。Masonry简化了NSLayoutConstraint的使用方式,让我们可以以链式的方式为我们的控件指定约束。本篇博客的主题不是教你如何去使用Masonry框架的,而是 阅读全文
posted @ 2016-07-11 09:48 青玉伏案 阅读(12554) 评论(8) 推荐(12) 编辑