一瓜技术

其他

Swift 2021 生态调研报告

https://github.com/apple/swift-evolution/blob/master/proposals/0268-didset-semantics.md[10]SE-0271:
2021年4月22日
其他

谈 UIKit 和 CoreAnimation 在 iOS 渲染中的角色(上)

动画的本质是什么?首先思考一下,一个几何在屏幕上的位置移动动画,本质是什么?本质是在时间的起点和终点的过程里,每一次屏幕刷新,某个物体的位置做一点点均匀的移动,人眼就会认为它在均匀的移动。比如
2021年1月18日
其他

UIView 动画降帧探究

使用率的情况,可以将这些指标作为帧率优化的结果指标。降帧方案在调查降帧方案之前,先回顾一下我们的最终目的:调研多种动画实现方法,选择可以控制或者降低渲染帧率的方式,重新实现已有动画。进而达到降低
2020年11月24日
其他

4. Podfile 的解析逻辑

https://www.objc.io/issues/6-build-tools/build-process/#controlling-the-build-process[4]Build
2020年9月16日
其他

3. CocoaPods 命令解析 - CLAide

中,类永远是开放的,你总是可以将新的方法加入到已有的类中,除了在你自己的代码中,还可以用在标准库和内置类中,这个特性被称为
2020年9月2日
其他

Ex1. CocoaPods 中的 Ruby 特性之 Mix-in

上面说到,我们需要提供一种“受限制的多重继承”的特殊的继承方式,我们将这种继承简化称呼为规格继承。简单来讲,规格继承就是指不但会将方法名继承下去,并且可以定义某些继承方法的默认实现。
2020年8月26日
其他

2. 整体把握 CocoaPods 核心组件

对于组件的拆分粒度是比较细微的,通过对各种组件的组合达到现在的完整版本。这些组件中,笔者的了解也十分有限,不过我们会在之后的一系列文章来逐一介绍学习。
2020年8月17日
其他

为什么使用汇编可以 Hook objc_msgSend(下)- 实现与分析

寄存器,因为它的下层实现是通过这些通用寄存器来做的。所以为了恢复之前的上下文,我们就再一次的利用栈来保存一下这两个通用寄存器,在正式调用pre_objc_msgSend
2020年8月5日
其他

1. 版本管理工具及 Ruby 工具链环境

的目标是为我们提供一个更加集中的生态系统,来提高依赖库的可发现性和参与度。本质上是为了提供更好的检索和查询功能,可惜成为了它的问题之一。因为
2020年6月11日
其他

iOS 渲染原理解析

光栅化的主要目的是将几何渲染之后的图元信息,转换为一系列的像素,以便后续显示在屏幕上。这个阶段中会根据图元信息,计算出每个图元所覆盖的像素信息等,从而将像素划分成不同的部分。
2020年5月27日
其他

一次关于 Swift 在 iOS 生态圈里的现状调研

第三梯队:以美团,京东为代表的一些公司,在这方面还没有开展相应的工作或者开展的还比较少,他们目前可能更关注的还是在解决自身业务发展的问题,例如动态化,中台建设,容器化等方面的技术积累与战略部署。
2020年4月30日
其他

为什么使用汇编可以 Hook objc_msgSend(上)- 汇编基础

是我写的一个专题。在大厂的各路优化方案中,只是告诉了我们为了达到目的怎么去做,但是并没有说这个方案的本质原因是什么。这个专栏就是为了格物致知,从原理层面来讲述方案背后的原理。
2020年4月15日
其他

《从一到无穷大》中的程序思维

https://www.researchgate.net/publication/2119159_Mertens'_Proof_of_Mertens'_Theorem
2020年3月16日
自由知乎 自由微博
其他

为什么 Debug Information Format 改为 DWARF 可以提高编译速度?

是我新写的一个专题。在很多大厂的各路优化方案中,只是告诉了我们为了达到目的怎么去做,但是并没有说这个方案的本质原因是什么。这个专栏就是为了格物致知,从原理层面来讲述方案背后的原理。
2020年3月9日
其他

一次让刷新控件好玩起来的尝试

,它承担了两个重要的工作,一个是刷新控件的逻辑,一个是游戏界面的切换逻辑,这两个工作有一定的内在联系,你可以拆分成两个模板,也可以整合到一个模块中,就像代码里的做法,我的方案并不是一个最佳解决方案。
2020年1月22日
其他

从拓扑排序到 Carthage 依赖校验算法

对这道题目来归纳一下整个构思的流程。首先我们知道了所有的课程有一个先修依赖关系,所以通过图来描述这种关系。再次我们了解如果当这个有向图有回路的时候,则无法完成全部课程,结果就应该输出
2020年1月14日
其他

立志欲坚不欲锐 - 2019 年小结

说干就干就是我们的风格。学习运营技术、学习增长方式、沟通多个号主相互引流,这一切的背后其实都是运营的方法论。下图是公众号自七月(开始运营)以来到现在的粉丝增长情况,整体也在朝着一个增长态势攀升。
2020年1月2日
其他

2019 年文章汇总

这几大分类。希望这些文章可以对大家有所帮助,同时汇总起来也可以激励本公众号的维护人员持续带来优质创作。
2019年10月9日
其他

Swift tips 016 - Avoiding mocking UserDefaults

https://medium.com/ios-os-x-development/shared-user-defaults-in-ios-3f15cd2c9409
2019年10月8日
其他

客户端不用的算法系列:二分搜索不仅仅是查找值(下)

这两个题型其一是经典的二分搜索的场景,基本上是所有教科书上都是二分搜索的提出场景。所以在文章中并没有详细的结束其过程,只推荐了边界判断条件
2019年9月30日
其他

Swift Tips 015 - Using variadic parameters

https://github.com/JohnSundell/SwiftTips#15-using-variadic-parameters
2019年9月29日
其他

Swift tips 014 - Referring associated values as closures

就像代码截图里的标题所说一样,这里我们将枚举关联值当做闭包来使用,所以到这里,你的疑惑是不是得到了解答呢?
2019年9月26日
其他

客户端不用的算法系列:二分搜索不仅仅是查找值(上)

其中比较麻烦的是,我们如何实现这个过程?二分查找的代码上网搜可以搜出很多种,但是当我们自己写代码的时候为什么总是处理不好循环的判断条件和大小判断的条件?其实是没有去发现其中的规律。
2019年9月25日
其他

Swift Tips 013 - Using === to compare objects by instance

https://github.com/JohnSundell/SwiftTips#13-using-the--operator-to-compare-objects-by-instance
2019年9月20日
其他

Swift Tips 012 - Calling initializers and passing as closures

闭包作为默认参数,或许你觉得这么写也还行,但在实际开发过程中,这种用闭包做参数的写法并不一定是种优雅的写法,这里举一个例子:
2019年9月17日
其他

客户端基本不用的算法系列:素数筛法

开始,把每一个数的倍数都剔除并标记成合数(因为合数肯定是有素因子的),这样列表中保存着的都是没有素因子的数,就是我们想要的质数了。
2019年9月16日
其他

客户端基本不用的算法:线段树实战要点

问题》,通过区间和的问题场景,已经学习了线段树的基本结构,以及其单点更新和区间查询的操作。但是在解
2019年9月14日
其他

客户端基本不用的算法系列:快速幂

幂运算是我们平时写代码的时候最常用的运算之一。根据幂运算的定义我们可以知道,如果我们要求
2019年9月13日
其他

GGTalk 中有哪些知识 - 线段树基础与 RMQ 问题

任何数据结构都要从它的构造开始说起。以往我们想当然的认为,树状结构都应该以链式数据来存储。但其实二叉树使用数组描述可能更加简单明了。由于线段树也是二叉树,所以以下所有的表示方式我都使用数组来描述。
2019年9月13日
其他

客户端基本不用的算法系列:RMQ问题 - ST 算法

甚至是主席树(额,我什么都没有暗示,业界就是这个名字)。好了今天我们从两个角度来解决这个问题。ST
2019年9月13日
其他

客户端几乎不用的算法系列:复杂度估算的土方法

想必大家都知道很多算法书上面的复杂度计算基础的”第一章节“,长到你不想看。但是不看吧又觉得失去了什么。所以这篇文章就来说说这个复杂度有没有什么通俗易懂的土方法来计算。
2019年9月13日
其他

Swift Tips 011 - Structuring UI tests as extensions

https://github.com/JohnSundell/SwiftTips#11-structuring-ui-tests-as-extensions-on-xcuiapplication
2019年9月11日
其他

Swift Tips 010 - Avoiding default cases in switch statements

https://github.com/JohnSundell/SwiftTips#10-avoiding-default-cases-in-switch-statements
2019年9月9日
其他

Swift Tips 008 - Passing functions & operators as closures

https://github.com/JohnSundell/SwiftTips#8-passing-functions--operators-as-closures
2019年9月6日
其他

Swift Tips 009 - Using the guard statement in different scopes

https://github.com/JohnSundell/SwiftTips#9-using-the-guard-statement-in-many-different-scopes
2019年9月4日
其他

Swift Tips 007 - Using #function for UserDefault key consistency

https://github.com/JohnSundell/SwiftTips#7-using-function-for-userdefaults-key-consistency
2019年9月3日
其他

Swift tips 006 - Using a name already taken by standard library

https://github.com/JohnSundell/SwiftTips#6-using-a-name-already-taken-by-the-standard-library
2019年9月2日
其他

GGTalk 中的算法知识 - 01背包问题

我们继续从上面的背包来看这个问题。如果我们将物品的体积当做题目的分数,物体的价值等于物体的体积,也就是分数在这个场景下既是体积,也是价值。背包的大小等于试卷的总分值,就转化成为了一道
2019年9月1日
其他

Swift Tips 005 - Using Wrap to implement Equatable

https://github.com/JohnSundell/SwiftTips#5-using-wrap-to-implement-equatable
2019年8月30日
其他

Swift Tips 004 - Using typealiases to reduce method signatures

https://swiftgg.gitbook.io/swift/swift-jiao-cheng/01_the_basics
2019年8月29日
其他

客户端基本不用的算法系列:矩阵的递推关系分析

我们专题性地研究了快速幂算法,直至现在应该将在计算机领域中所有场景的快速幂问题全部覆盖到了。但其中让你受益最大的,仍旧是在数字领域中的快速幂取模算法,所以我个人的建议是矩阵场景下无需更多的关注。
2019年8月28日
其他

《编译原理之美》课程种草

表达式优先级从低到高:赋值运算、逻辑运算(or)、逻辑运算(and)、相等比较(equal)、大小比较(rel)、加法运算(add)、乘法运算(mul)和基础表达式(pri)。
2019年8月27日
其他

Swift Tips 003 - Referencing external or internal parameter name

https://swiftgg.gitbook.io/swift/swift-jiao-cheng/06_functions[3]
2019年8月26日
其他

Swift Tips 002 - Using auto closures

https://swiftgg.gitbook.io/swift/swift-jiao-cheng/07_closures#autoclosures[3]
2019年8月24日
其他

客户端基本不用的算法系列:矩阵快速幂

冬瓜的技术号,移动端技术与算法相关技术文章。只发原创,只发干货,只发硬核文章!
2019年8月23日
其他

Swift Tips 001 - Namespacing with nested types

https://github.com/JohnSundell/SwiftTips#1-namespacing-with-nested-types[2]
2019年8月22日
其他

客户端基本不用的算法系列:快速幂取模

这么一个操作符,在各大编程书中称之为“取余运算”。在程序设计和抽象数学领域,我们管这个操作叫做:取模运算。
2019年8月17日
其他

客户端基本不用的算法系列:快速幂

幂运算是我们平时写代码的时候最常用的运算之一。根据幂运算的定义我们可以知道,如果我们要求
2019年8月15日
其他

《Swift核心技术与实战》课程值不值得买?

使用经验),并且个人习惯是看视频学习,那就有价值。否则的话不太建议。理由:课程内容不深,视频学习比阅读学习的速度差距很多,快速学习可能看视频不太适合。当然有的人的学习方式是看视频,这个因人而异。
2019年8月13日
其他

客户端几乎不用的算法系列:复杂度估算的土方法

想必大家都知道很多算法书上面的复杂度计算基础的”第一章节“,长到你不想看。但是不看吧又觉得失去了什么。所以这篇文章就来说说这个复杂度有没有什么通俗易懂的土方法来计算。
2019年8月4日