原生 APP、Web、混合 APP,三种开发模式有何不同?
前言
原生 App 又称Native App,该开发针对 IOS、Android、Windows 等不同的手机操作系统要采用不同的语言和框架进行开发;无论是从开发难度,价格还是周期来看,原生开发都更复杂、更昂贵、周期更长
那为什么还要选择原生 App 开发呢?其到底有哪些优势?
下面就用目前市场上主流的三种 APP 开发 :原生 APP、Web APP(即HTML5)和混合 APP三种,相对应的定制开发就是原生开发、H5开发和混合开发
那么这三种开发模式究竟有何不同呢?下面我们就分别从这三者各自的优劣势来区分比较吧!
一、APP 原生开发
原生App的定义:
在此所指的原生应用程序 (Native App),指的是作业系统厂商本身提供 SDK 或建议的开发方式原生开发(Native App 开发),是在 Android、IOS 等移动平台上利用提供的开发语言、开发类库、开发工具进行 App 软件开发;比如 Android 是利用 Java、Eclipse、Android studio;IOS 是利用 Objective-C 和 Xcode 进行开发
通俗点来讲,原生开发就像盖房子一样,先打地基然后浇地梁、房屋结构、一砖一瓦、钢筋水泥、电路走向等,都是经过精心的设计;原生 APP 也一样:通过代码从每个页面、每个功能、每个效果、每个逻辑、每个步骤全部用代码写出来,一层层,一段段全用代码写出来
优点:
- 原生 App 执行速度快,效能佳。适合需要极速反应的程式、复杂的动画、游戏…等类型
- 原生 App 对硬体装置的支援度较好,可以应用几乎所有硬体上的功能。例如:相机功能、GPS 地理定位、测速计、磁力计、陀螺仪…等
- 可以在官方线上商店上架,设定下载 App 的人是否要付钱,用以赚取费用
- 使用已安装的App时,不需要开浏览器及输入网址。
缺点:
- 不同装置的原生 App 必须使用制定的程序语言及 SDK 开发;例如若 App 要用原生程式开发,且希望在 iOS、Android、Widows
- Mobile 上都能下载使用,就必须要开发 3 套不同程式语言写的 App
- 开发过程中,要测试原生 App 功能必须先经过程式编译(Compile)、部署安装在装置上,才能够执行测试;一但有任何问题,每次修改都必须重新编译、部署安装的流程才行,开发测试较不方便(透过装置模拟器可以测试部分功能,但模拟执行的速度也很慢)
- 部分App的开发者必须要缴年费给官方,才能开发原生App及将App上架
- 将App上架需要经过官方审核程序
- 付费App下载需让官方抽成
- 原生App程式若有更新,就需要重新上架、审核,而使用者也必须更新或重新下载,才能使用新的功能
二、Web APP (HTML5)开发
HTML5 应用开发,是利用 Web 技术进行的 App 开发;Web 技术本身需要浏览器的支持才能进行展示和用户交互,因此主要用到的技术是 HTML5、Javascript、CSS 等
优点:
- 支持设备范围广,可以跨平台,编写的代码可以同时在 Android、IOS、Windows 上运行;
- 开发成本低、周期短;
- 无内容限制;
- 适合展示有大段文字(如新闻、攻略等),且格式比较丰富(如加粗,字体多样)的页面;
- 用户可以直接使用新版本(自动更新,不需用户手动更新)
足消费者的需求
缺点:
-
由于 Web 技术本身的限制,H5 移动应用不能直接访问设备硬件和离线存储,所以在体验和性能上有很大的局限性
-
对联网要求高,离线不能做任何操作
-
功能有限
-
APP 反应速度慢,页面切换流畅性较差
-
图片和动画支持性不高
-
用户体验感较差
-
无法调用手机硬件(摄像头、麦克风等)
三、混合APP开发(原生+H5)
混合开发(Hybrid App 开发),是指在开发一款 App 产品的时候,为了提高效率、节省成本而利用原生与 H5 的开发技术的混合应用;通俗点来说,这就是网页的模式,通常由“HTML5云网站+APP应用客户端”两部份构成
混合开发是一种取长补短的开发模式,原生代码部分利用 Web View 插件或者其它框架为 H5 提供容器,程序主要的业务实现、界面展示都是利用与 H5 相关的 Web 技术进行实现的;比如京东、淘宝、今日头条等 APP 都是利用混合开发模式而成的
优点:
- 开发效率高,节约时间。同一套代码Android和IOS基本上都可使用;
- 更新和部署比较方便,每次升级版本只需要在服务器端升级即可,不再需要上传到App Store进行审核
- 代码维护方便、版本更新快,节省产品成本
- 比web版实现功能多
- 可离线运行
缺点:
- 功能/界面无法自定:所有内容都是固定的,不能换界面或增加功能
- 加载缓慢/网络要求高:混合APP数据需要全部从服务器调取,每个页面都需要重新下载,因此打开速度慢,网络占用高,缓冲时间长,容易让用户反感;
- 安全性比较低:代码都是以前的老代码,不能很好地兼容新手机系统,且安全性较低,网络发展这么快,病毒这么多,如果不实时更新,定期检查,容易产生漏洞,造成直接经济损失
- 既懂原生开发又懂H5开发的高端人才难找
以上就是原生开发、H5 开发和混合开发各自的优缺点;相比之下,由于现代人的个性化需求越来越明显,所以原生 APP 开发也越来越多,定制化的服务更能满足消费者的需求;而混合 APP 开发技术看似是很容易的 web 开发和原生开发的结合,但是也正在面临开发技术不成熟,市场缺乏跨语言的开发人才
结语
在这里提供一份 Android 全套进阶技术知识学习文档+大厂面试真题及答案解析;这些资料也都是我开发这么多年一点一点的累积整理出来的,有需要的小伙伴:可点击此处查看直达方式,或者简信发送“学习”即可 免费获取;今天完全无偿的分享给大家就是想今年寒冬我们程序员能好过一点,希望大家都能工作顺利,事业有成
整理不易,如果觉得内容对你有所帮助的话,可以点赞转发分享一下哦~