前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hybrid App开发模式

Hybrid App开发模式

作者头像
河湾欢儿
发布2018-09-06 17:00:16
2.6K0
发布2018-09-06 17:00:16
举报

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中提供的方法。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.04.07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档