到2020年,UI开发的主要参与者似乎都同意我们(开发人员)如何设计应用程序或Web应用程序的UI(用户界面)。在本文中,我将通过不同的框架和环境向您展示2020年当前的UI发展趋势并进行总结。稍后,我将研究Java/GWT/J2CL中的UI开发趋势。UI中的设计趋势1.SwiftUISwiftUI彻底改变了Apple世界的整个UI开发。在所有Apple平台上原生,所有这些出色的设计工具为UI开发设置了高标准。也从命令式UIKit/AppKit/WatchKit转向声明式设计,使UI开发更容易、更直接。那么,您今天如何实现UI?您可以通过文字描述用户界面。如果你需要状态,你可以用@State标记一个变量,然后用它来写一些东西给它,比如$name。要阅读我们只需要使用(name)的内容。这就是我们所说的“双向绑定”。因此,每次我们向TextField写入内容时,变量名都会更新,使用该变量的Text也会自动更新。>SwiftUI有两种方式绑定“name”2.AndroidJetpackCompose通过将AndroidJetpackCompose添加到Android的UI开发区,AndroidUI开发遵循SwiftUI方式。既然Kotlin比Java好,那么JetpackCompose只用Kotlin(没有Java实现)?我不同意我们只能在Kotlin中进行这种UI开发,但Google似乎想在Android开发中将Kotlin推到Java之上,并且不会为Java开发人员实现相同的功能。>AndroidJetpackComposeUIDevelopmentwithKotlin(Source:https://bit.ly/3gJUiPJ)如果我们看一下JetpackCompose中的代码结构,它看起来确实类似于SwiftUI。你有不同的语法,但整体结构和实现非常相似。使用@Model注释也可以轻松实现这两种数据绑定方式。3.FlutterFlutter的概述非常好,可以告诉我们命令式和声明式UI开发之间的区别。>FlutterDeclarativeUIandStructure(Source:https://bit.ly/3ndrt0E)Flutter使用Dart作为编程语言,具有良好的UI开发结构。同样,该结构与前两个其他框架非常相似。在这个Flutter例子中可以看到,Flutter相比于SwiftUI并没有仅以“双数据绑定”的方式好用。下一站:WebApps在看到以下三个框架:SwiftUI、AndroidJetpackCompose和Flutter之后,我们可以总结出以下几点:声明式而非命令式:UI开发正在从命令式向声明式转变。它如何执行(命令式)并不重要,但目标状态是什么(声明式)。DSL(领域特定语言)适用于UI和基于文本的语言,而不是基于GUI设计器的语言:UI开发从拖放环境转移到UI的文本描述。似乎我们使用编程语言和DSL而不是XML来描述我们的UI。双向数据绑定:通常有双向数据绑定,因此数据字段中的更新将同步到绑定到该字段的所有UI组件,反之亦然。
