随着用户习惯的养成,app已成为人们生活中必不可少的组成部分,在各大应用商店可以找到上百万个不同功能、针对不同人群的app.那么企业要开发一款app应选择哪种方式呢?本文将以较为易懂的方式为大家讲解。
一、开发方式
(1)H5:即HTML5.对互联网有所了解的朋友们应该都知道HTML,H5 也就是HTML的第5次重大修改的标准协议。
(2)原生:目前主流的操作系统有Android和iOS,原生开发是基于操作系统各自指定的编程语言开发app,我们可称之为原生app.
二、本质区别
(1)H5 app使用的编程语言HTML5是在HTML的基础上增加了一些新功能的支持,例如说在音视频等方面的支持。H5它主要应用于移动端的运行环境。同样,它也可以应用PHP或JSP的编程语言来帮助你实现整个WEB页面,进而可以更加完善、完美我的页面,同时在动态的编程出的WEB修改内容更加便捷。在用于商业浏览的WEB内容必须有动态数据的搭配编程,对于很多初学者们,根据以往在学校、培训机构等地方只学习了一些H5编程的入门课程,切记一定要搭配数据库。
(2)原生app使用的编程语言:以下按移动操作系统来区分
i. 安卓(Android),使用JAVA语言;
ii. 苹果(iOS),使用OBJECTIVE-C.
(3)从以上两点可以看出,h5 app(web app)只需在h5 php编程语言基本使用上, 在加上制作完成前,嵌入到原生的框架里即可。但Native app则需要多种语言来完成整个APP的编程。
三、用户使用角度
一款app呈现给用户的时候,用户最关心的一点是如何最简单、最方便的对我想要的东西完成操作,用户不在乎功能是如何实现的,对用户而言,他们只在乎"用户体验".
"用户体验"这是程序猿和企业运营者必需考虑的首要目标。
基于用H5的体验与用原生的体验谁更略胜一筹,这就取决于应用本身的内容以及各个页面来抉择了。
四、程序猿角度
(1)首先举个例子:某A企业的一款购物类型的APP,其中涉及到B2B2C,APP中需要让商家可以直接添加商品的功能。对于经常各大网站买东西的朋友们都了解,商品的界面包含的内容主要有商品的标题、规格、描述(可以包含文字和图片)、库存等相关商品参数。比方说,添加商品在PC后台管理系统里可以较好的实现,但是如果用原生的编程在APP上的实现没有像h5的添加页面一样实现的快了。因为H5的添加或使用各种HTML的标签,而原生的话它编程的页面不能有HTML的标签只有原生的控件,而商品的前台页面(呈现给买家的详情页)最好应用H5,但这点就相对产生了某矛盾。
(2)纯H5的APP,对于程序猿来说,开发时间比用原生开发相对较快。但同样会面临一些最终效果、性能等方面的问题。
(3)例如说,APP内有动画的部分:CSS3动画,JAVA SCRIPT动画,原生动画。动画的滑入滑出、元素和帖的响应动画、页面切换之间的场景等等。目前国内的安卓机子品牌参差不齐,它在这方面性能是相对较差的,如果跟获取服务端的数据的交换方式不符合时,会出现卡屏、白屏等较严重的现象。
(4)跟服务端数据交换的时候:如果页面的内容相对较少较小,影响不大。但当数据量稍微变大或复杂时,在DOM操作时会非常消耗手机的性能。
(5)不同页面之间切换或浏览时:因不同页面需请求不同数据,这时就会出现卡机等问题。
五、公司成本角度
(1)如上面第四点所提,在程序猿角度来说,H5的开发时间比用原生开发相对较快。基于公司成本来说,在有限的开发预算情况下,更多的企业会考虑使用H5来开发APP.
(2)另外,用原生开发APP所要配备的人员有(一般急需APP开发):最少2个安卓程序猿、2个 苹果程序猿、1个后台( php或 jsp )、1个后端(java或php)、1个UI设计师、1个产品经理。而H5开发的话,只要1个后台( php或 jsp )、1个后端(java或php)、1个UI设计师、1个产品经理,基本好了后,只要程序猿简单的嵌入到原生的框架就可以了。对于北上广深杭来说,工资成本这块可想而知。
(3)从以上两点可以看出,无论是在时间还是人员成本来看,对于企业来说,在不考虑体验或程序猿能很好的完成技术的因素下,H5的选择居多。
(4)但对于从企业的产品经理来看一定会考虑到所要开发的app的本身所涉及到的内容,但目前来看最多的是两者相结合。
六、总结
(1)H5 app开发简捷、快速,实现的功能丰富酷炫,相对来说,原生的开发耗时耗力。
(2)原生app对各种类型的功能实现更胜一筹,H5可实现的功能原生同样可以满足。
(3)H5+原生混合开发,某此固定格式和控件的、页面反应速度要求高的模块就采用原生开发,对于新闻、大段文字、资讯类的用H5语言的标准实现页面来加载,将其嵌入到原生框架中,然而,可以达到较好的体验。
俗话说:分工不分家,目前还是混合开发模式居多,原生占有率远远高于H5.程序猿们要多思考多实践,不能仅限于只做单单的程序。