SwiftUI 很有趣,但 NotSwiftUI 更好

        自从 SwiftUI 在 2019 年 WWDC 会议期间宣布以来,社区对 SwiftUI 以其声明性性质引入桌面的核心思想一直存在分歧。

        我自己和其他人还没有接受 SwiftUI 作为编程的真正未来,但我们大多数人已经同意,SwiftUI 所代表的总体思想实际上是编程的发展方式(甚至可能成为新标准)。

问题

        随着时间由我们通过DEVE升打开信惊人的应用程序从而彻底改变了生活。我们彻底改变了食品和产品交付,使其变得如此简单,任何人都可以使用它(甚至您的祖母也可以这样做!),我们使跟踪我们的家务和 ToDo 变得更容易,在遥远国家的外国道路导航从未如此简单和各种翻译应用程序消除了人与人之间的界限。现在,所有这些都是由命令式编程完成的——它告诉程序事情应该如何发生。这很有趣,但有时会变得非常复杂。

        SwiftUI 将声明式编程带到了桌面上,这意味着 - 应该发生什么。这也很有趣,让程序自己处理很多逻辑,同时只给它一套要遵循的规则。虽然在外面很棒,但这可能会导致我们失去对事物的一些控制。

        由于我主要在没有 Storyboard 的情况下开发应用程序(在我看来,这让我可以更好地控制正在发生的事情并帮助我更好地控制 UI 本身),我经常发现自己用多行代码声明了各种 UIKit 元素。例如:

        

        声明 UIButton 元素的常规方法。

        这是一个带有向左箭头 SFSymbol 的按钮的常规声明。我稍后会将它添加到视图中并使用一些约束(这是更多的代码行)来定位它。现在你已经看到,这需要 15 多行代码来编写。现在想象一下有几十种不同的 UI 元素。通过这种方式,您可以轻松访问包含许多此类声明的文件。换句话说,这也会损害可读性,因为它有时会使您的代码“沉重”且令人费解。

解决方案

        我真的很喜欢使用 SwiftUI 声明各种变量的简单方法。只需几行代码,您就可以拥有一个圆圈、一个标签、一个图像、一个按钮等。因此,我着手将 SwiftUI 的美学与常规 Swift (UIKit) 相结合,并创建了一个 Swift 包,其整个前提是允许程序员在保持可读性的同时,用更少的代码行轻松地创建复杂的对象——NotSwiftUI!例如,这里UIButton与通过NotSwiftUI包声明的SFSymbol相同:

        本质上声明一个带有 SFSymbol 的 UIImageView,以视图为中心,给它一个背景颜色并添加一些阴影。

        现在,如果我想将它集中在一个视图中,我只需执行以下操作:

        在视图中居中创建元素。

        这可以轻松地为您节省时间和代码行数,从而可以轻松创建 UI 元素并在保持可读性的同时对其进行定位。

NotSwiftUI 背后的理念

        利用 UIKit 中的所有元素本质上都是 UIViews 的想法,您可以在 NotSwiftUI 的帮助下声明所有 UIKits 元素。同时,它还用于自定义元素,例如添加阴影、更改背景颜色、添加动作、圆角等。

        在具有水平轴的 UIStackView 中堆叠一个正方形和一个圆形(均为 UIViews),将其添加到视图中并对其进行一些自定义。

结论

         是一个有趣的项目,旨在将两个世界结合起来,并允许程序员在纯 Swift (UIKit) 驱动的应用程序中拥有 SwiftUI 的一些功能。主要是试图从一遍又一遍地编写许多乏味的代码行中减轻一些负担,同时保持良好的可读性。虽然它仍处于起步阶段,但随着时间的推移,更多功能将稳步可用。

        在我看来,SwiftUI 还没有为黄金时间做好准备,但它仍然是 Apple 开发生态系统中非常重要的一部分。如果您正在考虑集成各种功能(例如 CarPlay 或 Apple Watch 扩展)、为您的应用程序创建小部件,甚至构建跨平台应用程序,则必须这样做。

        关于NotSwiftUI,请 随时提供建议、反馈,甚至为这个小项目做出贡献。最重要的是,享受和快乐的编程!

七爪网7claw.com

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【课程特点】1、231节大容量课程:包含了SwiftUI的大部分知识点,详细讲解SwiftUI的方方面面;2、15个超级精彩的实例:包含美食、理财、健身、教育、电子商务等各行业的App实例;3、创新的教学模式:手把手教您SwiftUI用户界面开发技术,一看就懂,一学就会;4、贴心的操作提示:让您的眼睛始终处于操作的焦点位置,不用再满屏找光标;5、语言简洁精练:瞄准问题的核心所在,减少对思维的干扰,并节省您宝贵的时间;6、视频短小精悍:即方便于您的学习和记忆,也方便日后对功能的检索;7、齐全的学习资料:提供所有课程的源码,在Xcode 11 + iOS 13环境下测试通过; 更好的应用,更少的代码!SwiftUI是苹果主推的下一代用户界面搭建技术,具有声明式语法、实时生成界面预览等特性,可以为苹果手机、苹果平板、苹果电脑、苹果电视、苹果手表五个平台搭建统一的用户界面。SwiftUI是一种创新、简单的iOS开发中的界面布局方案,可以通过Swift语言的强大功能,在所有的Apple平台上快速构建用户界面。 仅使用一组工具和API为任何Apple设备构建用户界面。SwiftUI具有易于阅读和自然编写的声明式Swift语法,可与新的Xcode设计工具无缝协作,使您的代码和设计**同步。自动支持动态类型、暗黑模式、本地化和可访问性,意味着您的**行SwiftUI代码已经是您编写过的非常强大的UI代码了。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值