课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,无论是原生开发还是跨平台开发都被众多程序员所掌握,今天我们就一起来了解一下常见的几种原生开发方法以及优势都有哪些。
原生开发的主要优势体现在:
1.可以快速访问本平台的全部功能,比如摄像头、GPS等;
2.原生应用的速度快、性能高,而且可以实现比较复杂的动画和绘制效果,用户体验较好。
原生开发的缺点也很明显,主要体现在:
1.开发成本较高,不同的平台必须维护不同的代码,人力成本也会随之增加;
2.有新的功能需要更新时,只能进行版本升级。
随着移动互联网的高速发展,在很多的业务场景下,传统的纯原生开发已经不能满足日益增长的业务需求,主要表现在以下两个方面:
1.应用动态化的需求增大。当需求发生变化,或者是需要增加新的功能时,传统的纯原生应用开发只能通过版本的升级来更新内容,然而应用的上架和审核都需要一定的时间。因此,开发人员迫切地希望进行应用内容的更新时,可以不更新版本,提升工作效率。
2.业务需求变化快,开发成本变高。原生开发一般需要技术团队对iOS、Android两个开发平台进行维护。当版本更新迭代时,开发和测试的成本都会增加。
针对上述两个问题,跨平台框架应运而生。
针对上文提到的原生开发所面临的问题,目前在IT界已经诞生了很多跨平台框架,主要分为三类:
1.H5+原生(Cordova、Ionic、微信小程序);
2.JavaScript开发+原生渲染(ReactNative、Weex、快应用);
3.自绘UI+原生(Flutter)。
在本文中,我们将对ReactNative、Weex和Flutter进行对比。
1.ReactNative
ReactNative是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook开源的JS框架React在原生移动应用平台的衍生物。ReactNative使用了react的设计模式,但是其UI渲染、动画效果、网络请求等均是由原生来实现的。开发者编写JS代码,通过ReactNative的中间层转化为原生控件,并进行操作。也就是说通过JS代码来调用原生的组件,从而实现相应的功能。
ReactNative实现跨平台的功能,主要由Java、C++和Javascript三层所构成的。其中,C++实现的动态链接库(.so),作为中间适配层桥接,实现了JS端与原生端的双向通信交互。ReactNative会把应用的JS代码编译成一个JS文件,ReactNative整体框架目标就是为了解释并运行这个JS脚本文件,如果是JS扩展的API,则直接通过bridge调用native;如果是UI界面,则映射到virtualDOM这个虚拟的JS数据结构中,通过bridge传递到native,然后根据数据设置各个对应的真实native的View。
2.Weex
表面上,Weex是一种客户端技术,但实际上,它串联起了从本地开发、云端部署到分发的整个链路。开发者可以在本地像编写Web页面一样先编写一个APP界面,然后通过命令行工具将之编译为一段JavaScript代码,生成一个Weex的JSbundle。与此同时,开发者可以将生成的JSbundle部署至云端,之后通过网络请求或者预下发的方式加载至用户的移动应用客户端。
在移动应用客户端,WeexSDK会准备一个JavaScript执行环境,在用户打开一个Weex页面时,在该环境中执行相应的JSbundle,并将执行过程中产生的各种命令发送到native端,进行界面渲染、数据存储、网络通信、调用设备及用户交互响应等。如果用户希望使用浏览器访问这个界面,那么他可以在浏览器中打开一个相同的Web页面,这个页面和移动应用使用相同的页面源代码,但被编译成适合Web展示的JSBundle,通过浏览器里的javaScript引擎及WeexSDK运行起来的。
3.Flutter
Flutter是Google推出并开源的移动应用开发框架,主打跨平台、高保真、高性能。开发者可以通过Dart语言进行APP开发,只需要一套代码就可以同时构建Android和iOS应用,并且可以达到与原生应用一样的性能。Flutter还提供了丰富的组件、接口,开发者可以高效地为Flutter添加native扩展。此外,Flutter还使用了Native引擎渲染视图,为用户提供了良好的体验。
Flutter与用于构建移动应用程序的其它多数框架不同,因为Flutter既不使用WebView,也不使用操作系统的原生控件。相反,Flutter使用自己的高性能渲染引擎来绘制widget。这样不仅可以保证在Android和iOS的UI一致性,而且也可以避免对原生控件依赖而带来的限制和高昂的维护成本。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!