谁是App版本帝

从App的发版周期些许可以看到App背后团队的运作状态,也些许体现了团队对App质量、用户体验的把控程度。那么本文带领大家一起看看那些“优秀”的App的发版情况。 ...
工具

年底了,开源3个小应用

眨眼2018年底了,这一年我离开了曾经以为不会离开的蚂蚁金服,从1月份一时不冷静寻求转岗失败,到4月份纠结要不要离职,到拒掉头条的offer,再到7月底入职美团,以及到现在还没转正(6个月试用期),感觉一年都在飘荡。或许某个名人说过“现实总是以各种方式推动着你成长”。 在这段时间断断续续的空闲时间里,实现了一些“突如其来”的“伪需求”想法。既然是“伪需求”,那就开源了吧,万一是有益于大家的呢。 ...
开源

过去一段时间的iOS启动优化文章目录

过去两年多的时间里,我写了一些iOS应用启动性能优化的文章,这篇文章整理个简单的目录。 ...
性能优化

Code Friend:使用JavaScript开发Xcode Extensions

Code Friend 是一款Xcode Extension,提供了JavaScript的接口,用户可基于这个App简单快捷开发出Xcode插件工具。 官方地址:https://qvcodefriend.github.io/ Mac App Store 地址:https://itunes.apple.com/cn/app/code-friend/id1441249580 ...
工具

线程标识获取方法

性能优化的开发中经常需要获取线程标识,这篇文章简单罗列和对比了四种获取线程标识的方法。 ...
性能优化

使用AppleTrace探索SpringBoard

前段时间的《初步探索LaunchScreen》使用IDA和lldb探索了下部分SpringBoard。这篇文章再用AppleTrace初步探索下SpringBoard。AppleTrace 目前使用了HookZz来inline hook objc_msgSend。可用于分析每个Objective C的方法耗时,和调用关系。 ...
工具

USB Keyboard 通过macOS给iOS打字的输入法应用

USB Keyboard 原名 QVKeyboard,改名或许是为了更容易记录和搜索 USB Keyboard 是一个输入法应用,通过USB连接iPhone到Mac后,可以实现在Mac端打字,iPhone上输入。 ...
产品

MMKV中的简单LRU缓存(LRUCache)

LRU(Least recently used)是一种缓存更新策略,即当缓存数目达到最大容量、或者某个条件时,移除掉最近最少使用的元素。微信前不久开源了一个客户端Key-Value存储库MMKV https://github.com/Tencent/MMKV ,其中实现了这样一个十分精简的LRU缓存(LRUCache类)。 ...
性能优化

初步探索LaunchScreen

tl;dr 点击App图标后,iOS系统的桌面SpringBoard会先创建LaunchScreen,然后创建App对应的进程。那么可以这样认为:LaunchScreen的加载是不占用App进程自身感知到的启动时间的。LaunchScreen是SpringBoard为了用户体验,提前在进程启动之前展示给用户看的。 当然严格来说,LaunchScreen的加载占用了系统的CPU等资源,也会对App的启动时间有一定的影响。 ...
逆向工程

FastImageCache 原理

FastImageCache 是一个使用空间换时间的加速图片加载/渲染的库。官方(https://github.com/path/FastImageCache)的README比较详细的解释了原理。这篇文章就结合源码再次温习一遍最核心的部分。 ...
性能优化