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/

推荐

基础文章推荐

  • 《SwiftUI是什么,听听大牛们如何说》

经典教程推荐

  • 更新近百篇SwiftUI教程《SwiftUI2020教程》
  • 帮您突破数据存储难关《SwiftUI vs CoreData数据存储解决方案》

技术源码推荐

推荐文章

CoreData篇

  • SwiftUI数据存储之做个笔记App 新增与查询(CoreData)
  • SwiftUI进阶之存储用户状态实现登录与登出
  • SwiftUI 数据之List显示Sqlite数据库内容(2020年教程)

Combine篇

  • 一篇文章学懂弄通SwiftUI与Combine(含轮播动画App源码)

TextField篇

  • 《SwiftUI 一篇文章全面掌握TextField文本框 (教程和全部源码)》
  • 《SwiftUI实战之TextField风格自定义与formatters》
  • 《SwiftUI实战之TextField如何给键盘增加个返回按钮(隐藏键盘)》
  • 《SwiftUI 当键盘出现时避免TextField被遮挡自动向上移动》
  • 《SwiftUI实战之TextField如何给键盘增加个返回按钮(隐藏键盘)》

JSON文件篇

  • SwiftUI JSON文件下载、存储、解析和展示(代码大全)

一篇文章系列

  • SwiftUI一篇文章全面掌握List(教程和源码)
  • 《SwiftUI 一篇文章全面掌握TextField文本框 (教程和全部源码)》
  • SwiftUI一篇文章全面掌握Picker,解决数据选择(教程和源码)
  • SwiftUI一篇文章全面掌握Form(教程和源码)
  • SwiftUI Color 颜色一篇文章全解决

技术交流

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

  • 请关注我的专栏icloudend, SwiftUI教程与源码
    https://www.jianshu.com/c/7b3e3b671970

你可能感兴趣的:(2020年我们应该学习UIKit还是SwiftUI)