Native App
React Native(RN)发布于2015年,也是使用JavaScript语言进行跨平台APP的开发。与H5开发不同的是,它使用JS桥接技术在运行时编译成各个平台的Native代码,其使用的技术Facebook的Flux技术。
其特点是:
但是它也有缺点的:
优点:其优点是目前的生态相对比较成熟
缺点:开发和发布成本高
应用技术:Swift,OC,JAVA
WebApp
常被人提起的H5技术,其实就是网页+JavaScript。比如目前的一些流行的JS框架Vue,React,AngularJS等都是为了构建网页。针对移动端构建出来的网页可以实现在跨平台的功能,但是其缺点也很明显:
优点 :开发和发布成本很低
缺点 :性能和体验不能讲是最差的,但也受到浏览器处理能力的限制,多次下载同样会占用用户一定的流量
应用技术:ReactJS,RegularJS等
Hybrid App
面在webview中显示,这种模式下,Android、iOS的API一般有一致性,Hybrid App所有有跨平台效果。
优点: 开发和发布都比较方便,效率介于Native App、Web App之间
缺点: 学习范围较广,需要原生配合
应用技术: PhoneGap,AppCan,Wex5
React Native App
Facebook发现Hybrid App存在很多缺陷和不足,于是发起开源的一套新的APP开发方案RN App。。使用JSX语言写原生界面,
js通过JSBridge调用原生API渲染UI交互通信。
优点: 效率体验接近Native App,发布和开发成本低于Native App
缺点: 学习有一定成本,且文档较少,免不了踩坑
WEEX App
阿里巴巴开发团队在RN的成功案例上,重新设计出的一套开发模式,站在了巨人肩膀上并有淘宝团队项目做养料,广受关注,
2016年4月正式开源,并在v2.0版本官方支持Vue.js,与RN分庭抗礼。
优点: 开发效率和体验上跟RN不相上下,并且跨平台性更强
缺点: 刚刚起步,社区没有RN活跃
Flutter介绍
Flutter是Google推出的开源移动应用开发框架。开发者可以通过开发一套代码同时运行在iOS和Android平台。
它使用Dart语言进行开发,并且最终编译成各个平台的Native代码,这样既保证了开发效率,也保证了各个平台的运行效率。其相当于从头到尾重写了一套UI框架,不依赖具体平台的组件。其所有的组件都是"Widget"。渲染引擎则依靠高效渲染库Skia实现。
Flutter也看到了目前的跨平台解决方案有缺点,所以它借鉴了React Native的一些思想,做出了很大的优化。它将代码编译成原生代码,并且直接在各个平台中使用其高效渲染引擎Skia进行渲染,没有桥接,不调用平台相关控件。
这种设计思想解决了不同平台的性能问题。
归功于其设计思想,我们可以真正实现一套代码,运行不同的平台。在其推出之后,关注的开发者数量和相关的教程的增长速度远超当时的React Native。
其特点包括:
同样支持热部署,开发时可以像网页开发一样实时看到效果。
目前它存在的一些问题是:
总结
运用于跨平台开发的语言还有很多,如PWA,Uni App等。个人看来,Flutter有发展潜力,虽然Flutter目前并不是非常流行,但是笔者相信它是跨平台解决方案的未来。如果谷歌的新系统Fuchsia OS能像当今的Android这样如日中天,甚至替代掉Android的话,Flutter的发展也会迎来它的顶峰。
如果你想做一个企业名片之类的东西,让更多人知道自家产品,那也许一个网站就够了;但如果产品核心功能只有native app才能提供,或者你想要确保用户有更好的体验、更强的黏性,那可能就需要做native app。
如果我们能够揭示大脑的某些学习机制或学习方法,那么人工智能将能迎来进一步的...
如今,在城镇化发展不断加快,生活水平日益提升的背景下,养宠成为了越来越人的...
近日,国家标准化管理委员会、中央网信办、国家发展改革委、科技部、工业和信息...
( 映维网 2021年01月26日 )现在不少VR头显都会利用前置摄像头纳入AR透视功能。...
导读 大家应该都知道华为手机和电脑通过华为share就能实现一碰即传,有的时候这...
什么?不支持SA的不是真5G手机?Wi-Fi 6速率不如Wi-Fi 5,Wi-Fi 6是个伪概念?旗舰...
近年来,通信技术发展速度惊人,更新换代频率越来越快。两年前,全球还是4G的时...
据Strategy Analytics新发布的研究报告,到2020年,全球5G智能手机销量将激增130...
今天,张亚勤教授在CNCC 2020上带来以智能技术趋势为主题的演讲,随着数字化3.0...
壳牌公司在2013年首次启动其人工智能卓越中心时,该中心甚至不被称为人工智能中...