专栏首页河湾欢儿的专栏Hybrid App开发模式

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 条评论
登录 后参与评论

相关文章

  • uniApp 如何获取globalData全局变量

    河湾欢儿
  • 选中分享

    河湾欢儿
  • js基础_2(页面加载和延迟脚本)

    河湾欢儿
  • 未来APP产品开发的方向

    未来的移动App开发不仅仅是让它适应一方小小的屏幕,采用不同的编程语言,基于不同的操作系统。那它是怎样的呢?现在我想我们应该把注意力转向建立现代化的App了。 ...

    BestSDK
  • iOS14新特性探索之一:App Clips轻应用

            App Clips是苹果WWDC 2020所发布的iOS 14新特性中最具焦点的一项功能。一经曝光,就引发了互联网上针对其特性的各种讨论。有人说...

    珲少
  • 决战下半场:小程序技术助力金融APP重回C位

    本文不是一篇纯技术文章,想与IT、电商、互金、网金以及负责数字化运营的部门同侪们一起探讨一下App的数字化建设。

    凡泰极客
  • 2017年Q1季移动App使用情况分析

    2017年Q1全球网站流量监测机构发布了Android首次超过Windows成为第一大操作系统,这是自20世纪90年代来Windows首次被对手超越。 在中国A...

    腾讯大数据
  • 银行、券商们的下一代App该往哪里走?

    传统金融机构们的App——尤其以手机银行、手机证券为最,发展到今天,已经产生一系列的问题:从用户角度看,体验普遍不好、高度同质化;从业务运营角度看,几乎没有什么...

    凡泰极客
  • 处境艰难的 App 开发者们如何自救

    这是我朋友的公司不再研发原生 App 的原因——在网页端创业简单的多。怎么会这样呢?基于浏览器的网页端生态系统已经存在了 20 多年,而 App 系统却仅存世 ...

    非著名程序员
  • 分析了 6000 款 App,竟有这么多佳软神器没用过

    摘要:在《6000 多款 App,看我如何搞定她们并将其洗白白~》中我们详细地分享了有关Scrapy框架抓取App数据的流程,并对抓回来的数据作了进一步的清洗。...

    1480

扫码关注云+社区

领取腾讯云代金券