Everything you care about in one place

Follow feeds: blogs, news, RSS and more. An effortless way to read and digest content of your choice.

Get Feeder

onevcat.com

OneV's Den

Get the latest updates from OneV's Den directly as they happen.

Follow now 136 followers

Latest posts

Last updated 4 days ago

SwiftLog 和 OSLog:选择、使用以及坑

5 days ago

如果你还在用 NSLog 或者 print 打 log,那也许这篇文章正适合你,可以帮你转型到新的 log 方式。如果你已经在使用 OSLog 的相关功能,那也许本文可以帮助你加深理解,以及找到一些“进阶”用法。 选择:SwiftLog 和...

深入理解 Observation - 原理,back porting 和性能

8 months ago

SwiftUI 遵循 Single Source of Truth 的原则,只有修改 View 所订阅的状态,才能改变 view tree 并触发对...

一些关于开发的杂谈话题 - 测试

about 1 year ago

最近接手了一些陈旧项目的维护工作,需要把一部分质量很烂的代码进行重构甚至重写。在这个过程期间,我也有机会对一些开发中比较重要的而且通用的知识进行了一点重新的思考和整理,在这里想把它们用个两三篇文章,以杂谈的方式记录一下。这些内容在我刚入门程序开发的时候困扰过我一段时间,所以虽然可能对于已经有多年经验的大佬们用处不大,但是希望新入行的同学们能通过这些话题得到一些启发,如果能减少走弯路的时间,那就更好了。 今天的第一个话题是有关测试的。在以前,我也写过一些关于测试的文章,不过更多的还是对某个特定框架的使用。我自己本身也在很长一段时间内保持了给包括框架和 app 写测试的习惯,并来回倒腾过不少不同风格的测试。在这篇短文里,我想对一些基本的问题和想法的变化进行解释。 为什么要写测试?你会给项目和代码写测试吗? 这是一个每次我去参加各种技术分享会,在结束后的自由交流环节经常会被问到的问题。 我很理解由于工期紧张、需求变动频繁等原因,导致的对测试有意无意的忽视。但在这里,我还是想给出一个关于写测试的理由的答案。如果整篇文章只有一句话值得被记住,那就是: 合理的测试保证了开发者的生活...

不知所谓的 2022 年终总结

over 1 year ago

其实随着年龄增长,总感觉最近每年都很平淡,也几乎没有什么肉眼可见的进步。再加上疫情到了第三年,自己又长期在宅工作,无形中少了许多和这个世界接触的机会,更让自己的思想越来越僵化死板。不知道是不是因为长年在日本这种国度的关系,从感觉上来说越来越觉得这个世界固化住了。一种即视感萦绕在周围,自己却没有什么新思路,也找不到突破的方式。如何才能在这种情况下继续进步,想来应该会成为今后重要的课题。 这篇年终总结一下笔,居然发现自己整一年都脑袋空空,实在是很不应该。既然没有什么特别想要写的,那就还是先按照每个月挑选一张照片配上说明,来简单回顾一下这一整年吧。一是抒发一下心绪,二来也算是一种见证。最后阶段会依照惯例补充一些今年的好物、动漫和游戏。 如果硬要说自己对比去年有什么不同的话,大概两鬓新增的白发在寒风中所诉说的故事就是一切了。 图说 一月 姐妹两人操作香菱,帮助爸爸在璃月大地上做任务打工升级。 电子游戏早已是成熟的第九艺术,顶级的游戏必然有着顶级的图像、配乐以及故事。游戏早已是我人生中无法抹掉的印记。相比于用一些冰冷的法律法规,设置重重阻碍来限制她们的游戏时间,还不如多多引...

Swift 正则速查手册

over 1 year ago

Swift 5.7 中引入了正则表达式的语法支持,整理一下相关的一些话题、方法和示例,以备今后自己能够速查。 总览 Swift 正则由标准库中的 Regex 类型驱动,需要 iOS 16.0 或 macOS...

Xcode 中使用 SPM 和 Build Configuration 的一些坑

over 1 year ago

TL;DR 当前,在 Xcode 中使用 Swift Package Manager 的包时,SPM 在编译 package 时将参照 Build...

TCA - SwiftUI 的救星?(四)

almost 2 years ago

这是一系列关于 TCA 文章的最后一篇。在系列中前面的几篇里,我们简述了 TCA 的最小 Feature 核心思想,并研究了绑定和环境值的处理,以及 Effect 角色和 Feature 组合的方式等话题。作为贯穿整个系列的示例 app,现在应该已经拥有一个可用的猜数字游戏了。这篇文章会综合运用之前的内容,来看看和...

TCA - SwiftUI 的救星?(三)

about 2 years ago

在上一篇关于 TCA 的文章中,我们看到了绑定的工作方式以及 Environment 在管理依赖和提供易测试性时发挥的作用。在这篇文章中,我们会继续深入,来看看 TCA 中的两个重要话题:Effect 角色到底是什么,以及如何通过组合的方式来把多个小 Feature 组合在一起,形成更加复杂的 UI 结构。...

2021 年终总结

over 2 years ago

早晨拉开窗帘,被挡住的阳光终于像是冲开了壁障一般,肆意铺在桌面上。但是窗外被风吹得摇摇晃晃的树枝,俨然是在诉说着刚刚过去的这个夜晚是何等难熬。对它们,对我们,这个冬天似乎比以往都要寒冷,大家都盼望着春天快点到来。 习惯性地打开电脑,习惯性地泡上咖啡,突然想起已经实在是到年底了。去年的年终总结被我硬生生拖到了今年,而今年我也不想再如故蹉跎。在屋子里久了,脑子显然会不清醒,于是我决定披上外套,出门到院子里,呼吸一点新鲜空气。顺便顶着这冬日的寒风的清醒,来捋一捋今年的思绪。当然,在最后我也会整理一下今年看过的书单、动漫和玩过的游戏,算是历来年终总结的传统节目。 冬日寒风? 关于生活 疫情虽然不像去年那么热了,但也逃不出生活的主旋律之一。 金毛大统领曾经曰过“病毒会奇迹般地消失”,他在说这句话的时候,应该没有想到这个预言居然会在地球另一边的一个小岛上实现。前段时间日本疫情突然好转,据说研究团队给出的原因是 nsp14 变异导致病毒自我灭绝。不过我自己左看右看,其实应该也还是疫苗打得够集中,民众戴口罩够自觉,从而瞬间形成的免疫屏障所带来的结果。最近几天的感染数字其实又在抬...

TCA - SwiftUI 的救星?(二)

over 2 years ago

在上一篇关于 TCA 的文章中,我们通过总览的方式看到了 TCA 中一个 Feature 的运作方式,并尝试实现了一个最小的 Feature 和它的测试。在这篇文章中,我们会继续深入,看看 TCA 中对 Binding...

TCA - SwiftUI 的救星?(一)

over 2 years ago

打算用几篇文章介绍一下 TCA (The Composable Architecture),这是一种看起来非常契合 SwiftUI 的架构方式。 四年多前我写过一篇关于使用单向数据流来架构 View Controller 的文章,因为 UIKit...

Swift 结构化并发

over 2 years ago

本文是我的新书《Swift 异步和并发》中的部分内容,介绍了关于 Swift 中结构化并发的相关概念。如果你对学习 Swift 并发的其他话题有兴趣,也许这本书可以作为参考读物。 async/await 所引入的异步函数的简单写法,可以在暂停点时放弃线程,这是构建高并发系统所不可或缺的。但是异步函数本身,其实并没有解决并发编程的问题。结构化并发 (structured concurrency) 将用一个高效可预测的模型,来实现优雅的异步代码的并发。 什么是结构化...