2019高新技术企业

跨平台开发技术:H5,React native,Flutter谁是未来!

/ 01-02 当前位置:主页 > 观点资讯 > 网建知识 >
  为什么跨平台是发展趋势?
  
  同一个应用,各个“端”独立开发,不仅开发周期长,而且人员成本高。同时,作为技术人员,也不应该满足于这种重复、低能的工作状态。在这样的形势下,跨平台的技术方案也受到越来越多人和企业的关注。

  
  本篇文章小编将从原理、优缺点等方面为大家分享跨平台技术
  
  一. H5
  
  说到跨平台,没人不知道H5。不管是在Mac、Windows、Linux、iOS、Android还是其他平台,只要给一个浏览器,连“月球”上它都能跑。
  
  优点
  
  跨平台:只要有浏览器,任何平台都可以访问
  
  开发成本低:生态成熟,学习成本低,调试方便
  
  迭代速度快:无需审核,及时响应,用户可毫无感知使用最新版
  
  缺点
  
  性能问题:在反应速度、流畅度、动画方面远不及原生
  
  功能问题:对摄像头、陀螺仪、麦克风等硬件支持较差
  
  虽然H5目前还存在不足,但随着PWA、WebAssembly等技术的进步,相信H5在未来能够得到越来也好的发展。
  
  二
  
  RN的理念是在不同平台上编写基于React的代码,实现Learn once, write anywhere。
  
  在内存中,可以通过不同的渲染引擎生成不同平台下的UI,JS和Native之间通过Bridge通信
  
  优点
  
  垮平台开发:相比原生的ios 和 android app各自维护一套业务逻辑大同小异的代码,React Native 只需要同一套javascript 代码就可以运行于ios 和 android 两个平台,在开发、测试和维护的成本上要低很多。
  
  快速编译:相比Xcode中原生代码需要较长时间的编译,React Native 采用热加载的即时编译方式,使得App UI的开发体验得到改善,几乎做到了和网页开发一样随时更改,随时可见的效果。
  
  快速发布:React Native 可以通过 JSBundle 即时更新 App。相比原来冗长的审核和上传过程,发布和测试新功能的效率大幅提高。
  
  渲染和布局更高效:React Native摆脱了WebView的交互和性能问题,同时可以直接套用网页开发中的css布局机制。脱了 autolayout 和 frame 布局中繁琐的数学计算,更加直接简便。
  
  缺点
  
  动画性能差:React Native 在动画效率和性能的支持还存在一些问题,性能上不如原生Api。
  
  不能完全屏蔽原生平台:就目前的React Native 官方文档中可以发现仍有部分组件和API都区分了Android 和 IOS 版本,即便是共享组件,也会有平台独享的函数。也就是说仍不能真正实现严格意义上的“一套代码,多平台使用”。另外,因为仍对ios 和android的原生细节有所依赖,所以需要开发者若不了解原生平台,可能会遇到一些坑。
  
  生态不完善:缺乏很多基本控件,第三方开源质量良莠不齐
  
  三
  
  是Google开发的一套全新的跨平台、开源UI框架,支持iOS、Android系统开发,并且是未来新操作系统Fuchsia的默认开发套件。渲染引擎依靠跨平台的Skia图形库来实现,依赖系统的只有图形绘制相关的接口,可以在最大程度上保证不同平台、不同设备的体验一致性,逻辑处理使用支持AOT的Dart语言,执行效率也比JavaScript高得多。
  
  优点
  
  性能强大:在两个平台上重写了各自的UIKit,对接到平台底层,减少UI层的多层转换,UI性能可以比肩原生
  
  优秀的语言特性:参考上面Dart优势分析
  
  路由设计优秀:Flutter的路由传值非常方便,push一个路由,会返回一个Future对象(也就是Promise对象),使用await或者.then就可以在目标路由pop,回到当前页面时收到返回值。
  
  缺点
  
  优点即缺点,Dart 语言的生态小,精通成本比较高
  
  UI控件API设计不佳
  
  与原生融合障碍很多,不利于渐进式升级
  
  移动互联网的普及和快速发展,跨平台技术风起云涌,这也是技术发展过程中的必经之路,等浪潮退去,才知道谁在裸泳。当然作为Android开发想要生存发展,应当全面的拓展自己的技术体系,并且能够深入掌握一块技术,我个人更看好React native。
回到首页

扫一扫,微信咨询

请留下需求和联系方式,我们即刻为您准备方案

提交成功

免费服务热线18706176160

扫一扫,微信咨询