Hybrid App开发模式

Hybrid App(混合模式移动应用)是指介于web-app、native-app这两者之间的app,兼具“Native App良好用户交互体验的优势”和“Web App跨平台开发的优势”。

Native App 移动互联网刚开始兴起的时候,我们手机上的应用(App)都是通过Native App开发而成的;Native App的开发具备很多的优势: ->开发出来的产品具备良好的用户体验,动画和运行的速度非常的流畅。 ->能够对手机的内部软件或者硬件进行直接的操作,例如:可以调取用户的通讯论、读取用户的短信(当然需要用户同意),可以调取用户的摄像头,调取手机的重力感应等

但是Native App的开发也存在自己的很多不足: ->首先是不能跨平台,针对目前最常用的IOS和安卓平台,需要用不同的技术来开发:IOS一般使用的是Object-c,而安卓平台使用的一般是Java-Native,这样就导致了开发一款App需要两队人马去做,随之而来的问题也会很多,比如:开发成本高,开发周期长,有的功能IOS有但是安卓没有(手Q就是这样的)等。 ->开发出来的产品需要用户自主性比较强:首先需要客户到应用商店安装,后期如果版本升级,用户想要看到最新的版本还需要重新的进行下载安装升级等。 ->在IOS平台上,开发出一款App上传到苹果App Store需要7天的审核期,在此期间如果审核失败,在此上传还需要七天,这样就有可能导致产品不能按时发布等。

Web App 而HTML5的出现让Web App露出曙光。HTML5基本上不需要考虑是IOS还是安卓,两个平台一套代码基本上都是支持的;更新版本只需要在自己的服务器上更新了即可,这样用户再次访问的时候看到的就已经是最新版本的了;不需要经过漫长审核...这些优势让开发者们大为心动,但是HTML5的本质是运行在浏览器中的页面(App是直接运行在操作系统中的),由于浏览器的差异以及对一些特殊功能支持力度的不够,导致HTML5开发存在一些局限性问题:

->开发出来的产品性能和运行速度没有App的好,用户体验不是很好。 ->虽然安卓和IOS平台上的浏览器大部分都是webkit内核的,但是浏览器厂商为了自己的特殊化,移动设备上的浏览器兼容也不少,甚至一些兼容问题是无法解决的(例如:position:fixed的支持非常的不好)。 ->由于HTML5的本质是运行在浏览器中的,所以想要操作系统中的软件或者硬件都需要所在的浏览器支持,很遗憾大部分浏览器对于这方面的操作都支持的不好,所以也就导致了,H5的产品在调取通讯录、摄像头、读取短信等方面存在了很大的短板,基本上很少用H5去做这些事情的。

Hybrid App 正是在这样是机缘巧合下,基于HTML5低成本跨平台开发优势又兼具Native App特质的Hybrid App技术杀入混战,并且很快吸引了众人的目光。Hybrid App是把Native App和Web App混合在一起的新兴模式(目前市场上的大部分App都是混合模式开发的)。利用各自的优势,去开发一款低成本、跨平台、更新快、性能好、功能丰富的App。

Hybrid App按网页语言与程序语言的混合,通常分为三种类型:多View混合型,单View混合型,Web主体型。

多View混合型(目前常用的) 即Native View和Web View独立展示,交替出现。2012年常见的Hybrid App是Native View与WebView交替的场景出现。这种应用混合逻辑相对简单。即在需要的时候,将WebView当成一个独立的View(Activity)运行起来,在WebView内完成相关的展示操作。这种移动应用主体通常是Native App,Web技术只是起到补充作用。开发难度和Native App基本相当。

Web主体型(目前比较新颖流行的方式) 即移动应用的主体是Web View,主要以网页语言编写,穿插Native功能的Hybrid App开发类型。这种类型开发的移动应用体验相对而言存在缺陷,但整体开发难度大幅降低,并且基本可以实现跨平台。通俗来说,就是App中的页面基本上都是H5完成的,我们使用一些技术框架封装一个App的壳子,框架中还提供一些操作系统级别功能的API供H5的调取,一般来说,都是由JS编写代码来完成App壳子搭建的,这样开发的App也就不会在使用JAVA或者Object-c了。

目前市面上比较流行的框架有:React Native、phoneGap、appcan、APICloud、ionicframework、appMobi、WeX5...

H5和App之间是怎么通信交互? 大家只需要知道,只要App那边做了特殊的处理(就是在webView中注入一个对象,对象中包含了我们需要调取的方法),那么在H5的js中,我们就可以调取WebView中提供的方法。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Debian社区

谷歌删除Chrome应用板块 2018年全面停用

日前,虽然 谷歌 宣布消灭Chrome浏览器的应用已经过去一段时间,也的确有一部分应用转换成了插件,但谷歌似乎一直没有采取相应的行动。但在近日,该公司却突然动手...

1073
来自专栏用户2442861的专栏

前端工程——基础篇

https://github.com/fouber/blog/issues/10#issuecomment-271133674

1052
来自专栏极乐技术社区

小灯灯实战系列《一》记一次小程序开发过程

写在前面 前后两天花了大约四五个小时制作完了自己第一个小程序,当然是没法发布的,小程序的发布要求还是挺严格的:企业资质、HTTPS、审核。 先大概介绍下自己,我...

2397
来自专栏GA小站

Adwords转化跟踪跟新方案

这是谷歌官方提供的ADwords转化跟踪方案,如果你的部署有ADwords转化跟踪,建议尽快更改,数据收集缺失。

1404
来自专栏斑斓

【系统架构】可视化与领域驱动设计

从DDD的角度,领域逻辑的分析可以运用战略方法Bounded Context。可是,一个问题是:如何获得Bounded Context ? 我查看了许多关于Bo...

4296
来自专栏厦门SEO

外链介绍、如何发外链及对SEO的作用浅析!

网站优化流程:选词 —— 选文 —— 发文 —— 提交 —— 收录 —— 索引 —— 排名 —— 转化

2933
来自专栏云加头条

微信小程序的编程模式

在进行「轻芒小程序+」和其他小程序应用开发的过程中,本文作者与其团队对当前正火热的小程序开发有了更为深度的理解与认识,进而有了本文。文章从从编程模式入手,看在小...

2.5K1
来自专栏性能与架构

2016前端开发者调查结果

最流行的JS库和框架 ? 主要看绿色柱和橙色柱即可,绿色 相当于 知名度,橙色 相当于 使用程度。 使用最多的库和框架: jquery,underscore,l...

33111
来自专栏ThoughtWorks

它比微信小程序早出现半年,却不曾引爆技术圈|TW洞见

汪志成 ThoughtWorks 作为一个程序员,这两天的朋友圈被微信小应用刷屏了吧?想试了吧?没拿到邀请吧?没关系,我来帮你! 当然,我没法帮你拿到邀请码 —...

3738
来自专栏Python爬虫与数据挖掘

利用Python网络爬虫抓取微信好友的签名及其可视化展示

前几天给大家分享了如何利用Python词云和wordart可视化工具对朋友圈数据进行可视化,利用Python网络爬虫抓取微信好友数量以及微信好友的男女比...

862

扫码关注云+社区

领取腾讯云代金券