遊戲/程序/更新/二次開發/小作品相關發佈
Oct 24
在iOS的学习过程中,我们总会聊到“离屏渲染”,在百度上能搜到的关于离屏渲染的描述都是
什么是离屏渲染. 离屏渲染(offscreen-rendering)顾名思义为屏幕外的渲染,即渲染的结果不会直接呈现到当前屏幕上,而是等待合适的时机才会被显示。
但是每次我问到候选人为什么UIKit会在这种情况下发生离屏渲染,极限是什么,根因是什么,可以避免么这样的问题时,大概率得不到方向正确的答案。毕竟是猜测UIKit的渲染行为,不像是安卓苹果的全闭源策略当然给开发者带来了理解困难。

当然也不全是,通过理解一个自然的GUI框架包含内容/搭建方案,结合苹果提供给我们的已知工具,我们应该可以分析出UIKit离屏渲染的逻辑与基础界面合成行为到底怎么回事。同时也可以通过苹果公开的一些文档进行验证。
Oct 2
CALayer的filters属性能为Layer渲染时添加CoreImage滤镜来做特殊效果。然而因为某些原因,根据苹果文档https://developer.apple.com/documentation/quartzcore/calayer/1410901-filters
Special Considerations
This property is not supported on layers in iOS.
这个功能在iOS上是无法使用的。而在OS X上看起来则是能够轻易的使用:
點擊在新視窗中瀏覽此圖片
Sep 22
我们知道在移动端设备上,GPU环节大多都会采用Tile Based Rendering方案。更具体来说,所有的iOS设备的GPU都采用的Tile-Based Deferred Rendering(TBDR)架构。正好翻阅到一篇WWDC2014的Advanced Graphics And Animation Performance文章对iOS中的TBDR进行了详解,因此针对iOS中Tile Based Rendering的基本情况与可能存在并可以进行的适配方案进行讨论。
Sep 21
最近使用html2canvas时遇到一个文字排版错误的缺陷,虽然html2canvas本身兼容性问题挺多的,但是这个看起来是一个广泛发生的问题,便进行了深入追踪。问题现象如下:
點擊在新視窗中瀏覽此圖片
相关issues包括 https://github.com/niklasvh/html2canvas/issues/2648https://github.com/niklasvh/html2canvas/issues/2696等,挺多的。
Jul 6
随着现在互联网工程无限扩大的趋势,每一个技术方向均在经历各种拆拆拆,模块化解耦的过程,当然客户端也不例外。客户端早在5年前就完成了组件化到模块化这一过程,各种模块化方法层出不穷并在各大项目中落地。然而模块化之后,大家前往配置化的路途上却是相当坎坷,相对于服务端方案,web前端方案来说确实拿不出手。在服务端spring风格的xml配置和注解配置让javaweb服务业务基础搭建效率大大提升,web配置甚至能让运营完成活动落地页的搭建而不关心基建部分,它们的配置化都是革新性的银弹技术方案。而客户端做配置化能成为银弹么?
Jun 22
WWDC20221讲到iOS15在相机部分新增了不少识别相关的功能,一种有一项就是人物聚焦——对应背景模糊。同时,我们排查SDK变化时,注意到CIFilter新增了一个personSegmentationFilter,看起来就是对应这个功能的实现了。不过翻阅文档https://developer.apple.com/documentation/coreimage/cifilter/3750390-personsegmentationfilter?language=objc,苹果真是啥都没有讲。尝试了之后,我得到了能实现人物聚焦(背景虚化)的效果的CIFilter使用方式。
Jun 10
iOS15在UIKit中的改动并不多,其中一大项目是为UIButton新增了UIButtonConfiguration功能,为标准化button组件样式复用增加了更多的可能性。
之前我提过从里氏替换原则的角度,目前我们常用的复用UIButton的方法——继承+约束,其实是不合理的,那UIButtonConfiguration能解决我们的问题么?看起来不能。
May 29
业务客户端开发,在某些业务领域总会遇到高并发问题。这里并不是指的日常访问流量高并发,比如本来应用访问流量大QPS高并不是问题。而是特指的用户业务流程高并发影响大:交易系统订单秒杀如何处理?营销推送同时触达怎么处理?紧急业务状态变更证明处理?当然这些问题在服务端高并发的解决方案中均有涉及,但是随着治理与优化的深入一定会到客户端这边来。同时客户端还有一个问题分发滞后性,假如1个月之后双11我们要提前进行并发优化储备,到双11应用覆盖面能有80%顶天了。

因此本文讨论的是,具有高并发业务特征的客户端,如何在业务开发设计阶段针对这一特点做好开发储备,防范于未然。