H5手机App开发入门:概念篇

表面上看,手机App都是同样的东西,就是手机上的应用程序,点击图标就能运行,但是它们的底层技术不一样。按照开发技术,App可以分成三大类。

这三类App的技术模型都不一样,各有优缺点。企业一般会选择其中一种作为主要技术栈,构建自己的手机App。

H5这个词,可以理解成就是混合App模型,只不过它特指混合App的前端部分。因为混合App的前端就是HTML5网页,所以简称H5。这个词是国内独有的,基本上都是前端程序员在用,国外不用这个词,就直接叫混合App。

真正理解H5开发,需要先搞清楚什么是原生App、什么是WebApp,因为混合App是在它们的基础上诞生的。

原生App是专门为特定手机平台开发的应用程序,无法在其他平台运行。一个手机软件如果要同时支持苹果手机和安卓手机,就需要为它们各写一个原生App。

历史上,原生App最早出现,跟智能手机系统一起诞生。2007年6月iPhone诞生,2008年9月安卓诞生,就同时发布了自家平台的原生App开发方法。

原生App使用与手机操作系统相同的语言。iOS的原生App使用Objective-C语言或Swift语言,安卓使用Java语言或Kotlin语言。由于跟底层系统的语言和技术模型一致,所以原生App的性能和用户体验都很好。

原生App的优点主要是两个:(1)较好的性能和体验;(2)可以使用系统的所有硬件和软件API,比如GPS、摄像头、麦克风、加速计、通知推送等等,能充分发挥系统的潜力。

原生App的缺点主要是成本,每个手机平台都要建立一个独立的开发团队,大公司一般都有iOS和安卓两个开发团队。如果出现第三个平台(以前的WindowsPhone,也许将来的华为鸿蒙OS),就要组建第三个团队,成本就更高。

第三个缺点是,原生App必须下载安装才能使用,只要升级版本,就必须重新下载安装。用户往往不愿意更新版本,厂商被迫不得不长期支持很久以前的旧版本。

WebApp是使用网页做的应用程序,必须在浏览器中使用。比如,你在浏览器中收发邮件,就是在使用WebApp。

WebApp主要使用网页技术,即HTML、JavaScript和CSS。2008年,w3c组织发布了HTML第5版,简称HTML5,该版本大大增强了网页的功能,使得网页可以当作应用程序使用,而不仅仅是展示文字和图片,这就是WebApp的由来。

WebApp的优点是:(1)不需要下载安装,打开浏览器就能使用,而且总是使用最新版本;(2)对于开发者来说,WebApp写起来比较快,调试容易,不需要应用商店的批准就能发布。

WebApp的主要缺点有两个。首先,浏览器提供的API(即WebAPI)很有限(目前只有相机、GPS、电池等少数几个),大部分系统硬件都不能通过网页访问,也无法直接读取硬盘文件,所以WebApp无法充分利用平台的硬件。

第二个缺点是,网页通过浏览器渲染,性能不如原生App,不适合做性能要求较高的页面。

WebApp需要打开浏览器才能使用,这意味着,用户必须记住如何导航到它,要么直接输入网址,要么翻找书签。这使得进入WebApp,远不如原生App方便。这点很致命,事实表明,用户偏好原生App。

为了推广WebApp,谷歌公司的Chrome浏览器团队做了很多努力。他们认为,WebApp足以满足大多数App的需求,但是三大缺陷阻碍它的推广。

为了解决这些问题,Chrome团队开发了新技术"渐进式WebApp"(ProgressiveWebApp,缩写PWA)。它可以把网站缓存在手机里面,供离线时使用,还能在手机首屏生成图标,直接点击进入,并且有通知推送能力,也不带有浏览器的地址栏和状态栏,跟原生App的使用体验非常接近。

但是,PWA需要浏览器访问一次网站,才能在首屏生成图标,并且目前iOS系统的支持还不够理想,所以还只是一项探索性质的技术,迄今为止缺乏足够的成功案例。

混合App(hybridApp)顾名思义就是原生App与WebApp的结合。它的壳是原生App,但是里面放的是网页。可以理解成,混合App里面隐藏了一个浏览器,用户看到的实际上是这个隐藏浏览器渲染出来的网页。

混合App的原生外壳称为"容器",内部隐藏的浏览器,通常使用系统提供的网页渲染控件(即WebView控件),也可以自己内置一个浏览器内核。结构上,混合App从上到下分成三层:HTML5网页层、网页引擎层(本质上是一个隔离的浏览器实例)、容器层。

混合App里面的网页不同于普通网页,可以调用底层系统所有的API。奥秘就在于外层容器提供了APIBridge,充当底层API的中介,允许内部的网页调用底层。

所谓APIBridge就是容器在底层接口和网页之间,建立一座桥梁,让双方通信。容器一旦接到网页的请求,就根据请求去调用底层系统的API,然后再返回结果给网页。APIBridge往往以JavaScript语言提供,方便网页调用,这时又称为JSbridge。

不同容器的APIBridge是不一样的。为某个容器写的网页,不能放在另一个容器使用,也无法在浏览器使用,除非网页脚本做了兼容处理。

容器提供的APIBridge必须跟着平台更新。比如,iOS发了新版本,有了新的硬件API,容器也必须跟着推出新版的APIBridge。如果容器没有跟上,开发者为了使用新的硬件,就只能想办法自己来写缺失的APIBridge。

混合App同时具有原生App和WebApp的优点,又可以避免它们的一些缺点。具体来说,可以总结为三点。

(1)跨平台

Web技术是跨平台的,开发者只写一次页面,就能支持多个平台。也就是说,混合App只需要一个团队就够了,开发成本较低。

(2)灵活性

混合App的灵活性大,很容易集成多种功能。一方面,混合App很容易加载外部的H5页面,实现App的插件结构;另一方面,Web页面可以方便地调用外部的Web服务。

(3)开发方便

Web页面的调试和构建,远比原生控件简单省时。页面的更新也容易,只要在服务器上发布新版本,触发容器内更新就可以了。另外,Web开发人员也比较容易招聘,传统的前端程序员可以承担开发任务。

混合App的主要缺点是,由于存在网页引擎的中间层,所以性能比较欠缺,不仅不如原生App,而且由于WebView不是全功能浏览器,可能比WebApp都要慢一些。

另一个缺点是,由于页面跨平台,就无法使用只有特定平台提供的功能,导致体验不如纯的原生App。举例来说,早期的时候,安卓有物理的后退按钮,iPhone没有,页面设计不得不考虑这一点。

上图是iOS页面。

上面是安卓页面,左上角的后退按钮,跟系统的后退按钮重复了。

(正文完)

当今时代,IT教育蓬勃发展,各种课程层出不穷,知识唾手可得。你可能经常领取到海量的前端开发资料包,往往收藏起来就再也没看过。

Vue.js就是这种情况,作为前端的主流框架之一,国内有着广泛应用,市场招聘需求大。前端培训机构几乎一定有它的课程,而且都是重点推广,每个学员都会拿到一大堆学习资料。

怎样才能做出有特色的Vue.js教程呢?北京的京程一灯现在就推出了一个专项课程《你不知道的Vue.js性能优化》。他们是腾讯课堂前端培训TOP机构之一,专注培养年薪40万的高级前端工程师,目前和腾讯课堂联合运营,毕业生平均薪水可以达到25.5K。

扫描下图二维码,进群领取优惠券,原价98元的课程,现在只需要1元。

购课之后,还将赠送价值196元的《Webpack从入门到精通》全系列教程(点击看大图)。

(完)

steven说:

Cordova算一个桥梁项目一直在用就是总感觉体验和性能差点。

KevinBlandy说:

Flutter,一统天下。

小学第呀说:

对于我这种小白,真是开眼界了,感激。

刘源说:

豁然开朗,终于明白了原生appwebapp混合app的区别感谢阮一峰老师!!

Gxxgle说:

多数应用,性能都不是最大的问题。看好混合应用。

dcxy0说:

引用KevinBlandy的发言:Flutter,一统天下。

赞同.一个Flutter完美解决H5APP和原生APP所面临的问题.

softbase说:

想咨询下:手机版的网站,加个原生的壳子,直接转换成一个基于webview的应用APP,通不过Apple的审查,这个怎么解?

阿道夫说:

在线求解,毕设要做一个app,使用flutter好还是reactnative。我是前端,会react,vue,js。

逻辑说:

引用阿道夫的发言:在线求解,毕设要做一个app,使用flutter好还是reactnative。我是前端,会react,vue,js。

Thinker说:

这篇概念篇真的很赞了!

susan说:

阮老师,看到Apple官网消息称为了安全和体验,“如果app使用HTML5等网页技术动态提供核心功能,则应使用Safari来分发,而非通过AppStore”,这对混合APP开发将会有怎样的影响?

总长说:

引用逻辑的发言:

目前推荐用rn。但我个人观点是谷歌的归谷歌,苹果的归苹果,还是要选一个原生的作为主攻方向。我得出这个结论的逻辑是因为平台即领地,所以没有银弹。

刁近平说:

electron怎么样

石樱灯笼说:

管HTML叫H5,管JAVA8叫J8,中国特色软件开发。

fuckhuawei说:

呵呵,鸿蒙已经宣布不会在手机平板等设备用了

楚留香说:

很详细,清晰易懂,看过的最清晰的解释了

jz说:

hansen说:

同样的问题,大神说出来就是不一样。

Kevin说:

Liuhuo说:

思辰说:

看过几篇,感觉阮老师的最简单且清晰!

winter说:

iOS宣布在2020年3月全面下架混合app

ixixone说:

飞天意面神教说:

目前看来Flutter是最优解,前几天刚上线的最新版本已经支持Web和Mac,虽然还不是正式版本。不过如果近期要开展的项目的话,基于团队的角度我应该还是会选择ReactNative。从个人的角度来说应该会用Ionic。

Oliver说:

引用softbase的发言:想咨询下:手机版的网站,加个原生的壳子,直接转换成一个基于webview的应用APP,通不过Apple的审查,这个怎么解?

苹果会把通不过的原因告诉你,改掉就行了呀

nsynet说:

目前华为在推的“快应用”,和小程序不同的是可以在桌面产生图标,应该和小程序机制类似的吧?

Chandler说:

鸿蒙OS。。。认真的吗,PPT按揭开源都能有生态的?按揭开源方舟编译器,宣传吊打Android,IOS,然后代码helloworldDemo跑不通?在圈内让人笑掉大牙了已经。不过剥削员工,送员工吃牢饭倒是有两把刷子。

残梦说:

想请教一下各位,更看好RN还是flutter,打算选一个进行学习

everglow说:

性能问题,现在快5G了,网页跑起来很快的啦。

wylb说:

有人知道pwa必须是浏览器支持,通过浏览器的菜单(如pc端chrome中的安装xxx功能)实现生成一个类似app可以启动的图标?可以通过在网页中添加一个按钮,点击按钮自动生成app图标吗?

国光说:

皮皮说:

感谢科普!接到需求要从0到1设计一个产品,要在各端通用,资源又有限。领导只说了一个H5。。。度娘H5出现一堆用来营销的H5网页,根本解决不了产品需要的搜索、资讯展示的需求。看了老师的概念科普,才知道原来是混合app!

THE END
1.在线教学复课,探索新的教育模式与策略的挑战与机遇摘要:随着在线教学的复课,新的教育模式与策略正在被积极探索和实施。为了应对疫情带来的挑战,教育界正努力创新教学方式,推动线上教学的普及与发展。新的教育模式强调学生的主体地位,注重培养学生的自主学习能力和创新精神。教育机构也在探索更加有效的在线教学策略,以提高教学质量和效果。这些努力旨在适应时代变化,为学生提https://m.ahsanfangjs.com/post/24864.html
2.在线关课,重塑教育的新模式与未来展望语音识别芯片随着在线关课市场的不断发展,竞争也日益激烈,如何在激烈的市场竞争中脱颖而出,提供具有竞争力的课程与服务,是在线关课面临的又一挑战。 在线关课的未来展望 1、市场规模将持续增长 随着互联网的普及和教育需求的增长,在线关课的市场规模将持续增长,在线关课将成为教育行业的重要组成部分,为更多学习者提供便捷、高效http://www.xtgsdz.cn/post/3484.html
3.在线学习管理系统:重塑教育未来的创新工具在线学习管理系统(Learning Management System,简称LMS)是一种基于互联网技术的教育平台,旨在为用户提供全面、便捷、高效的在线学习体验。它集成了课程管理、学员管理、考试管理、数据分析等多种功能,为教育机构、企业和个人提供了全方位的学习支持。 二、在线学习管理系统的优势 https://www.pbids.com/aboutUs/pbidsNews/1861300265132593152
4.网课与线下课程分别有哪些优势?资源丰富:线上网课平台通常汇集了众多的考研资源,包括名师授课、历年真题、模拟测试等。考生可以根据自己的需求,选择适合自己的课程和资源,进行有针对性的学习。互动性:现代线上网课平台已经具备了很好的互动性。考生可以通过弹幕、评论区等方式与老师或其他考生进行交流,分享学习心得和疑问,获得及时的反馈和解答。https://baijiahao.baidu.com/s?id=1801166652915910468&wfr=spider&for=pc
5.健身房盈利点小组训练对您的健身业务的好处Ntaifitness通常小团体训练会持续几周的时间,每周的强度和种类会根据每个成员的能力而变化。通常,小组培训课程是离线进行的,但由于 COVID-19,有些是在线的,而且通常两者兼而有之。 看看小组培训的概念,您可能会认为好处更多地向您的成员一方倾斜;不是这种情况。作为健身房老板,小组训练可以帮助您: https://www.fitness-china.cn/benefits-of-small-group-training
6.英语和数学您不必是学生才能获得学位 - 您可以在任意年龄获得文凭。在线学习英语和数学家庭学习远程学习课程将帮助您赚更多的钱并获得更好的工作。如果您没有英语或数学资格,功能技能将帮助您获得获得好工作所需的技能。 您还可以利用这些课程帮助孩子完成家庭作业。功能技能有很多好处。英语和数学功能技能 2 级是许多工作和学徒http://www.justwebworld.com/zh-CN/english-and-maths-home-study-distance-learning-courses-online/
7.线上培训总结这对于需要更多时间掌握所需知识的学生是一个好处。第三,线上法医临床培训课程中的多媒体教材和模拟实验等可以加深对知识的理解和印象。这些模拟实验和其他交互式教育工具将促进学生在法医临床领域获得更全面和系统的教育。此外,学生可以在随时随地的情况下访问所有课程,并通过在线辅导和讨论组与他们的教师和同学互动。https://www.jy135.com/peixunzongjie/2318206.html
8.电子商务800字论文范文(精选14篇)综上所述,跨境电子商务是一种新型的商务模式,目前在我国这个处于发展阶段,因此高职院校应当对跨境电子商务人才的培养加以重视,不断对人才的培养思路进行探究,结合社会对于跨境电子商务人才的需求,完善课程的体系,加强校内外的实践,培养出适合社会发展的跨境电子商务人才。 https://m.hrrsj.com/wendang/lunwen/611733.html
9.培训班总结范文(通用5篇)只有对新课程的课程理论、课程思想、课程方法有深刻的理解,才能把握新课程教学的精髓,才能以新的理论、新的思想、新的行动去开展扎实有效的教育科研活动,教育教学才可能提升。在培训学习实践中,自己始终以一名新手的姿态,不断向有经验、有开拓意识、有创新举措的同行虚心学习,听新课程研讨课,并参加评课交流,时时处处留https://www.ruiwen.com/zongjie/4103149.html
10.[必备]计算机论文15篇五、应用计算机进行物资采购审计的好处 物资采购工作工作要求审计人员善于发现问题、分析问题、解决问题,而运用计算机进行材料采购审计就是要让计算机帮助审计人员快速发现问题,然后由审计人员进行分析,加以解决,从而真正更好地服务于“阳光采购”。 1.为 企业 物资采购审计人员及时提供物资价格信息,使对物资采购价格的审计https://www.fwsir.com/ligong/html/ligong_20240524184001_3852795.html
11.电子商务论文(精选11篇)这样分的很开,对于两面的经销商都有好处,也对市场环境的稳定,做出了贡献。 电子商务论文 篇7 [摘要] 酒店电子商务不仅可以为顾客带来方便,也可以为酒店带来经济效益和先进管理。本文对酒店电子商务的应用现状、优势、解决方案、发展过程中存在的问题进行了研究,对其可能出现的发展趋势进行了讨论。https://biyelunwen.yjbys.com/fanwen/dianzishangwu/732566.html
12.03hdfs的原理详细介绍hdfsc000后缀离线课程第三天 sql必练50题 https://blog.csdn.net/fashion2014/article/details/78826299/ 课程内容回顾 1、hadoop的基本介绍 2、hadoop的发展历史 3、hadoop的三大发行公司 4、hadoop的基本架构 ? hadoop1.x: ?HDFS:分布式文件存储系统 ? namenode:主节点,管理元数据信息,以及接受客户端的读写数据的请https://blog.csdn.net/weixin_44553150/article/details/103852054
13.MA3D软件中文离线编程视频教程珍珠老虎MA2离线编程视频教程8)离线编程的定义和好处 ( 9)离线编程的现状和条件 ( 10)网络基础知识 (11)网络连接定义和网线、交换机、路由器 (12)3D的概念和基础知识 (2):软件界面基本操作 (1)MA3D软件优缺点比较 (2)MA3D软件下载和安装 (3)软件界面介绍和窗口布局 (4)不同摄像机类型的选择 (5)摄像机属性参数调整 (6)舞台视图的https://www.dgyxpxsp.com/MA3D/140.html
14.教学优点(精选十篇)目前已有慕课相关的APP上线, 如国内首个IT学习类应用——慕课网App, 拥有大量的免费的IT实战课程, 而且具有离线下载功能, 可以解决流量问题, 满足用户随时随地学习的需求。慕课平台教育资源向全球开放, 有助于推进高等教育国际化进程和全球优质教育资源的互换和共享。[2]慕课的出现打破了大学围墙, 在加强教育国际交流https://www.360wenmi.com/f/cnkey5jnr1fb.html
15.在线学习平台的开发与设计(22页)摘要 随着网络技术的发展和教育的普及,在线远程学习正在迅速发展。在线学习中广泛使用的在线学习鱼主要通过在线学习平台中的人际交互来解决自主学习模式的一些问题。在本研究中,本研究阐明了主网络平台使用的主题和内容。 在线课程设计与实施的在线学习模型本研究分为四个主要部分。首先,回顾国内外在线学习的发展和学习模式https://max.book118.com/html/2020/0615/7020105014002142.shtm
16.3dsMax课时:课程简介视频教程翼狐网致力于推动CG艺术发展,为用户提供海量的CG视频教程,本节内容主要介绍户外大屏裸眼透视3D片源制作解析 【案例解析】之课时1:课程简介.https://www.yiihuu.com/v_208481.html
17.上海视觉艺术学院基础学院课程录播邀请比选文件根据《中华人民共和国政府采购法》、《中华人民共和国政府采购法实施条例》、中华人民共和国财政部令第87号及其他相关法律、法规之规定,上海大华工程造价咨询有限公司受上海视觉艺术学院委托,对上海视觉艺术学院基础学院课程录播进行国内邀请比选采购,特邀请合格的供应商前来报价比选。 一、合格的供应商必须具备以下条件: https://info.siva.edu.cn/contents/87/3902655.html
18.高途课堂怎么样,过来人谈自己的亲身经历和感受。事实上,高途课堂并不是任何年级的课程。很多人一起上课,但他们把离线课程变成了在线课程。如果你有任何问题,助教会回答的。讲座的水平可能无法与主教相比。然而,这种教师直播课堂的一个好处是他们没有时间直播。他们还可以观看课程回放。他们不在乎多看几遍。这门重播课程已经保存了很长时间。 https://www.yoojia.com/ask/17-11923826622520130117.html
19.远程教务教学范文12篇(全文)逐渐的, 在网络即时通信得到大力发展的基础上, 为了给学生提供更加及时有效的教学服务, 网络教学平台广泛运用即时通信技术开展在线和离线的教学支持服务, 教学平台集成视频会议系统、虚拟教室系统、聊天工具、BSS讨论系统等系统给学生提供学习导航、在线离线课程、答疑辅导、讨论、在线自测等服务, 以此来提高师生之间的互动https://www.99xueshu.com/w/ikey76wjvnzo.html