从目前技术的发展来看,通过声明式API来构建UI将会成为主流。

框架 Flutter JetPack Compose SwiftUI
支持平台 Android、iOS、Web、Desktop Android iOS、MacOS、iPadOS
开发语言 dart kotlin swift
性能
优点 跨平台 原生,简化UI构建 原生,简化UI构建
缺点 性能相比原生稍差,跨多平台目前还不完善,UI嵌套深 不支持跨平台,Android的UI构建包 仅支持Apple自家的跨平台,iOS的UI构建包,缺乏竞争力

1. 如何选择?

这问题是个悖论,因为这三个东西完全不一样,面向的场景和未来也不一样。

flutter

跨平台,使用自己的skia引起渲染,支持移动端(android、iOS)、web、桌面应用程序。 所有的跨平台框架都绕不开目标平台,所以flutter想使用它来做跨平台开发,你得懂一些Android知识,iOS知识,h5知识。尤其在项目越来越复杂的情况下,和目标平台的耦合越来越深,导致后期还得进行相当一部分的原生开发。 但是跨平台是趋势,从iOS和Android出现的时候跨平台问题就开始探讨了,flutter用于快速出前期产品非常有效,学会它毫无疑问会提升自己的竞争力。

JetPack Compose

Android UI工具包,只能用于AndroidUI构建,未来发展如何不知道,开发方式类似flutter,可以大幅度简化原来Android UI的构建方式,短时间应该不会完全普及,有闲暇与兴趣的可以去学学。

SwiftUI

Apple未来的UI统一方案,能用于Apple全家桶的UI构建,以Apple的号召力,应该会大力推动它普及,iOS开发都应该去学。

2. 代码对比