與天鬥與地鬥與人鬥其樂無窮
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能解决我们的问题么?看起来不能。
Jan 31
自视程序员中壮士书生,然而审视案台之间,程序员的桌面总归是与文人墨客不同。

程序员的桌面不会总是一壶煮茶对酒当歌,一觞一咏一朝共语小窗前,枸杞茉莉花也不过是保温杯的伴侣,高糖配上咖啡因才是居家必备救心丸,一口下去般醍醐灌顶妙语连珠指尖生。程序员的桌边也没有文竹拂霜根苔色含羞隐,窗寒西岭孤城万山仞门泊东吴一船春色尽,除去工位间绿萝阴长,也就窗口多肉溢满园一抹油绿如蓝哑然青青青江平。自然,文房四宝笔墨纸砚必然也不会出现在我的案头,程序员不会凭君轻点染落笔把身藏惹得全身闻墨香,而是笔记本pad工作站一把梭哈走天下。
Oct 31
遇到这个问题的场景是,在react-native容器里,我们可以通过react-native-canvas绘制图片,并且拿到图片的base64信息。但是怎么把这个base64上传到服务端呢。谷歌搜索一番,一般的做法是通过类似于react-native-fs储存到本地,然后通过给地址的方式从formdata上传文件。由于我们的react-native容器有一套几乎和微信小程序一样的请求api,我们也搜索了小程序一般上传base64文件的方式——通过filesystemmanager储存到本地,然后通过uploadfile桥上传。
Oct 26
最近和不同的Native开发者与Web前端开发者之间聊天,发现大家的意识或者理念上的沟壑比我们想象中的深很多。都说大前端一家人,不过很多事情不同心共体的话,团队上细微的裂痕在项目或者组织动荡期会有非常大的风险导致团队成员的割裂。因此,需求其中的原因与寻找其中发展之道是本文讨论的关键。
Jul 9
背景:我们做一些辅助工具库时,为了对目标库进行最小的入侵,往往会通过方法交换来实现特定的节点完成特定的操作。这样的代码假设我们有一个Utils要入侵A,只需要U依赖A即可。但是偶尔会有这种情况,我们的Utils适配了ABCDE五个库,比如我是一个流量统计库,对这五个库的网络操作进行了抓取。但是我Utils并不适合直接依赖这五个库,而是期望用户实际引用到啥,我就统计啥。

因此,需要实现的是Utils不依赖目标库,也不依赖目标类,来实现方法交换。
Jul 1
在iOS项目开发过程中,我们总是会加入一些开发者工具相关的代码,通过DEBUG/TEST宏或者其他形式防止相关代码引入到线上。但是随着我们做组件二进制化对相关类进行编译后pod沉淀,相关代码的处理就麻烦起来了。

- 首先明确,组件二进制化是iOS工程化的整体趋势,不可阻挡

那对应的,对于有开发者工具区分的二进制pod,我们如何进行管理呢?
Jun 30
上一话http://lrdcq.com/me/read.php/106.htmWidgetKit是从StaticConfiguration入手的,而避开了实际上应该更常用的IntentConfiguration。而理解在WidgetKit中出现的Intent,显然不能按照Siri中的Intent去理解了。在WidgetKit中,Intent更多的是用来呈现长按配置菜单中的选项,简单的来说,Intent是一个配置表。如下图: