很长一段时间以来,我一直在犹豫是否要切换到 SwiftUI,但当我意识到是时候了,我决定付诸实践。当然,第一个项目要简单得多,并且使用我所在国家/地区货币的汇率。所有这些精彩都在状态栏中并存,让人们可以在实践中了解 SwiftUI 在 macOS 开发中的酷炫程度。作为一个多年的开发者,对我来说,放下架构、编写逻辑和网络层并不困难,我总是把大部分时间花在用户界面的 UI 元素的实现上。在这里,凭借适当的技巧,您可以简单地添加控件,开箱即用的一切看起来或多或少都是正常的。
当然,您可以通过不同的方式学习一种新乐器,但是在旅途中学习它和看到培训项目找到它的听众是完全不同的事情。第二个项目也应该进入应用程序商店,但由于我打算在未来基于图形制作一个很酷的项目,所以决定为 Xcode 制作一个资产生成器。有了图形,你就可以工作了,让它变得不那么困难。使用图形并不像看起来那么难。
最初,计划是为标准图标创建资产,并且有一段时间都是这样,但在这个过程中我意识到有很多相同的应用程序,如果我要制作一个应用程序,它需要脱颖而出。浏览 AppStore,我发现了几个本质上很简单但功能各不相同的应用程序。决定将选定的应用程序等进行组合。
有人可能会说现在在 SwiftUI 中编写用于生产的应用程序还为时过早,您必须集成几乎一半的 AppKit 或 UIKit 控件。导航无法正常进行等等。我的上一个项目完全使用 SwiftUI 实现,并且不必使用旧遗留的单个元素。顺便说一下,一篇相当有趣的文章“ AppKit 完成了! ”启发了我在实践中尝试 SwiftUI。”,但作者在他的项目中部分使用了 legacy。至少,这篇文章让我觉得这个工具已经成熟,可以在开发中试用了。
有什么困难吗?当然!比如在项目中使用添加的图片,本质上不是同质的,有的地方需要图片的透明度,有的地方需要去掉。通常,这可以通过在 AppKit 中渲染视图来解决,然后根据需要对其进行处理,然后再次渲染它。虽然我想避免使用任何遗留问题,但最终还是通过使用 NSViewRepresentable 解决了问题。我不得不变通,因为所有这些操作都是在原始图像的表示层上执行的。
例如,这里您需要保存透明度并且输出应该是一组图像,因为它们最初位于原始图像中:
并且在这里,你需要丢弃alpha通道,否则,当你尝试上传带有此类图标的项目时,项目资源会出现错误:
在导航方面仍然存在一些小困难,或者更确切地说,在处理不同的数据集时更换右侧面板中的视图。没什么大不了的,我设法解决了它们并掌握了 @ViewBuilder 以及其他几个修饰符。
该应用程序的第一个版本不是很成功,我理解这一点并希望改进该项目。这就是为什么我在项目中添加了为 android 和颜色生成器生成图标的功能。几乎在创建颜色生成器之后,我立刻想到了让用户有机会随机生成调色板的想法。就个人而言,这听起来像是一个很棒的功能,并且符合该项目的主要概念。
这就是颜色选择器生成器的由来:
我想收集有关应用程序可用性的真实反馈。无论谁决定将其用作准备项目资产的首选应用程序,请通过电子邮件将您的意见和建议写给我。时间过去不久,但已经有人觉得该项目需要进一步发展。
在发布应用程序并努力开发它之后,我意识到我想知道我是否设法推广了该应用程序,因为图形项目在时间上发生了一点偏移,将在它之前编写另一个工具来帮助我导航不仅在本地商店,而且要了解不同国家/地区的商店中发生的情况并接收特定时期的统计数据。因此,我在 SwiftUI 上征服桌面应用程序的旅程的延续应该很快就会以文章的形式出现在这里。