混合开发(Hybrid App)有哪些优劣点?
从当前移动开发的实际情况来看,移动端的开发方式三分天下:纯原生(Native App)、混合开发(Hybird App)、网页应用(Web App)。
那么,混合式开发与其他的两种开发模式相比,具有哪些优劣点呢?
纯原生(Native App):是在 Android、iOS 等移动平台上利用提供的开发语言、开发类库、开发工具进行 App 软件开发。比如 Android 是利用 Java、Eclipse、Android studio;iOS 是利用 Objective-C 和 Xcode 进行开发。纯原生开发就像盖房子一样,先打地基然后浇地梁、房屋结构、一砖一瓦、钢筋水泥、电路走向等,都是经过精心的设计。原生通过代码把每个页面、每个功能、每个效果、每个逻辑、每个步骤全部写出来,每一层,每一段全用代码写出来,难度系数和复杂程度都较高。
混合开发(Hybrid App):主要以 JS+Native 两者相互调用为主,从开发层面实现“一次开发,多处运行”的机制,成为真正适合跨平台的开发。Hybrid App兼具了 Native App良好用户体验的优势,也兼具了 Web App 使用 HTML5 跨平台开发低成本的优势。在开发一款 App 产品的时候,为了提高效率、节省成本而利用原生与H5的开发技术的混合应用,更通俗的讲由“HTML5云网站+APP 应用客户端”构成的 App 是混合开发。后来随着微信、支付宝、百度等超级 App 大力发展小程序,我们也逐渐把“小程序+APP应用客户端”纳入到混合开发的范围内。
网页应用(Web App):是利用Web技术进行的App开发,Web技术本身需要浏览器的支持才能进行展示和用户交互,因此主要用到的技术是HTML5、Javascript、CSS等,只需要在 Android 和 iOS 直接写个壳就好了,大大减小了开发成本,而且 Web 是实时渲染的,即使有 Bug ,可以直接发布就好了。
今天主要分析混合开发(Hybrid App)的优劣势以及一些经验的分享。
混合开发的优劣势
按照国内的实际情况来看,Hybrid App 是最多的移动端开发方式,并且目前已经有众多 Hybrid App 开发成功应用,例如我们日常使用的微信、支付宝、淘宝、抖音等一系列高活跃 App 都是混合开发的代表。
为什么 Hybrid App 会如此收到开发者的欢迎呢?我们不妨先比较下三种开发模式的特点:
特点 |
混合开发(Hybrid App) |
纯原生(Native App) |
网页应用(Web App) |
---|---|---|---|
语言 |
JAVA、Objective-C、Javascript、CSS等 |
JAVA、Objective-C等 |
Javascript、CSS等 |
学习难度 |
中 |
高 |
低 |
跨平台性能 |
高 |
低 |
高 |
访问兼容性 |
中 |
低 |
高 |
高级图形支持 |
中 |
高 |
高 |
热更新支持度 |
中 |
低 |
高 |
使用体验 |
高 |
高 |
中 |
从上表就能看出来混合开发处于纯原生和网页应用之间,是一个折中的方案,兼顾了纯原生和网页应用的优势,但是学习成本也不是太高,适合大多数公司的实际情况。
基于混合开发模式的特点单独分析的话,其优劣势主要如下:
一、优势
1、开发效率高,节约时间。同一套代码 Android 和 iOS 基本上都可使用;
2、更新和部署较便捷,每次升级版本只需在服务器端升级即可,无需上传到 App Store 审核;
3、兼顾了部分原生的优秀操作体验;
4、代码维护方便、版本更新快,节省产品成本;
5、比 Web版实现功能多;
6、可离线运行。
二、劣势
1、功能/界面无法自定:所有内容都是固定的,不能换界面或增加功能;
2、加载缓慢/网络要求高:混合APP数据需要全部从服务器调取,每个页面都需要重新下载,因此打开速度慢,网络占用高,缓冲时间长,容易让用户反感;
3、安全性比较低:代码都是以前的老代码,不能很好地兼容新手机系统,且安全性较低,网络发展这么快,病毒这么多,如果不实时更新,定期检查,容易产生漏洞,造成直接经济损失;
4、既懂原生开发又懂 H5 开发的高端人才难找。
混合开发的应用场景
哪些条件和情况选择混合开发是具有较高性价比呢?哪些行业或场景是适合于混合开发模式的呢?
一些需要经常性开展更新内容的 App 是非常适合混合开发模式,另外对于小型团队来讲开发混合应用也是值得优先考虑的,首先是技术难度要求较低,其次开发的时间周期更短利于后续的维护。
具体到哪些行业和场景的话,我会认为电商、金融、资讯等行业会经常性的更新内容、活动,就非常适合用H5或小程序的形式进行承载,因此选择混合开发模式是最合适不过的。
而对于游戏、企业管理、物联网等行业业务趋于平稳较少进行频繁的发版,且需要兼顾用户使用体验选择原生应用是更为妥当的选项。
此外,如果单从技术角度分析的话,许多企业都已经拥有 Web 开发技能,选择混合开发方法,在合适解决方案的支持下,Web 开发者只要仅仅运用 HTML、CSS 和 JavaScript 等 Web 技能就能构建 App,并且使用 Web 语言编写的所有代码都可以在不同的移动平台之间共享,使得开发和日常维护过程变得集中式、更简短、更经济高效。
许多分析师也预测,混合开发未来也可能会成为开发前端 App 的默认技术。
更优质的混合开发模式
当然在混合开发模式下也有一些较为明显的问题,其中之一就是 H5 页面会经常出现白屏卡顿等问题,这是 HTML 5 的通病,会对用户体验造成极大影响,需要有针对性的制定深度优化方案才能勉强满足业务要求。
借鉴互联网巨头的经验现在可以以小程序来替代混合开发中 H5 页面承载的业务,相较于H5主要的优势如下:
- 远超过 H5 的体验(支持本地缓存,Webview,有丰富的组件与支持库);
- 能获取更多系统权限,完成更加丰富的产品设计;
- 可以避免 DOM 泄露(不使用常用的 window 对象与 document 对象);
- 包尺寸有效减少,节省流量和存储;
- 服务不再受发版所限制,支持热更新。
也正是基于这个需求,逐步出现小程序容器技术,能够实现「原生+小程序」的混合开发模式,其实技术原理就是以非入侵性的方式把 FinClip SDK嵌入到现有的 App,让App 具备小程序运行能力,从而转变为「原生+小程序」的混合开发模式。
这个模式也是符合用户越来越重视各个产品使用体验的趋势,相信「原生+小程序」更优质的混合开发模式也会更多的受到开发者的关注和认可。
混合开发(Hybrid App)有哪些优劣点?相关推荐
- 混合开发Hybrid App为何成为热门?
纵观当前的移动开发,混合开发(Hybird App)的热度日益上升,那么导致这一趋势的是何原因呢? 实际上,除了混合开发,移动端的开发方式还有纯原生(Native App)和网页应用(Web App) ...
- 混合开发Hybrid App有哪些优势和不足?
从当前移动开发的实际情况来看,移动端的开发方式三分天下:纯原生(Native App).混合开发(Hybird App).网页应用(Web App). 纯原生(Native App):是在 Andro ...
- 开发Hybrid App的技术选型
一.前言 如果我们把Hybrid App理解为运行在android或者ios以及其他移动终端设备上的应用,也可以叫做H5 APP,这种开发应用的模式结合web开发技术与Native开发的部分技术,通常 ...
- cordova 实现网页缓存_如何解决ionic,cordova混合开发的app缓存大的问题
如何解决ionic,cordova混合开发的app缓存大的问题 关注:143 答案:2 mip版 解决时间 2021-02-05 06:24 提问者旧梦已过期 2021-02-04 16:54 如 ...
- H5+Android混合开发电视APP
最近公司搞"黑马"项目,想到H5在手机app上的应用很多,但是目前在我们公司电视端的应用几乎为零,所以就拟定题目为<基于H5技术的新型电视应用>,经过43小时的奋 ...
- 混合 APP 开发(Hybrid App)
目录 混合 App Html5简介 UIWebView 和 WKWebView UIWebView 和 JS 交互 WKWebView 和 JS 交互 JS 调用 Native 相机 一. 混合 AP ...
- ionic+angularjs开发hybrid App(环境配置+创建测试项目)
本文使用的系统是win10 因为后期需要使用nodejs 所以先把node装好 https://nodejs.org/download/ 下载JDK并配置Java运行环境 http://www.ora ...
- h5混合开发 与app 交互方法
安卓 安卓相对简单 因为 安卓可以获取到我们h5页面内的window对象 所以 // h5 调用安卓方法 window.discovery.gotoLogin(); // window.x.y (x类 ...
- native app 、web app 和hybrid app
现在主流的应用程序可以分为三大类native app .web app 和hybrid app. 先简单介绍下这三类 1.Native App Native App是一种基于智能手机本地操作系统如iO ...
- 【混合开发】- 1、技术原理
文章目录 1.关于混合开发 1-1. 什么是混合开发 1-2. 流行的混合开发方案 2. 混合开发app 的本质 2-1. Hybrid App 混合开发app 的本质 2-2. 什么叫做JSBrid ...
最新文章
- NodeJS:将指定文件夹内所有文件重命名为英文
- Keras 深度学习框架中文文档
- spring学习(50):延迟加载
- jemalloc内存分配器简介
- IBM aix mysql_IBM产品系列和AIX系统版本
- 【C++】fill函数,fill与memset函数的区别
- 新增一个主键自增长_第17期:索引设计(主键设计)
- DNSObserver检测DNS安全漏洞
- 【Js】JavaScript数据类型隐式转换
- 修改Cisco交换机ntp服务器,Cisco交换机时间服务(NTP)的设置步驟
- Beyond Compare 3 中文版的安装注册及添加到右键菜单
- uniapp使用环信插件实现视频通话
- SDUT喵帕斯之天才算数少女
- android 接听和挂断实现方式
- java 邮箱验证_Java实现邮箱验证
- iis7 php 5.4,laravel 5.4如何在iis 7环境中安装
- 反反复复的植物神经紊乱 到底如何调节才是对的
- 《智能时代下的创新创业实践》 习题 + 期末考试+答案 + 2021年【完整/完结】
- 基于CPLD和LVPECL门电路的脉宽可调窄脉冲信号发生器设计
- 【03】通过你的CPU主频,我们来谈谈“性能”究竟是什么?
热门文章
- Spring Boot实战【上】
- linux testdisk使用教程,江湖救急!磁盘数据大救星TestDisk
- python生成链接二维码,保存到本地
- 步步为营-91-富文本编辑器
- 03-java数据结构之链表的学习(单链表、双链表等)
- 黑群晖显示真实CPU信息 【支持7.0-7.1】
- 淘宝/天猫获得淘宝商品详情 API 万邦接口返回值说明
- android开发 视图联动_仿支付宝“全部应用”模块,联动布局的demo
- Keyboard Ghosting Explained!(什么是键盘冲突)
- Recovery简介