2020年我们应该学习UIKit还是SwiftUI

2020年我们应该学习UIKit还是SwiftUI

去年在WWDC19上首次宣布时,SwiftUI感到非常年轻。 它显示了一个有希望的未来,但它在这里和那里都有着粗糙的边缘,很难预测一年后的情况。 一年过去了,这就是我对苹果公司新的声明式UI框架SwiftUI的看法。

差距越来越近

我们对SwiftUI的争论总是像是“您不能在SwiftUI中执行x(UIKit功能)”。 今年,苹果展示了SwiftUI开发的惊人速度。 去年缺少的UI元素已经具有SwiftUI副本,例如UIColelctionView和UITextField已经具有LazyH / VGrid和TextEditor的SwiftUI副本。

头等公民

看来SwiftUI不再只是UIKit的视图了。 现在,您可以使用纯SwiftUI编写整个应用程序。

以下是有效的SwiftUI应用程序代码。

import SwiftUI

@main
struct SwiftUIApp: App {
    var body: some Scene {
        WindowGroup {
            Text("Hello! SwiftUI")
        }
    }
}

上面的代码不仅适用于iOS,而且相同的代码可以构成iPad和Mac应用程序。 您可以完全使用SwiftUI编写多平台应用程序。 似乎SwiftUI的概念比我最初想象的要强大得多。

独家交易

WidgetKit是iOS 14中用于编写Widget的新框架,只能使用SwiftUI进行编写。 这意味着您无法逃避它,即使您喜欢UIKit,似乎也别无选择,还必须学习SwiftUI。

WidgetKit

UIKit会死吗?

不,这还远远没有结束。我认为苹果没有计划在可预见的将来放弃UIKit。在UIKit上工作多年后,SwiftUI对我来说就像魔术。它可以使用单行代码(或者因为内置于SwiftUI中而无需编写代码)来复制UIKit函数。魔术的坏处是,当事情进展不理想时,很难找出问题所在,也可能无法修复。那是您需要返回UIKit的时候。 UIKit是iOS的基础,而Apple仍在继续向其中添加新功能(UICollectionView和UISplitViewController今年有很多很酷的功能,您应该检查一下)。

我将UIKit视为所有SwiftUI魔术背后的秘密调味料。 UIKit和SwiftUI都有其优势,Apple选择了合适的工具来完成正确的工作(它们将SwiftUI用于WidgetKit,因为它适合Widget现在具有的约束)。我认为这两个将并存很长时间。

苹果公司将多年的UIKit和工具经验用于SwiftUI。一起工作很愉快,并且结果令人惊讶。苹果之所以能够做到这一点,是因为他们建立了一种将SwiftUI桥接到UIKit的方法,因此他们知道,即使SwiftUI无法完成某些任务,总会有UIKit存在。

结论#
重要的问题到了。您应该学习UIKit还是SwiftUI?
我的简短答案是SwiftUI。

这是我的长答案。从我在本文中指出的所有事实来看,SwiftUI现已准备就绪。我认为最终您将学习两者。

如果您了解UIKit,您将被迫学习SwiftUI,因为它是WidgetKit等新框架所独有的。即使不是出于这个原因,我想您可能也是最欣赏SwiftUI的人。 SwiftUI可以开箱即用地完成很多伟大的事情,这是我们一直希望在UIKit中做的事情,但是没有机会和时间去做。

如果您了解SwiftUI,那么有时您需要额外的自定义或遇到一些障碍,UIKit将永远为您服务。

原文地址

https://sarunw.com/posts/should-i-learn-uikit-or-swiftui/

推荐

基础文章推荐

经典教程推荐

技术源码推荐

推荐文章

CoreData篇

Combine篇

TextField篇

JSON文件篇


一篇文章系列

技术交流

QQ:3365059189
SwiftUI技术交流QQ群:518696470

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知识大胖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值