下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922
论坛 >移动开发 >移动产品开发之前端kepler跨平台框架

移动产品开发之前端kepler跨平台框架

南有暖村树发布于 2016-02-13 09:58查看:751回复:3

如今的移动应用市场特点是不间断的创新、日新月异的变化、无尽的更新。在这个信息爆炸的时代环境下,需要移动应用必须快速的交付到用户。满足这些用户的多种需求,各种屏幕尺寸,操作系统,带宽,设备能力和用户体验。


这些特性对于移动开发者提出了挑战,现在做客户端开发的公司都会面临一个巨大的问题,就是跨平台。对于目前市面上的移动设备来说。Android、IOS、WindowsPhone等等移动设备系统,让我们在开发适配上都很头痛。从开发成本来说,对于开发一个简单的App,Android客户端需要1~2位同学。IOS客户端需要1~2位同学。对应UI出图也得做出最少2个版本的。不过得益于HTML5标准的建立,前端框架的发展,现在能够帮助开发人员快速的创建移动应用程序,如jQuery Mobile,Inoic和React Native。每个框架都广泛的支持不同平台,如iOS和Android,开发语言统一为JavaScript+Css。


目前的App跨平台解决方案


总的来说,现在的跨平台方案一共分为一下几种:

整体基于浏览器WebView调用Html5的web页面,加原生APP壳方案(主流)

使用第三方语言进行映射的方案

整体使用原生技术,嵌套个别web网页的方案

基于浏览器Webview的跨平台

blob.png

基于WebView的跨平台解决方案相信大家已经很熟悉了,而使用Web开发对于一个Web开发工程师也是一个轻而一举的事情。


HTML5方案的主要不足则在于功能和性能方面,这主要是因为HTML5应用的能力严重依赖于系统自带的Web引擎:iOS的UIWebview、Android的Webview等,此类组件的HTML5能力相比Safari for iOS、Chrome for Android都要差一截。


而且,对于原生系统的新能优化,如JAVA的垃圾回收机制、ListView的复用内存缓存机制等等,系统级别的优化,对于使用WebView来实现的逻辑,往往很难做到。


另外在Android平台上,由于系统碎片化比较严重,不同Android版本的Webview的HTML5能力也有较大差异,导致相应的HTML5应用一致性难以保证。


但是,目前还是存在业界的几家公司提供的解决方案如下:


ReactJs

blob.png

Fackbook的开源框架,相对于其他的JS框架来说,ReactJs提出了一个极为重要的概念。那就是Virtual DOM。


在Web开发中,我们总需要将变化的数据实时反应到UI上,这时就需要对DOM进行操作。而浏览器解析复杂或频繁的DOM操作通常是性能瓶颈产生的原因。React为此引入了虚拟DOM(Virtual DOM)的机制:在浏览器端用JavaScript重新实现了一套DOM API。借助于JavaScript在浏览器上的运算能力,提高页面的解析能力,提高性能。


JqueryMobile

blob.png

jQuery Mobile是jQuery 在手机上和平板设备上的版本。jQuery Mobile 不仅会给主流移动平台带来jQuery核心库,而且会发布一个完整统一的jQuery移动UI框架。支持全球主流的移动平台。现在类似的框架还有:jQTouch、 Sencha Touch 等等。


对于Web开发来说,JQuery无疑是一个极为好用的js框架。多数开发者使用JQuery Mobile的主要原因是由于,熟悉JQuery,能够上手快。但是由于框架出的比较早,早期设计的缺陷,使得在性能方面较差,结构也没有采用目前流行的mvvm模式,开发效率较低。


Inoic Framework

blob.png

IONIC 是目前最有潜力的一款 HTML5 手机应用开发框架之一。通过 SASS 构建应用程序,它提供了很多 UI 组件来帮助开发者开发强大的应用。 它使用 JavaScript MVVM 框架和 AngularJS 来增强应用。提供数据的双向绑定,使用它成为 Web 和移动开发者的共同选择。Ionic是一个专注于用WEB开发技术,基于HTML5创建类似于手机平台原生应用的一个开发框架。Ionic框架的目的是从web的角度开发手机应用,基于PhoneGap的编译平台,可以实现编译成各个平台的应用程序。


PhoneGap/Cordova/AppCan/⋯



blob.png

这类的框架应该算一个整套解决方案。通过针对js的封装,向web开发者,提供给一些原生功能的API。通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头、麦克风等。API不满足开发需求的,也可以由自定义插件形式,提供原生功能给Web端使用。


结论

跨平台的开发发难问题在于,功能基本实现不是完美实现。同一套代码要兼顾不同平台,很多实现就变成折中实现了,原本一些很优秀的平台特性为了兼顾另一个平台用不了。不过随着时间的推移,技术不断的推进,使用HTML5为基础的Web技术只会越来越成熟。"Web与Native正在融合”--在这个背景下,不管是传统的WEB开发人员还是原生APP开发人员,都应该互相学习,掌握多门技术才能持续发展。




收藏(0)0
查看评分情况

全部评分

此主贴暂时没有点赞评分

总计:0

回复分享

共有3条评论

  • 慧星的那一夜
  • MK
  • 药师
  • IT宅男
  • mr jack
  • YUI
  • Mr ken
  • cappuccino
  • 课课家技术团队1
  • 选择版块:

  • 标题:

  • 内容

  • 验证码:

  • 标题:

  • 内容

  • 选择版块:

移动帖子x

移动到: