一,关于H5
H5是现在前端出现的热门词汇,它是目前的主流开发技术之一,很多初学者对它的理解都是模模糊糊的!搞不懂它到底是个什么,官方也没有明确的定义,借鉴阮一峰老师的文章我也做了一些简单的总结。
二,手机APP的分类
-
原生应用(native application,简称 native App)
2.1概览
原生 App 使用与手机操作系统相同的语言。iOS 的原生 App 使用 Objective-C 语言或 Swift 语言,安卓使用 Java 语言或 Kotlin 语言。由于跟底层系统的语言和技术模型一致,所以原生 App 的性能和用户体验都很好。
2.1优点
2.1.1较好的性能和体验;
2.1.2可以使用系统的所有硬件和软件 API,比如 GPS、摄像头、麦克风、加速计、通知推送等等,能充分发挥系统的潜力;
2.2缺点
2.2.1开发成本高、周期长,要招聘对应的安卓和IOS工程师;
2.2.2原生 App 必须下载安装才能使用,用户不愿意升级还得维护以前的版本;
-
Web 应用(web application,简称 Web App)
2.1概览
Web App 是使用网页做的应用程序,必须在浏览器中使用。 比如,你在浏览器中收发邮件,就是在使用 Web App。
2.1优点
2.1.1不需要下载安装,打开浏览器就能使用,而且总是使用最新版本;
2.1.2开发快,调试容易,不需要应用商店审核即刻发布;
2.2缺点
2.2.1通过网页渲染,性能不如原生APP;
2.2.2必须通过浏览器才能使用;
-
混合应用(hybrid application,简称 hybrid App)
2.1概览
混合 App (hybrid App)顾名思义就是原生 App 与 Web App 的结合。它的壳是原生 App,但是里面放的是网页。 可以理解成,混合 App 里面隐藏了一个浏览器,用户看到的实际上是这个隐藏浏览器渲染出来的网页。
2.1优点
2.1.1跨平台;
2.1.2很灵活;
2.1.2开发方便;
2.2缺点
2.2.1通性能不如原生APP;
2.2.2必须通过浏览器才能使用;
三,H5页面
H5 这个词,可以理解成就是混合 App 模型,只不过它特指混合 App 的前端部分。 因为混合 App 的前端就是 HTML5 网页,所以简称 H5。这个词是国内独有的,基本上都是前端程序员在用,国外不用这个词,就直接叫混合 App。真正理解 H5 开发,需要先搞清楚什么是原生 App、什么是 Web App,因为混合 App 是在它们的基础上诞生的。
我在公司里也开发过H5页面,其实也就是原生APP点击某个地方弹出的一个网页,比如:点击“关于”进入公司简介的页面,点击“功能说明”进入的页面等。
四,手机APP技术栈
-
(1)原生 App 技术栈 (native technology stack)
原生技术栈指的是,只能用于特定手机平台的开发技术。比如,安卓平台的 Java 技术栈,iOS 平台的 Object-C 技术栈或 Swift 技术栈。
-
(2)混合 App 技术栈 (hybrid technology stack)
混合技术栈指的是开发混合 App 的技术,也就是把 Web 网页放到特定的容器中,然后再打包成各个平台的原生 App。所以,混合技术栈其实是 Web 技术栈 + 容器技术栈,典型代表是 PhoneGap、Cordova、Ionic 等框架。
-
(3)跨平台 App 技术栈 (cross-platform technology stack)
跨平台技术栈指的是使用一种技术,同时支持多个手机平台。它与混合技术栈的区别是,不使用 Web 技术,即它的页面不是 HTML5 页面,而是使用自己的语法写的 UI 层,然后编译成各平台的原生 App。
这个技术栈就是纯粹的容器技术栈,React Native、Xamarin、Flutter 都属于这一类。学习时,除了学习容器的 API Bridge,还要学习容器提供的 UI 层,即怎么写页面。
(本文完)
说明:
本文摘自阮一峰老师,详情请阅读: