dart语言和flutter
Flutter框架是什么,有什么优势
跨段开发,节省人力成本,减少开发心智能力;
跨端方案
- H5 + 原生;
基于webview快速迭代,Web技术栈生态开放且社区资源丰富,整体开发效率高。缺点是性能体验不佳,对于复杂用户界面或动画,WebView 有时会不堪重任
- React Native、Weex
RN 中虚拟 DOM会通过 JavaScriptCore 映射为原生控件,Weex类似;web开发技术栈,社区人多,各种成本摊平,原生渲染性能好一些,支持热更新;
开发层语法不一样,底层编译的成果物类似,渲染时需要 JavaScript 和原生之间通信,有些场景如拖动可能会因为通信频繁导致卡顿,有js语言参与,解释执行速度慢; 渲染依赖原生控件,不同平台的控件需要单独维护,更新会滞后,维护成本高;
- Flutter, qt
flutter调用系统api, 使用渲染引擎,通过gpu渲染;
qt自绘UI + 原生,qt社区pc上比较成功,移动端不活跃 Flutter 生态系统发展迅速,社区非常活跃,;google技术支持; 开发效率高;
基于dart可AOT(预编译,生产物速度快),可JOT,调试快;
开发语言为什么是dart 不是java,kotlin, c++, js
2.1 java历史包袱太重,java迭代了太多版本,有各种自己的框架属性,有版权问题,无法深度定制配合flutter使用
2.1 Kotlin也不是什么热门语言,学习性价比很低,除了Android开发在用,主要是替代java,用于安卓开发,当然原生开发也可以用java;当有也可以的时候,那果断一点,用那个最好的,否则留给你的是数不尽的大坑
2.3 js的标准的标准不是自己定的,历史包袱太重,有基于其上面的各种核心源码应用,node, chrome, electron等等
2.4 c++编写代码量大,出东西效率低,一般面向应用层编程的比较少使用
Dart早早出现,无人问津,是google开发的,亲儿子,flutter需要语言配合的话,响应快,可快速迭代,目前已经迭代了好几个大版本,强类型语言(可避免某些未知的错误问题)
dart语法概述
1 var;
2 dynamic,Object
3 final和const
final time = DateTime.now();//不会报错
const time = DateTime.now();//将会报错