当前位置:网站首页>拥抱声明式UI
拥抱声明式UI
2022-07-17 05:01:00 【jjf19891208】
本人主要是做APP开发的,之前也或多或少接触过小程序开发,了解过angular vue 以及 Thymeleaf 等前端的框架,前辈们为了提高UI开发效率,做了各种尝试!
Android应用层使用Java编写,其UI API设计也是参照了Java SWT,Android View代码量也可谓惊人,带状态的View自己管理状态,命令式编程中处理带状态的UI组件也要特别小心,代码改变组件状态可能无意中改变数据,一些系统组件还有惊喜大礼包,比如 Android 的 RadioGroup,调用 RadioGroup 的 check 方法选中某个 RadioButton,会触发3次 onCheckChanged 事件,为了改进开发体验,Google 也推出了不少拓展库,但一直都是基于传统的UI系统,不能更好的实践MVVM模式,而WEB端的声明式UI早已走在了前头,这也是为什么很多人去使用JS做APP开发,除了开发体验好,还能跨平台,虽然性能跟体积等遭到吐槽,依然有很多人选择JS,本人固执地坚守原生开发,Google先是在 Flutter 上实践了声明式UI,但是Dart语言生态系统一直不温不火的,Android系统版本又跟Java版本捆绑,新版的Java的很多新特性都使用不上,Kotlin的出现改变了这种状况,这里不得不佩服Kotlin团队的前瞻性,这门语言跟Dart同年诞生,但是完全兼容Java,其语法也相当精简,当搭上Android的顺风车后,混的比Dart要好,Spring Boot也接纳了 Kotlin,Android系统版本并没有跟Kotlin版本捆绑,再加上其语言拓展能力和精简的语法,Google 在2019年推出了基于 Kotlin 的声明式UI:Compose,声明式UI的主要特点是使用编码的方式创建UI、Controller Model 跟 View 严格分开、自动更新,可能刚开始不太习惯,但是熟悉了之后简直不要太爽!
最近接触iOS开发,基本入门,其传统的UI方式,布局起来实在是不习惯,一直没搞懂iOS的约束,干脆放弃了,既然官方都推出了声明式UI:SwiftUI,何苦为难自己!体验了一把SwiftUI后,感觉Android、iOS的声明式UI使用起来差别不大,用起来简单明了,开发效率那是大大的提升,还不用担心屏幕尺寸的兼容性问题!
改变习惯确实令人不适,但还是要拥抱新事物,官方不断推陈出新,我们也要不断学习,提升自己,编程语言存在差异,但好的编程思想可以通用,语言的改进是为了实现更好的编程理念,终极目的都是为了提升效率!
啰嗦完毕!
边栏推荐
- 万文多图之Word高效插入参考文献
- PHP array_ Filter empty leave 0, false
- 网址在线封装APK系统源码
- Extreme video compression using the pellet toolbox
- Eureka,拿捏日千万级访问量妥妥的!
- Architecture and application of secure multiparty computing
- Unity UMP打包黑屏问题总结
- The n-beats model was released in 2020 and is 3% better than the winner of the M4 competition!
- EasyExcel简单使用
- Rearrange data according to date JS
猜你喜欢
TiDB 性能优化概述
TiDB 性能分析和优化
EasyExcel简单使用
Unity UMP打包黑屏问题总结
Virtual lab basic experiment tutorial -7 Polarization (3)
Quickly master Mipi development strategy
[TA frost wolf \u may- hundred people plan] Introduction to basic rendering lighting (I)
Simple UI funny text conversion Emoji expression wechat applet supports sentence word conversion_ Source code
[unity] interactive double click
Water and electricity meter reading and recharge management system in Colleges and universities in property community
随机推荐
Money making master applet [latest version 5.9.9] mall / instant withdrawal of commission / distribution promotion / phone recharge / is meituan hungry for takeout
[Unity] Input.gettouch[index]的index
使用循环语句制作登录程序
npm安装教程
探索:制药厂系统网络时钟同步(NTP时间同步服务器)
【TA-霜狼_may-《百人计划》】基础渲染光照介绍(一)
万文多图之Word高效插入参考文献
[FPGA tutorial case 27] realize dual port RAM ping-pong structure through Verilog
Policy mode replaces if else
Water and electricity meter reading and recharge management system in Colleges and universities in property community
As a result, all system modifications of the company will be upgraded
面临的挑战和优势,并预测NeRF最终将取代Deepfake
Simple UI funny text conversion Emoji expression wechat applet supports sentence word conversion_ Source code
Autojs learning-2048 small game automation
Using everything to clean up junk files
TiDB 性能优化概述
Phthon3 install mysqldb error problem solving reason: image not found
Redis cluster interview questions
Architecture and application of secure multiparty computing
Exploration: pharmaceutical factory system network clock synchronization (NTP time synchronization server)