Hybrid app 发展历程

  距离上一篇《基于微信 js-sdk 的简单应用》已经快一年了,说来真是惭愧。上次不久之后便换了工作,一直处于比较忙的状态。其次后面酣畅一段时间都没有从事移动相关的工作。直到今年3月份开始,临时借调去支持其他项目组又开始接触到移动项目中去。

  今天要讲的还是hybrid , 至于原因,每每谈到移动互联网,谈到hybrid , 我总是欣喜的。犹记得2013年夏天,hybrid 概念才刚刚兴起不久,对移动互联网毫无所知的我去参加了H5工程师的实习招聘;当然最终面试没有通过,虽然在学校的项目经历,对方很认可,然而对方主要业务方向便是移动互联网;面试官认真的介绍了Native app, Web app 以及 Hybrid app 的区别和各自优缺点;瞬间点燃了我要去做移动开发的决心。

  第一阶段:诞生

  由于深受Native开发成本,迭代周期之痛和Web app 体验之殇,hybrid 一诞生便广受欢迎,迅速成名。然而当时的hybrid 大多的webview 之流 , 因此 phonegap / cordova 几乎只要听过hybrid 的人都知道, JQuery , Extjs , 也纷纷推出了移动版本的 JQ Mobile , 和 Sencha Touch ,使得Hybrid 的开发成本迅速降低,而体验有所提示。

  第二阶段:融合

  webview为主的Hybrid 解决了很多兼容性问题,提升了一定的用户体验。然后webview 在动画上有着天然的缺陷,并且提供给H5使用的端能力非常有限;既然H5实现动画非常卡顿,那为何不把动画交给Native , H5只负责每个页面中的内容。于是,一个SPA应用又被切成的多页存在于多个webview容器中。web容器来负责页面之间的切换效果,即使网络终端,容器仍然可以提供一些错误处理能力,不至于页面整体白屏,并且不可操作。第二个端能力便是上次提到类似微信jssdk 的中间层了。更原始一点我们也可以直接和Native 协商一些 scheme 协议 和回调,来直接和native 通信,然而这实际操作中会导致H5很难维护。 jssdk 实际上是指一段本地化的js文件,也叫js-bridge, 即 native 和 h5 之间通信的桥梁 。 bridge 对H5 暴露一些简单和统一的 api ,使得h5 和 Native  之间的通信变得非常简单。

  第三阶段:离线

  移动场景和PC 一个很大的不同便是网络环境,PC场景下大多是家庭宽带,办公环境等等,网速通常比较快。而移动端除了4g, 还有很多3g,2g网络,网速成为用户体验一个很大的瓶颈;离线化正式为了解决资源加载问题。通过资源离线化,可以解决首页白屏,等一系列因资源加载慢导致的用户体验问题,离线化之后对NA的要求会提高,资源包缓存更新策略,网络请求,设备,位置信息等,H5 对native 的依赖会更加明显,相对H5部分的开发则实际变得更加简单。附上糯米组件化平台化演进之路

  第四阶段:React Native

  react 和 react native 的出现甚至比Hybrid 的出现更令人惊喜和兴奋。不仅仅是新的库和工具的升级,而是开发思路和理念的升级。虚拟dom ; Learn once, write anywhere 等。都让人眼前一亮。这个阶段在手淘和其他一些公司也都有在使用了,我厂native 团队也在积极研究react native 的runtime , 争取早入集成到现有的app 当中;react native 的不同在于,完全脱离的webview 的方式, 以一种全新的方式来让前端工程师可以快速写出可比native体验的 app 。

  这仅仅是我从一个前端工程师角度所看到的hybrid这些年的一些变化,正如 Hybrid 是native + webapp 的混合产物,hybrid的发展,不仅仅是前端工程师的推动,更需要native 工程师支持。如何让那个我们的Hybrid应用能快速拆解组合,也是native 和 前端共同去做的事情。就现在来讲,手淘,糯米,手百,这些大流量app ,都在朝着平台化的方向发展,能够快速接入H5 应用,并提供相应能力;而对于H5应用,也可能同时接入到手百 和糯米的平台当中;平台需要保证高度的扩展性来满足不同H5的需求 , 而H5则需要最大化的降低自己在不同组件平台中的迁移成本。 native 和 H5 则变成了容器与内容的关系。

时间: 2024-10-16 16:17:52

Hybrid app 发展历程的相关文章

转: 跨终端Web之Hybrid App

转:  http://www.infoq.com/cn/articles/hybrid-app 编者按:InfoQ开设新栏目“品味书香”,精选技术书籍的精彩章节,以及分享看完书留下的思考和收获,欢迎大家关注.本文节选自徐凯著<跨终端Web>第八章“Hybrid App”,主要讲述Hybrid App的发展现状以及技术实现,最后还介绍了两种主流Hybrid开发框架PhoneGap/Cordova和Titanium. Native App(以下简称Native)和Mobile Web(以下简称We

单纯觉得是篇好文——跨终端Web之Hybrid App

[reference]http://www.infoq.com/cn/articles/hybrid-app#theCommentsSection 编者按:InfoQ开设新栏目“品味书香”,精选技术书籍的精彩章节,以及分享看完书留下的思考和收获,欢迎大家关注.本文节选自徐凯著<跨终端Web>第八章“Hybrid App”,主要讲述Hybrid App的发展现状以及技术实现,最后还介绍了两种主流Hybrid开发框架PhoneGap/Cordova和Titanium. Native App(以下简

跨终端Web之Hybrid App

Native App(以下简称Native)和Mobile Web(以下简称Web)二者混合开发的产物被称为Hybrid App(以下简称Hybrid).Hybrid并不是什么新概念,最早可以追溯到Symbian时代,直到iOS和Android出现之后才充分展现出价值. Hybrid简史 1. 背景 Hybrid既利用了Native App丰富的设备API(Device API),又能拥有Mobile Web的跨平台.高效开发.快速发布的能力,对于相当庞大的应用场景而言都是适用的. Hybrid

Hybrid App(一)App开发选型

1.几种app开发模式概述 Native App 即传统的原生APP开发模式,Android基于Java语言,底层调用Google的 API;iOS基于OC或者Swift语言,底层调用App官方提供的API.体验最好. Web App 即移动端的网站,将页面部署在服务器上,然后用户使用各大浏览器访问.一般泛指 SPA(Single Page Application)模式开发出的网站.体验最差. Hybrid App 即混合开发,由Native通过JSBridge等方法提供统一的API,然后用Ht

那些年我们一起用过的Hybrid App

Hybrid App现状分析 Web App 毫无疑问Web App就是成本最低,最快速地解决方案了.尤其是近两年非常流行的响应式设计,Web App市场提供了非常好的实践场地.最近典型的Web App最佳案例是Sun天气应用了,其细节处理让人赞不绝口. Hybrid App 一般来说,拥有下面特点的就是一个Web App了:使用浏览器运行:纯Web前端架构,很多重要手机特性无法访问,例如联系人以及Push notification之类的:Single Page App:销售渠道多限于浏览器.

~~ 近十年WEB技术发展历程 ~~

ajax 03年的时候我上六年级,那时候网吧刚在小县城的角落萌生.传奇,大话西游第一代网游一时风靡.我抱着试一试的心态给了网吧老板两块钱想申请个号玩玩,然后接下来的一个小时我一直在,注,册,账,号. 彼时网吧用的512k的带宽,注册的时候,填了一堆信息,提交,页面跳转,嘣,"您填写的信息有误,请重填".然后跳转回注册页面,以此循环.我现在时常想,如果当时ajax能普及开来,我就可以省2块钱了. 那么ajax是什么? 首先ajax是一种技术.以往的网页交互方式,用户在点击一个按钮后,比如

Hybrid APP介绍

"云"时代的来临正在改变App和运营团队之间的关系,一场不能避免的变革正在进行.鉴于移动终端的局限性,移动终端上的APP由本地化应用(Native App),到混合型应用(Hybrid APP),再到基于WEB的应用Web App,这一连串的变化都源于技术的更新和市场的需要[1] . Hybrid App是指介于web-app.native-app这两者之间的app,它虽然看上去是一个Native App,但只有一个UI WebView,里面访问的是一个Web App,比如街旁网最开始

Android的发展历程及搭建

Android的发展历程: 对于Android我比较不熟悉,因为我的第一只手机就是iphone,我没用过Android系统,但在中国使用带有Android系统的手机的人数是最多的,所以我想学习Android系统的软件开发,接下来我就简单介绍一下Android的发展历程. Android系统的开发使用的是Java语言.Android系统主要由Google和开放手机联盟领导和开发.Android公司在2003年创建,后由Google收购.经过几年的开发,2008年Android系统最早的版本终于面世

【JavaScript】关于Hybrid App技术解决方案的选择

[引言]近年来随着移动设备类型的变多,操作系统的变多,用户需求的增加,对于每个项目启动前,大家都会考虑到的成本,团队成员,技术成熟度,时间,项目需求等一堆的因素.因此,开发App的方案已经变得越来越多了.曾经有一段HTML5的小浪潮,无数的人参与或者看到过一个讨论:原生开发还是混合开发,又或者是Web开发?到底最佳实践是怎样的,笔者认为只有实践过的人才会知道.尤其是在这个充满各种变数的移动互联网时代. [摘要]笔者将从Hybrid App的开发现状出发,阐述Hybrid App的优缺点,同时对比