Flutter
Flutter 是 Google 开源的 UI 工具包,协助开发者通过一套代码库高效构建大都平台尽善尽美应用,撑持移动、Web、桌面和嵌入式平台Flutter 开源、免费,具有宽松的开源协议,适合商业项目
React Native
React Native(简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的JS框架 React 在原生移动应用平台的衍生产物,撑持iOS和安卓两大平台RN利用Javascript语言,类似于HTML的JSX,以及CSS来开发移动应用,因此熟悉Web前端开发的技巧人员只需很少的学习就可以进入移动应用开发领域
uni-app
uni-app 是一个利用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,但是宣布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)、快使用等大都个平台
技巧学习本钱和难度
- RN, 要求开发者学习React,要求通晓Flex布局,要求原生开发合作
- Flutter,要求开发者学习Dart,了解Dart和Flutter的API、要求通晓Flex布局,要求原生开发合作
- Weex,已经内嵌到uni-app中,就不单独提了
- uni-app,要求开发者学习Vue,了解小程序
很明显uni-app的学习本钱太低了,它没有附加专有技巧,全体利用公共技能
学习本钱和难度,直接意味着:开发本钱、招聘本钱、上线速度、上线风险。
另外,Dart究竟值不值得学,是一个大题目
Google的天才工程师也发明了Go语言,它确实有很多理论优势,但实际上市场的主流,仍然是C和C++
Flutter VS Uni-app
Flutter的相对优势:性能好一抛弃抛弃比RN有优势,但比领有Bindingx的Weex/uni-app,在实际开发中没有很明显的差异
Flutter的相对劣势:
- 需要原生协作,保护3套代码,回天乏术有用低落开发本钱,晋升开发效率
- 嵌套地狱,代码难看难保护
- 不支撑热更新
- 目前质量和成熟度很低,Github上的issue有5k+,很容易掉坑里
- 原生可视控件融合不好,比如webview、video、map
- UI库不适合国情
- 学习成本高
- Dart未来错综复杂
RN VS Uni-app
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这也是中国与国外不同的特点情形。