从App的发版周期些许可以看到App背后团队的运作状态,也些许体现了团队对App质量、用户体验的把控程度。那么本文带领大家一起看看那些“优秀”的App的发版情况。
...
在这段时间(2018年下半年)断断续续的空闲时间里,实现了一些“突如其来”的“伪需求”想法。既然是“伪需求”,那就开源了吧,万一是有益于大家的呢。
...
过去两年多的时间里,我写了一些iOS应用启动性能优化的文章,这篇文章整理个简单的目录。
...
Code Friend 是一款Xcode Extension,提供了JavaScript的接口,用户可基于这个App简单快捷开发出Xcode插件工具。
官方地址:https://qvcodefriend.github.io/
Mac App Store 地址:https://itunes.apple.com/cn/app/code-friend/id1441249580
...
性能优化的开发中经常需要获取线程标识,这篇文章简单罗列和对比了四种获取线程标识的方法。
...
前段时间的《初步探索LaunchScreen》使用IDA和lldb探索了下部分SpringBoard。这篇文章再用AppleTrace初步探索下SpringBoard。AppleTrace 目前使用了HookZz来inline hook objc_msgSend。可用于分析每个Objective C的方法耗时,和调用关系。
...
USB Keyboard 原名 QVKeyboard,改名或许是为了更容易记录和搜索
USB Keyboard 是一个输入法应用,通过USB连接iPhone到Mac后,可以实现在Mac端打字,iPhone上输入。
...
LRU(Least recently used)是一种缓存更新策略,即当缓存数目达到最大容量、或者某个条件时,移除掉最近最少使用的元素。微信前不久开源了一个客户端Key-Value存储库MMKV https://github.com/Tencent/MMKV ,其中实现了这样一个十分精简的LRU缓存(LRUCache类)。
...
tl;dr
点击App图标后,iOS系统的桌面SpringBoard会先创建LaunchScreen,然后创建App对应的进程。那么可以这样认为:LaunchScreen的加载是不占用App进程自身感知到的启动时间的。LaunchScreen是SpringBoard为了用户体验,提前在进程启动之前展示给用户看的。
当然严格来说,LaunchScreen的加载占用了系统的CPU等资源,也会对App的启动时间有一定的影响。
...
FastImageCache 是一个使用空间换时间的加速图片加载/渲染的库。官方(https://github.com/path/FastImageCache)的README比较详细的解释了原理。这篇文章就结合源码再次温习一遍最核心的部分。
...