为什么 SwiftUI 框架还不成熟,甚至让你望而生畏?
2023-10-22 13:12:05
在编程的世界里,UIKit 一直是 iOS 开发人员构建用户界面 (UI) 的坚实基石。然而,随着 SwiftUI 的出现,一股变革之风正在席卷而来,它宣称以一种更直观、更声明性的方式编写 UI。
乍一看,SwiftUI 似乎是 UI 开发的福音,但深入了解后,就会发现它还处于萌芽阶段,存在着一些令人望而生畏的缺陷,阻碍了它的广泛采用。
SwiftUI 的奇葩 Bug
在使用 SwiftUI 构建复杂应用程序时,开发者常常会遇到各种奇葩的 Bug,这些 Bug 会让他们的开发之旅变得举步维艰。其中一些 Bug 可能是小问题,但另一些 Bug 则会让整个项目停滞不前。
例如,一个众所周知的问题是,在使用 SwiftUI 滚动视图时,视图的滚动位置可能会在用户与屏幕交互后随机重置。这可能会导致用户体验受损,并使得调试和修复变得困难。
有限的功能和灵活性
SwiftUI 虽然为 UI 开发提供了一种新的思维方式,但它也因其有限的功能和灵活性而受到批评。对于某些类型的应用程序来说,UIKit 仍然是更好的选择,因为它提供了更全面的 API 和对底层平台的更多控制。
例如,如果需要创建高度定制化的 UI 组件,或需要与非 SwiftUI 代码进行交互,那么 UIKit 可能是更好的选择。SwiftUI 仍然缺乏一些关键功能,例如对自动布局的支持有限,这可能会限制其在某些场景中的实用性。
模糊的错误信息
SwiftUI 的另一个缺点是其模糊的错误信息。当出现错误时,SwiftUI 往往会提供含糊不清或毫无帮助的错误消息,这会给开发人员排除故障和解决问题带来困难。
例如,如果在 SwiftUI 应用程序中使用错误的语法,编译器可能会返回一条模棱两可的消息,例如 "Unexpected expression in '@Binding' attribute",这并不能清楚地表明问题的根源。
缺乏社区支持
与 UIKit 相比,SwiftUI 的社区支持也较弱。这可能会给开发者在寻找特定问题的帮助时带来困难。例如,在 Stack Overflow 等在线论坛上,有关 SwiftUI 的问题往往会得到较少的关注和回答,这可能会延长开发过程。
结论
尽管有这些缺点,SwiftUI 仍然是一个有潜力的 UI 框架,它有可能在未来改变 iOS 开发的方式。然而,目前它还远远没有达到成熟的程度,对于需要稳定性和可靠性的项目来说,UIKit 仍然是更好的选择。
开发者在决定是否在项目中采用 SwiftUI 时,应仔细权衡其优点和缺点。如果需要创建高度定制化或与非 SwiftUI 代码交互的 UI,那么 UIKit 可能仍然是更好的选择。然而,对于希望探索一种更现代、更声明性的 UI 开发方法的开发者来说,SwiftUI 值得一试。