iOS-高性能

UIApplicationDelegate 中两个值得注意的地方

这个知识点能够用于面试,以及对于一些对初始化时机有要求的 SDK 配置的 bug 排查。 答案是会的,应用从 active 状态至 suspended 状态,是必须通过 background 状态的,咱们应该按照官方规范,在 applicationDidEnterBackgro…

git

iOS监控 - 野指针定位

当所指向的对象被释放或者收回,可是对该指针没有做任何的修改,以致于该指针仍旧指向已经回收的内存地址,此状况下该指针便称野指针

github

iOS应用瘦身方法思路整理

前段时间注意到咱们APP的包大小超过100MB了,因此随口跟吕老板说了下可否采用字体文件(.ttf)替代PNG图片,吕老板对应用瘦身很感兴趣所以让我作下技术调研。这篇文章主要是将咱们的各个技术方案的思路作一下整理和总结,但愿对你们有所帮助。

面试

3 分钟搭建 App Store 动态审核开关

我曾经在一篇文章中写过,但愿你们不要欺骗 App Store Review Team,可是近来的 Uber 审核事件,以及发生在我我的身上的 审核团队不对个人长篇详细辩解做正面回答,且无限期推迟个人 App 审核的事情发生后,我完全对这个团队没有了尊重,做为能力有限的我的开发者…

算法

从 YYCache 源码 Get 到如何设计一个优秀的缓存

本文将结合 YYCache 的源码逐步带你们找到答案。 YYCache 是一个线程安全的高性能键值缓存(该项目是 YYKit 组件之一)。YYKit 是在 2015 年发布到 Github 的,因为其代码质量很高,在短期内就收获了大量的 Star(目前已经 1w+ Star …

编程

iOS 多网络请求的线程安全

iOS 网络编程有一种常见的场景是:咱们须要并行处理二个请求而且在都成功后才能进行下一步处理。下面是部分常见的处理方式,可是在使用过程当中也很容易出错: DispatchGroup:经过 GCD 机制将多个请求放到一个组内,而后经过 DispatchGroup.wait() 和 …

设计模式

一种避免 iOS 内存碎片的方法

在和服务器传输文本的时候,可能会由于某一个字符的编码格式不一样、少了一个字节、多了一个字节等缘由致使整段文本都没法解码。而实际上若是能够找到这个字符,而后替换成其余字符的话,那整段文本其余字符都是能够解码的,用户在UI上也许能猜想出正确的字符是什么,这种体验是好于用户看到一片空白…

数组

浅析移动蜂窝网络的特色及其省电方案

蜂窝网络的架构相似于咱们常见的蜂窝,是由一个个基站组成的蜂窝,理想状态中咱们的蜂窝网络应该是下面这个样子的。固然,现实生活中网络资源分布并无这么的均匀。 Wi-Fi 是一种无限局域网技术,Wi-Fi 信号须要有线网来提供,好比咱们家里经常使用的宽带上网,就是将有线信号转换成 Wi…

缓存

我认为的 Runloop 最佳实践

关于 Runloop,这篇文章写的很是棒,深刻理解RunLoop。我写这篇文章在深度上是不如它的,可是为何还想写一下呢? Runloop 是一个偏门的东西,在个人工做经历中,几乎没有使用到它的地方,在我当时学习它时,由于自己对 iOS 整个生态了解不够,不少概念让我很是头疼。…

安全

关于线上检测主线程卡顿的问题

你们好,第一次在掘金这个平台写东西。若有错误,但愿指出。 关于runloop是什么我就很少说了,由于网上有不少关于这个的文章,最推荐的仍是YYKit的做者博客上那篇。 PingConfig 只是我随便写的一个用来存储runloop的状态和信号量的自定义类,其中的结构以下:恩,只…

服务器

[[译] Swift 上的高性能数组](https://juejin.im/entry/59e84...

对于平常应用开发,考虑数组性能是一件不会常常发生的事。若是你正在实现须要扩展的算法,也许高性能数组就能出如今你脑海中。也许你正在写更偏向于底层的代码,好比一个框架,这时任何的性能缺陷都会产生复合效应。当数组性能变得重要的时候,了解一些优化数组性能的方式也是很不错的。让咱们来深刻…

神奇的 BlocksKit (一)

本篇文章很是长,由于 BlocksKit 的实现仍是比较复杂和有意的。这篇文章不是为了剖析 iOS 开发中的 block 的实现以及它是如何组成甚至使用的,若是你想经过这篇文章来了解 block 的实现,它并不能帮到你。

iPhone安装包的优化

这是一次安装包大小优化的实践。
随着业务的增长,工程中引入愈来愈多的业务代码和第三方库, 整个安装包愈来愈大。以今日头条5.7.5为例 最近几个版本的ipa大小以下: 5.7 -> 72.2M (+0.8M) 正常业务增量 5.6 -> 71.4M (+14M) 主要缘由:接…

如何提升代码的可读性? - 读《编写可读代码的艺术》

一. 为何读这本书 不少同行在编写代码的时候每每只关注一些宏观上的主题:架构,设计模式,数据结构等等,却忽视了一些更细节上的点:好比变量如何命名与使用,控制流的设计,以及注释的写法等等。以上这些细节上的东西能够用代码的可读性来归纳。 不一样于宏观上的架构,设计模式等须要好几个类…

YYCache 设计思路 | Garan no dou

iOS 开发中总会用到各类缓存,最初我是用的一些开源的缓存库,但到总以为缺乏某些功能,或某些 API 设计的不够好用。YYCache (https://github.com/ibireme/YY... 是我新造的一个轮子,下面说一下这个轮子的设计思路。

玩转iOS开发:实战开发中的GCD Tips小技巧 (一)

看到结果, 挂了, 为何呢? 按道理来讲, 外部是异步, 而里面是同步是不会卡死的, 其实在以前的文章里咱们就提到过. 1.要么把第二个任务变成异步执行. 2.要么把两个任务都变成异步执行. PS: 这里不要在同步执行嵌套串行队列, 哪怕你是分开小方法里也是同样的. 以前咱们…

iOS App 启动时间优化

iOS App 启动时间优化

玩转iOS开发:实战开发中的GCD Tips小技巧 (二)

上一篇, 咱们简单的讲了一些使用GCD的小技巧, 若是没有看的朋友, 能够去玩转iOS开发:实战开发中的GCD Tips小技巧 (一)看. 此次, 咱们继续讲解小技巧. 这样子, 咱们就能够把这个网络请求给打包起来, 但这里要注意一下, 不能同时调用两个dispatch_gro…

iOS应用程序性能管理(APM)

iOS应用程序性能管理(APM)

【译】处理 iOS 中复杂的 Table Views 并保持优雅

Table views 是 iOS 开发中最重要的布局组件之一。一般咱们的一些最重要的页面都是 table views:feed 流,设置页,条目列表等。 每一个开发复杂的 table view 的 iOS 开发者都知道这样的 table view 会使代码很快就变的很粗糙。这样…

相关文章
相关标签/搜索