iOS 开发

A collection of 14 posts

给程序员的一个忠告:要买就买顶配的 MacBook Pro
iOS 开发

给程序员的一个忠告:要买就买顶配的 MacBook Pro

记得刚开始在宅米的时候,公司配的电脑是 Macbook Air,当时的项目比较小,功能也不算复杂,开发语言也全部采用 Objective-C。虽然当时也想部分采用 Swift 试试水,但是 Swift 当时不是很稳定,大部分开发者都在持观望态度。所以最后也没有和 Swift 一起混编,当时我天真的以为 iOS 开发 8G 内存的 Macbook Air 就能扛得住了,打个包也就至多 10 来分钟的事,趁着打包还能上个卫生间或者喝杯咖啡休息下。

  • Slark
    Slark
iOS 缓存框架 YYCache 源码分析
iOS 开发

iOS 缓存框架 YYCache 源码分析

缓存在很多硬件、软件系统中都有广泛的使用。CPU 靠缓存来提高处理速度,服务器软件靠缓存来提高处理能力。同样在 iOS 中,我们也可以对 “热” 数据进行缓存,比如图片,API,用户配置等等。在开发中,经常会使用一些现成的缓存框架来帮我们做缓存,比如专门缓存图片的 SDWebImage,也可以使用数据库来做缓存,比如 Realm,SQLite。缓存可以有效减少资源的重复获取,减轻服务器压力,提升用户体验。

  • Slark
    Slark
iOS11 使用过期方法可能会导致 SpringBoard 重启
iOS 开发

iOS11 使用过期方法可能会导致 SpringBoard 重启

SpringBoard 是 iOS 管理主屏幕的程序,在越狱比较流行的时候,SpringBoard 经常被用来修改美化桌面等等。但是随着 iOS 系统的完善,很多功能和 API 也都有了,越狱也越来越没有必要了,平时开发中也没怎么接触过 SpringBoard,最近在项目中遇到一个非常诡异的 bug,我们的 App 点击锁屏中的推送,然后解锁手机后,打开 App 会直接导致 SpringBoard 重启。

  • Slark
    Slark
Runtime 基础(一)
iOS 开发

Runtime 基础(一)

Objective-C 是一门动态语言,它把很多在编译时做的事情放到了运行时来处理。由于这个特性,我们可以很灵活的使用 runtime 这个黑魔法来完成一些静态语言做不到的事情,比如使用 JSPatch 给应用打 patch,使用 Mantle 映射 json 和 Model。runtime 是使用 C 和汇编实现的一个运行时库,使得在 C 语言的基础上增加了面向对象的特性,从而有了 Objective-C 这个语言。 Class 和 id

  • Slark
    Slark
使用 carthage 来管理项目依赖
iOS 开发

使用 carthage 来管理项目依赖

在 CocoaPods 出现之前,iOS 开发者必须手动管理第三方库依赖,这些事情不仅没有什么技术含量,而且经常容易出错。对于新手来说,配置工程文件简直让人头疼。CocoaPods 的出现极大的改善了这些状况,它可以自动帮你管理依赖,而且大多数常用的第三方库都支持使用 CocoaPods 来进行安装。开发者终于从这些繁杂的依赖管理中解脱出来,可以把精力专注于应用本身。

  • Slark
    Slark