iOS音频:MP3文件结构

MP3 (MPEG-1, 2, 2.5 Audio Layer III)是常见的音频编码方案,可以支持8-48kHz采样率、8-320kbps的比特率。MP3有大量的软硬件支持,兼容性好,压缩比也比较高,尤其适合于128kbps以上的音乐音频编码。

iOS音频:MP3文件结构

iOS音频:数字音频基础

iOS音频:数字音频基础

iOS性能优化:MetricKit

MetricKit是苹果提供的App内应用性能检测框架,覆盖了CPU、GPU、磁盘以及运行数据等。

iOS性能优化:MetricKit

快速清理Mac的缓存

对于软件的缓存文件,macOS一概归为为“其他文件”,这一点让人很抓头。本来不是很麻烦的事情,CleanYourMac又收费。。

快速清理Mac的缓存

iOS开发:苹果支付测试

WWDC 2020苹果的Xcode12开始可以支持StoreKit支付的模拟测试,大概是试图减少开发者在测试调试上面的困扰。StoreKit一直遭人遭人诟病,毕竟将责任交由环境复杂的终端,是苹果支付问题的起点。

iOS开发:苹果支付测试

MessagePack简介

It’s like JSON. but fast and small.

MessagePack简介

虚拟内存与Page Fault

实际上Page Fault并不是如其名的一个“错误”,而只是访问内存分页的一种事件方式。

缺页中断(英语:Page Fault)又名页缺失、页故障等,是当进程试图访问内存数据、但该内存地址对应的物理内存尚未加载时,由CPU的内存管理单元MMU所发出的中断。

虚拟内存与Page Fault

APNS远程推送模拟

如果想测试应用的消息推送的逻辑,在此之前我们只有一个选择,就是使用真实设备以及苹果推送服务进行测试。在真正的测试发送通知之前,我们需要将设备id添加到开发者后台,需要更新授权文件,需要配置推送证书,重新编译App安装到设备上以及获取设备的推送令牌。

APNS远程推送模拟

JSON Web Token

OAuth2在移动端实践是不安全的,有不少的产品(包括某些上亿用户量的App),也会出现将client_secret保存在客户端的情况。钥匙丢了、锁却不能换,对于项目而言无疑是很被动的。

因此需要在终端或者整体方案设计上,考虑规避这类问题。

JSON Web Token

SQLite的线程模型、事务与并发

SQLite的线程模型、事务与并发