swiftui

超谈 SwiftUI:探究和实践 “隔山喂牛” 式内建 API 的实现

前言此文为「超谈 SwiftUI」系列的文章,主要输出一些使用 SwiftUI 开发几个 apps 后的一些心得、经验和踩坑记录。希望能帮助到你。本文将剖析 SwiftUI 的一些官方内建 API 可能的实现方式,以及实践如何应用到自己写的自定义 SwiftUI View 上。“隔山喂牛”?在直接解释何为 “隔山喂牛” 式的 API 风格前,先来思考一下,当我们设计一个 View 的 API 的时候,我们到底在设计什么—

swiftui

超谈 Swift:利用 Macros 实现 Swift 版本的 Retrofit

2023 年 Swift 语言和 SwiftUI 都迎来了不少的更新。如果说 SwiftUI 上的更新你大概率可能因为往下兼容性的问题用不上,那么 Swift 5.9 上迎来的 Macros 功能应该能吸引到你的注意:它允许你在编译时根据上下文来生成代码,帮助你减少写重复的相似度过高的代码。Swift Macros 仅仅是帮你生成代码,是一个 ABI 兼容的特性,配合 Xcode 15 即可(当然目前仅是 Beta 版本)并在老项目中使用。如果你不了解

blog

超谈 SwiftUI:配合 CoreGraphics 实现区域截屏功能

此文为「超谈 SwiftUI」系列的文章,主要输出一些使用 SwiftUI 开发几个 apps 后的一些心得、经验和踩坑记录。希望能帮助到你。我的翻译软件 Photon AI Translator 有一个屏幕截图翻译的功能,通过快捷键激活后,会将屏幕画面冻结同时变暗,然后用户可以通过鼠标拖拽屏幕画出一个区域,然后识别里面的文本,然后进行翻译并显示结果。这里的一个核心技术是,如何实现截屏功能?其实这个没有你想象的难。先来剖析一下这个需求,要实现这个功能,按照步骤来,我们需要:截取当前键盘聚焦的屏幕画面,得到一个 Image往当前键盘聚焦的屏幕上绘制上述得到的 Image覆盖一层黑色半透明的遮罩,然后在上面检测手势操作手势操作将会产生一个