APP的选型总结
flutter出处:Google出品开发语言和技术:dart语言+flutter界面库dart语言:dart虽然属于大前端范畴,但dart是和java一样的强类型语言,这让dart虚拟机可以做很多优化,性能方面超出了js需要安装Android Studio环境、Flutter SDK同样的界面,用HTML和flutter如何实现h5:<div class="greybox"><d
flutter
- 出处:Google出品
- 开发语言和技术:dart语言+flutter界面库
- dart语言:dart虽然属于大前端范畴,但dart是和java一样的强类型语言,这让dart虚拟机可以做很多优化,性能方面超出了js
- 需要安装Android Studio环境、Flutter SDK
- 同样的界面,用HTML和flutter如何实现
h5:
<div class="greybox">
<div class=redbox>
smaple text
</div>
</div>
.greybox {
display: flex;
align-items: center;
justify-content: center;
background-color: #e0e0e0; /* grey 300 */
width: 320px;
height: 240px;
font: 18px
}
.redbox {
background-color: #ef5350; /* red 400 */
padding: 16px;
color: #ffffff
}
flutter:
var container = new Container( // grey box
child: new Center(
child: new Container( // red box
child: new Text(
"smaple text",
style: new TextStyle(
color: Colors.white,
fontSize: 18.0,
),
),
decoration: new BoxDecoration(
color: Colors.red[400],
),
padding: new EdgeInsets.all(16.0),
),
),
width: 320.0,
height: 240.0,
color: Colors.grey[300],
);
总结:可以看出,从代码的写法来说,flutter没有tag和样式的说法,更没有选择器,从头到尾只有dart语言,它的界面控件是用dart代码new出来的,每个控件的样式,是在new的时候设置的json参数。
如果我们要嵌套布局,就要不停的在dart里写child,同时在dart里给child们设样式参数。上面的代码,只是嵌套了1层,实际开发中,dom要嵌套好多层,想象那样的代码。。。所以大家都诟病dart是“嵌套地狱”
flutter的相对优势:
性能好一丢丢。比rn有优势,但比拥有bindingx的weex/uni-app,在实际开发中没有很明显的差距。
flutter的相对劣势:
需要原生协作,维护3套代码,无法有效降低开发成本,提升开发效率
嵌套地狱,代码难看难维护
不支持热更新
目前质量和成熟度很低,github上的issue有5k+,很容易掉坑里
原生可视控件融合不好,比如webview、video、map
ui库不适合国情
学习成本高
dart未来扑朔迷离
react-native
- 需要安装Android Studio等环境
- 利用脚手架安装工程项目,支持安卓和ios两端
- 基础功能提供的组件够用,但是需要一些比较复杂的功能,可能就需要具备一些原生知识
rn的相对优势:
rn的坑虽然比weex的少,但uni-app已经填了weex的很多坑。这方面差别不大。
rn的生态虽然比weex丰富。但uni-app是反过来的,uni-app的国内应用生态丰富度超过了rn。
rn的app冷启动比uni-app快。这个问题uni-app已经内部改进完毕,下个版本发布就能解决。
rn是纯单页的,嵌入原生App比较灵活。而uni-app是应用整体的概念,如果要内嵌入其他原生应用的话,要求原生应用内嵌uni-app应用整体进来
rn的相对劣势:
需要原生协作,维护3套代码,无法有效降低开发成本,提升开发效率
不支持小程序,发布到h5也无法直接发
ui库不适合国情,learn once,write anywhere
学习成本高,用人成本高,不利于开发商降低开发成本
rn是纯单页应用,如果一个应用的页面很多,用rn写会很崩溃,变量污染和干扰严重。而weex/uni-app支持多页面,页面之间上下文隔离,写页面较多的大型应用更合适
另外react在中国的市场占有率远不如vue。这也是中国与国外不同的特色情况。
参考:https://blog.csdn.net/aaaaaaliang/article/details/100121493
最终的选择【重点】
- 以上的总结是3个月之前写的,如今按照上面的参考已经做出来了产品并上线安卓,可以应用市场搜索’原创力文档’(由于其他原因,ios暂未上线);
- 根据公司前端组的讨论,最终选择了由我提出的uniapp中的nvue进行开发,做的过程中我是选择了原生渲染;
- 上线效果是超出了预期效果。根据经验app-nvue的体验和react-native的体验差不多;
- 以上内容仅做参考。祝各位开发者找到适合自己的技术。
更多推荐


所有评论(0)