当前位置: 首页 > article >正文

webapp的介绍,以及浅述webapp的技术选型的看法,和cordova的简述


web app介绍


什么是web app?

        因为移动互联网特别火爆,很多企业公司都想开发一个属于自己的app,但是因为原生app开发的成本比较高,而且后期维护比较困难,这些开发成本和后期维护成本对于个人创业者来说或者初期创业公司来说是玩不起的,所以就寻求一种方式既可以低成本,也可以快速开发移动应用,那么web app是最好的选择!

        web app可以写一套代码以后,可以发布到各个平台上,比如:安卓、iOS、黑莓、win phone等等。也就是说我们可以通过一套程序生成多平台的app,可以省去很多开发成本。不用像原生那样,每个平台都得写一套代码。

    所谓的 web app就是给web编译打包加了个app壳,看起来像是一个app,可以上传到应用商店,也可以从应用商店下载到移动设备安装,但是我们在手机上打开之后看到的实际上还是网页,只不过写成的是自适应的网页能够在手机上显示,做到跟原生app那样。

        而且web app也可以获取到手机里面的底层功能,比如说打开摄像头、打开相册、获取我们的地理位置信息...等等都可以做到的,那如果你想开发一款app需要用到原生底层能力的话,web app可以满足到你。

        不过web app开发,对于开发人员来说也有不少的要求,并不像传统理解那样,懂一些前端技术就可以进行很好的开发。

 

 

 

 

应用前景

        app可以分为2个大方向,以内容为主的文档类,以行为和交互为主的应用类。

    文档类的应用,主要以纯HTML5的技术;

    交互类的应用,则更依赖于原生技术的开发,Hybrid则处于2者之间,它能处理一定程度交互的应用。

 

 

    有一个观点,从cordova诞生至今就一直存在,认为cordova最大的优势,是能利用现有技术,快速开发应用,能够部署在各个不同的平台上面,可以极大地节约开发成本,既可以替代原生应用的观点。这个观点有待商榷,一个技术具有生命力,能被广泛地应用,原因还是因为更适合发展趋势,随着手机硬件水平的提高,执行速度越来越不成问题。html5标准、框架、工具也在不断地发展之中,在html5的规范中,很多其实都是针对移动设备的。在手机端,html5的开发框架,也是层出不穷。在厂商用户方面,googleapple都早已进入html5的阵型,他们主导或参与了标准的制定,推动了技术的发展,而用户也对这种技术的产品表示认可,因为html技术的应用普遍比较小巧,不需要独立占用过多的资源,厂商也是看中这点,在自己的应用类提供应用类分发,例如在手机浏览器,手机助手里面都有轻应用,微信里有微信应用。现在应用类分发,已经成为了一个重要的渠道,这些都是html app开发越来越热门的原因。

 

 

 

  

 

 

webapp的各种开发平台

Cordova

 

Sencha

 

 

React Native

 

 

APICloud

 

 

wex5

 

 

AppCan

 

 

还有很多形形式式的平台

 

 

 

如何选型?

面对众多的跨平台开发,我们该如何选型?

        这个问题相信不少人出现过选择困难症。一般来说,会选择目前市场上使用率比较多的平台,或者比较热门的平台。现在市场上,什么五花八门的开发平台都有,还有一些会开设一些课程供开发者来学习,也对他们平台进行推广。但是作为一名开发者,不可能学习完众多的跨平台开发,对于我们的学习成本是相当大的。那么选一个比较好的跨平台开发,还需要注意这个平台是由什么公司所开发的,是不是开源的,平台是否不断维护更新等等的问题。这些问题都决定这个平台以后能否继续不断发展,开发者是否能继续使用,并且是否能调用到最新的移动设备上的api,以及项目可维护性。

        目前比较火的跨平台开发React Native Cordova

        而我选择了Cordova

 

 

 

 

为什么选择cordova?

    对于为什么选择Cordova这个问题,得看Cordova是在这个业务领域领先的地位,目前是在大公司Apache的旗下,其维护更新的速度相当快,并且Cordova是开源的,这对于公司使用这门技术起来可以避免一些的版权上的问题。因为是开源,国内的一些平台都是基于Cordova做的内核。那么我们为何不直接学习cordova呢?

 

 

 

 

 

Cordova

什么是cordova?

       Cordova的前身是PhoneGap2011Adobe公司将其收购对其开源,并捐献给apache,重新命名为Cordova。apache公司通过开源促进了商业应用,也促进了Cordova本身的发展。确立了这个业务领域领先的地位。目前一些其他的框架,把cordova作为底层组件来使用,例如:国内的“起步”,内核是使用cordova进行封装的。

 

        Cordova是一个开放源码移动开发框架。 它允许您使用标准的 web 技术如 HTML5CSS3JavaScript进行跨平台开发,避免每个移动平台的本机开发语言。 应用程式在有针对性的对每个平台的包装内执行,并依靠符合标准的API绑定访问每个设备信息、感应器、摄像头、文件资料和网路状态等等。

 

        Cordova通过对HTMLCSSJS封装为原生APP。Cordova将不同设备的功能,按标准进行了同一封装,开发人员不需要了解设备的原生实现细节,并且提供了一组统一的JavaScript类库,以及为这些类库所用的设备相关的原生后台代码。因此一次开发的APP可以编译到各个平台中。

 

 

 

 

cordova与phonegap的关系

        2009phonegap面世,对外推出android adkblackberry sdk,成了移动开发者的福音,就连ibm也加入进来。在201110月,整个Nitobi团队被adobe收购,PhoneGap的项目主管Brian LeRoux出开源PhoneGap的决定在Adobe收购Nitobi之前就做出了,由于Adobe现在拥有PhoneGap商标,他们不得不换个名字,第一个选中的名字是Callback,毫无创意,暂时作罢。随后adobephonegap送给了apache软件基金会ASF,接着apachephonegap改名为cordovacordovaNitobi团队当时坐落的街道名称,用此名来纪念Nitobi团队的贡献。

 

phoengap

官方网址:http://phonegap.com

 

Cordova

官方网址:http://cordova.apache.org/

 

 

 

 

 

Cordova的优点

1. 跨平台:Cordova提供了一个平台用于构建混合移动应用,使我们能够开发一个应用,这将使用在不同的移动平台上,如IOSAndroidWindows手机,Amazon-fireos,黑莓,火狐OSUbuntutizen


2. 开发速度快、开发成本低:快速地开发不同于原始应用程序,Cordova可以节省大量的开发时间


3. 使用前端语言:Cordova的开发使用的是前端语言,所以我们并不需要大量学习平台特定的编程语言。



 

 

Cordova的缺点

1. 运行速度慢:混合型应用程序是不同于原始程序,混合型应用程序是执行在原生应用的webview,相当于安卓系统运行在Linux系统上,所以运行速度要慢些。


2. 在不同平台进行测试:构建针对不同平台的应用,因此需要大量的设备和操作系统的测试,优化也要使用很多的时间。

 

3. 兼容性处理:还有一些插件在不同的设备和平台有兼容性问题。还有一些尚未被Cordova支持一些原生API


 

 

 

优缺点小结

        这些优点和缺点是相对的,web app运行起来没有原生那么快,在用户体验上不太好,但是这取决于设备硬件和软件对html的支持程度有关。如今的硬件水平在不断提升,加上能充分利用html的特性,执行速度还是可以做到可以媲美原生效果的。

 

 

 

 

 

参数资料:

http://cordova.apache.org/docs/en/7.x/guide/overview/index.html

https://phonegap.com/about/

http://www.cnblogs.com/aspnet008/p/5383294.html 

http://www.lryc.cn/news/2417045.html

相关文章:

  • i386/i686/x86-64的区别
  • 高性能并行计算:从计算节点到网络
  • 交互设计与人工智能的融合:未来的潜力和挑战
  • 布隆过滤器:基于哈希函数的原理、应用解析
  • PaddleX跨平台图形化部署开发工具实战 笔记(C#和QT)
  • ifconfig 与 ip addr 命令详解 - 学习/实践
  • 软件测试(五、测试用例七大设计方法)
  • 广播风暴和环路是什么
  • 安卓移动开发基础入门
  • Linux tar 具体使用方法
  • 边缘检测sobel算法满足不了你?那canny给你极致体验
  • 《Honey Select》捏人剖析
  • datatables使用指南
  • lass翻译_lass是什么意思_lass的翻译_音标_读音_用法_例句_爱词霸在线词典
  • Sobel算子原理及OpenCv实现
  • C#中progressBar控件详细使用方法
  • epoches,batch_size,batches,steps
  • bochs用户手册-3.4编译
  • MATLAB的MEX文件编写和调试
  • 国外VPS如何进行网络加速?最新VPS加速访问方法
  • Latex制作beamer幻灯片、写论文的基本语句
  • C++中的fstream、ofstream、ifstream详解
  • RYU基础整理
  • knox 配置
  • Linux服务器ping不通域名出现的unknown host 错误解决办法
  • 【Socket网络编程】16.UDP 循环读取recvfrom() 与 循环发送 sendto()
  • onmouseover 、onmouseout 与onmouseenter 、onmouseleave的区别
  • F5 GTM DNS 知识点和实验 4 -智能DNS基础
  • 全面认识“互联网数据中心(IDC)”,读这一篇就够了
  • 深入理解C#中常见的委托【详细】