应该用H5编写APP还是用原生的呢?
现观目前市场上的APP横行,不同行业、不同类目的APP在国内各大应用市场挤爆的满满了,那么作为一个程序员或者一个企业如何能从容的把握住制作一款实用又符合用户体验的APP呢? 自从接触APP也有四年多了,这里我想简单的介绍下这两者的区别和程序猿、企业应如何正确又快速的做出此款APP的制作时涉及的技术方面的决定。 图1 以下我将以最通俗的说法分7点讲述: 一、概念 a) H5:即Html5,接触过互联网的都知道html,所以很明显h5是html的第5次重大修改的一项超文本标记语言的标准协议。 b) 原生:使用原生制作APP(Native app),即在基于目前的智能手机的操作系统(如安卓android、苹果IOS,另外还有windows phone)的基础上并且搭配原生的编程编写运行的第三方的移动应用程序,简称原生APP。 二、本质区别 a) H5 app使用的编程语言:html本身就是一门语言,html5是在html基本上对h5语言的更加完善和一些改善新的特性,比方说在音频、视频等方面的支持。H5它主要适用于移动端的运行环境。当然,另外它也可以使用PHP或JSP的编程语言来实现你想的整个WEB页面,以致于让我的页面更加完善和完美,并且在动态的编程出的WEB修改内容更加方便。用于商业浏览的WEB内容必须有动态数据的搭配编程,很多初学编程的朋友,在学校里或在培训学校里初学了一点所谓的H5编程,记住一定要配合数据库哦。 b) Native app使用的编程语言:此处按移动操作系统来区分 i. 安卓(android),使用JAVA语言; ii. 苹果(IOS),使用OBJECTIVE-C; iii. Windows phone,使用VISUAL C++ 。 c) 从上面2点可以看出,h5 app(web app)只需要在h5的基本使用php编程语言, 在加上制作完成前,嵌入到原生的框架里即可。而Native app则需要多种语言来完 成整个APP的编程。 三、用户使用角度 一款APP展现给用户的时候,用户最关心的事是用户用最简单的操作完成我想要的东西或者是完成一些操作,用户不管你是怎样实现的功能,因为对用户说最最最主要的是“用户体验”。 “用户体验”这是程序猿和企业运营者必需(必定需要)要考虑的头等大事。 具体用H5的体验好还是用原生的体验好,这就涉及到应用本身的内容以及各个页面来决定了。 四、程序猿角度 a) 先举个例子:某A公司的一款购物类型的APP,其中涉及到B2B2C,APP中需要让商家可以直接添加商品的功能。大家平时都上网到淘宝天猫京东啊等买过东西哦,都知道,商品的界面会涉及的内容有:商品标题、商品规格、商品描述(可以包括文字和图片)、库存等内容参数。如果说,添加商品在PC后台管理系统里很好实现的,但是如果用原生的编程在APP上的实现就没有象h5的添加页面一样实现来的快了。因为H5的添加或使用各种HTML的标签,而原生的话它编程的页面不能有HTML的标签只有原生的控件,而商品的前台页面(展示给买家的详情页)最好的是用H5,在这里就相对产生了某矛盾。 b) 纯H5的APP,对于程序猿来说,开发的时间上比用原生的开发快很多。但是最终的效果和性能方面比起来还是有较多的问题的。 c) 比方说,APP内有动画的部分:CSS3动画,JAVA SCRIPT动画,原生动画。动画的滑入滑出、元素和帖的响应动画、页面切换之间的场景等等。目前国内的安卓机子品牌比较多比较杂,它在这方面性能还是比较差的,如果跟获取服务端的数据的交换方式不适应时,会有很多卡屏白屏的现象出现,而且比较严重。 d) 跟服务端数据交换的时候:如果页面的内容比较少或小时,还好。当数据量稍微大或复杂的时,在DOM操作时的非常消耗手机的性能。 e) 不同页面之间切换或浏览时:因为它的不同页面要请求不同数据,所以用起来就会感觉很卡。 五、公司成本角度 a) 上面第四点也提到了,在程序猿角度来说,H5的开发时间会比原生的快多了。所以在公司成本来说,在所开发的预算有限的情况下,很多企业现在越来越会考虑使用H5的来开发APP。 b) 另外,用natvie 开发APP所要配备的人员有(一般急需APP开发):最少2个安卓程序猿、2个 苹果程序猿、1个后台( php或 jsp )、1个后端(java或php)、1个UI设计师、1个产品经理。而H5开发的话,只要1个后台( php或 jsp )、1个后端(java或php)、1个UI设计师、1个产品经理,基本好了后,只要程序猿简单的嵌入到原生的框架就可以了。以北上广深杭来说,对于工资成本这块可想而知。 c) 从以上2点可以知晓,无论在时间成本还是人员成本上来讲,对于企业来说,在不考虑体验或者说程序猿能很好的完成技术的情况下,一般会选H5的居多。 d) 不过从企业的产品经理来定,他肯定会考虑到所要开发的APP的本身的所涉及到内容,当然目前最多的是两者相结合。 六、APP用户的留存率、忠诚度及行业趋势 a) 留存率:据不完全统一,目前市场上的用户留存率还是原生APP的居多。 b) 忠诚度:用户的忠诚度就看APP本身对用户的吸引力和推广力度的结合。 c) 趋势:h5和native app 混全开发的是必是将来的趋势。作为一名想在程序界站的住脚的程序猿,必须2个技术同时掌握,不过可以有侧重点。不然的话很难适应于市场的变化。 七、总结 a) 以46度仰视的角度来看:h5 app开发快,实现的功能也很炫,好高大上哦!那是我想达到的技术。原生的开发太耗时耗力。 b) 以46度俯视的角度来看:native app能更好的适应各种类型的功能实现,你H5可以的我原生的都可以实现。 c) 以46度的角度来看:H5+原生混合开发,某此固定格式和控件的、页面反应速度要求高的模块就采用原生natvie开发,对于新闻、大段文字、资讯类的用H5语言的标准实现页面来加载,将其嵌入到原生框架中那么,可以达到比较良好的体验。 结尾:正所谓,有你有我,目前还是混合开发模式中,还是原生占有率远远高于H5。建议一名程序猿不要单单只是做程序,要多思考多感受多体验。 |
应该用H5编写APP还是用原生的呢?的更多相关文章
- h5 做app时和原生交互的小常识。
距离上次随笔或许有半年了吧,最近在用hybrid模式开发移动app,所以就简单的说说用h5技术开发app时候,做原生交互的几个小常识: 一.拨打电话或者发送短信: <a href="t ...
- 教你判断一个APP页面是原生的还是H5页面 。(还没看)
来源:https://www.25xt.com/appdesign/11851.html 刚好是周末,无意之间学堂君在收集相关资料的时候,发现有部分童鞋在问<如何判断一个APP页面是不是H5页面 ...
- h5做app和原生app有什么区别?
h5做app和原生app有什么区别? 一.总结 一句话总结: 二.h5做app和原生app有什么区别? 普通的HTML5技术与原生技术相比,有跨平台.动态.开放.直达二级内容页面等特点,但却在性能.工 ...
- 将H5页面打包成安卓原生app
第一步:下载HBuilderX,新建项目选择5+App新建一个空项目如下图 新建后项目目录结构如下图 第二步,将你要打包成安卓app的文件打包,最后生成的文件目录如下图 1.打包完成后,将对应文件内容 ...
- 【转帖】H5 手机 App 开发入门:概念篇
H5 手机 App 开发入门:概念篇 http://www.ruanyifeng.com/blog/2019/12/hybrid-app-concepts.html 作者: 阮一峰 日期: 2019年 ...
- [转帖]H5 手机 App 开发入门:技术篇
H5 手机 App 开发入门:技术篇 http://www.ruanyifeng.com/blog/2019/12/mobile-app-technology-stack.html 阮一峰老师的文 ...
- 通过页面调用APP【H5与APP互通】
现在H5和App原生的内容原来越互通,所涉及的业务也越来越复杂和融合,所以如何互相之间方便的调用才是王道. 场景1 比如用hybrid获取地理位置和短信信息,这当然需要框架封装好,比如利用框架的bri ...
- 微信公众号、H5、APP三者各有什么优势?
昨天给大家分享了一个现在很热的H5,众所周知,当下H5手机网站.微信公众号.APP这三种载体都越来越火了,而且三者都有各自的一些优势和劣势. HTML5(H5) H5之所以能引发如此广泛的效应,根本在 ...
- h5与app交互
现在移动端 web 应用,很多时候都需要与原生 app 进行交互.沟通(运行在 webview中),比如微信的 jssdk,通过 window.wx 对象调用一些原生 app 的功能.所以,这次就来捋 ...
随机推荐
- java线上应用故障排查之二:高内存占用【转】
前一篇介绍了线上应用故障排查之一:高CPU占用,这篇主要分析高内存占用故障的排查. 搞Java开发的,经常会碰到下面两种异常: 1.java.lang.OutOfMemoryError: PermGe ...
- C# 操作IitextPdf
1.读取PDF内容 public string ReadPdfFile(string fileName) { StringBuilder text = new StringBuilder(); if ...
- How to insert a segment of noise to music file
如何向音频文件中插入噪声 为了研究噪声和音乐对EEG的的影响,实验前需要准备一段夹杂噪声的音乐. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ...
- selenium grid应用2-多节点执行用例
启动远程 node我们目前启动的 Hub 与 node 都是在一台主机.那么要在其它主机启动 node 必须满足以下几个要求: 1)本地 hub 主机与远程 node 主机之间可以相互 ping 通 ...
- Python模块之pxssh
pxssh模块用于在python中ssh远程连接,执行命令,返回结果,但注意不支持Windows系统 #!/usr/bin/env python #-*- coding:utf-8 -*- from ...
- Reverse Nodes in k-Group——简单的指针问题
Given a linked list, reverse the nodes of a linked list k at a time and return its modified list. If ...
- java EE : tomacat 基础
tomacat 目录结构 conf 配置文件 server.xml
- ASP.NET WebAPI 06 HttpMessageHandler管道
HttpMessageHandler管道 在Web API的中,微软为了更好的进行架构扩展,采用的了一套管道设计----HttpMessageHander(其实WCF也有类似架构). 在整个管道中的头 ...
- CentOS7.5 firefox Flash插件更新
CentOS7自带的firefox没有flash插件,所以是没有办法在网页上看视频的,需要自己手动安装 1.下载 打开flash官网https://get.adobe.com/flashplayer/ ...
- Loadrunner中cookie解释与用法
loadrunner对于cookie的处理loadrunner中与cookie处理相关的常用函数如下: web_add_cookie():添加新的cookie或者修改已经存在的cookie web_r ...