打破web开发困局 Blend完美接盘Native app

云计算
近日,全球软件开发大会QCon亮相上海。作为为团队领导者、架构师、项目经理和高级软件开发人员量身打造的企业软件开发大会,QCon邀请了诸多业内大牛为大家做出技术分享。其中,直达号Clouda+团队的百度资深工程师雷志兴用一场名为《Blend,完美地混合Web App与Native App》的演讲,吸引了与会代表们的大量“眼球”。

近日,全球软件开发大会QCon亮相上海。作为为团队领导者、架构师、项目经理和高级软件开发人员量身打造的企业软件开发大会,QCon邀请了诸多业内大牛为大家做出技术分享。其中,直达号Clouda+团队的百度资深工程师雷志兴用一场名为《Blend,完美地混合Web AppNative App》的演讲,吸引了与会代表们的大量“眼球”。

    现场,雷志兴从百度轻应用和直达号讲起,继而谈到Blend的初衷。“去年八月我们推出了轻应用,这是一项面向开发者的平台和技术,而今年在轻应用的基础上我们推出了直达号。百度提供了很强的渠道分发能力,但从体验上来说,我们依然觉得轻应用和Native app有一定差异,而Blend的就是为了弥补这些差异而出现。”

    在他看来,Blend不仅仅是一项“拿来即用”的开源技术,更是一种开发理念。使用这个理念,App不仅能保留web灵活性,剔除冗长的版本发布过程,做到极快的迭代速度,还能在交互中保证足够的流畅性。

 

“Blend中有两项核心技术:多webview技术和插件动态加载技术。前者能让web的能力和性能得到质的提高,后者则是在架构上保证了运行环境的简单高效”雷志兴表示。 

无线困境谁来破局

    随着移动互联网的发展,Native App开始逐渐到达它增长的天花板,于是越来越多开发者开始把目标瞄向web开发。在初期,一般大家在做移动web站点时,都会追求一些无刷新的跳转、换页效果,可是这些效果在高端机上都会偶尔出现运行不流畅等问题,在中低端智能机上更是难以运行。所以近一两年来,大家倾向于不在移动web站点中采用复杂的特效,只在最关键的部分,用最小的代价来实现。这样一来虽然满足了大部分用户的需求,不过很多个性化的效果又无法顺利实现了。

    关于WebApp的能力,Developer Economics在调研了Google Play中的30339App曾给出过一份报告,报告显示,抛开性能的话,如果只使用HTML5技术,能实现37%app,如果使用Phonegap,能实现49%,如果使用Appcelerator,能实现63%

      与此同时,大量的调研都显示性能和API数量不足是webapp的主要软肋,而性能的最主要体现是在页面切换的转场过程。因此Clouda+团队面临的首要目标就是如何能让WebApp的转场像Native App那般流畅。

      iOS下,有较好的设备性能和浏览器支持,用Web来做复杂交互问题不太大,但Android下就相当棘手了。Clouda+团队的Blend项目正向前端开发者展示着另一种可能。 

调研尝试寻找源头

      轻应用有两大入口:移动搜索和手机百度App,接入轻应用的开发者尤其看重手机百度入口。因为在手机百度中,由于轻应用的运行环境是百度框,所以开发者可以使用一些Native API的接口,即Clouda API,包括提供设备能力的Device API,提供百度云服务能力的MBASS API等。

      最初,他们团队重点考虑的是类似Appcelerator的方案,不过他们不像Appcelerator那么激进地将Javascript编译成Native code,而希望暴露一组基本的Native API,供前端工程师调用以实现流畅的App效果。但这样随之而来的问题是,开发者的可定制性会变得特别差,极度依赖Native API,开发感受会很糟糕,毕竟开发者操作的不再是DOM,而是一个私有的API。于是这个方案很快就被否定了。

    后来,雷志兴发现,其实大家在性能方面的担忧主要还是在转场和动画上。不管页面多复杂,很少有会担心页面内部的性能。于是他提出了一个概念——Every element can be a webview。由于轻应用的使用场景和Native结合得很好,Blend团队就开始利用Native技术来做转场。相对用web技术,用Native来做转场在技术上就可控多了。

技术开源贡献业界

    因为把握住了问题的核心,所以Blend的核心实现也很顺利,雷志兴说,Blend秉承了模型从简的原则,并且为开发者保留最大的灵活性。所谓模型从简,就是Blend提供的是核心能力:让Javascript能控制webview,就好像控制DOM一样,不同webview之间通过事件通讯,JavascriptNative code通过事件通讯,这让开发者能快速理解核心概念并上手。此外,为开发者保留最大的灵活性,主要体现在Blend内部不大量依赖原生控件,webview内部的样式完全可以通过开发者来自定义,在UI风格上面没有任何限制,拥有无限的灵活性。此外,Blend也不会影响开发者对其他库、框架的选择。

    Blend的这个概念让View有了‘原生’支持,任何的Element都可以用一个独立的webview来实现,浏览内核的负担就减轻了,而且切换时的过场动画用原生代码实现,也保证了性能。”雷志兴说。

   Blend的出现,对轻应用开发者来说是巨大的福音,他们可以在在不接触任何Native代码的前提下,就让轻应用的体验有质的提高,Blend也已经通过轻应用Runtime下发到部分轻应用的运行环境中了。

    值得一提的是,雷志兴非常热衷于技术开源,在百度,他所所负责的技术产品全部是开源项目:Tangram是百度第一个开源的技术项目,FIS亦于2012年开放源代码,Clouda+同样也是开源产品。所以,Blend除了能为百度轻应用解决体验问题,同样适用于第三方的App,开发者可以将SDK打包入App,单独发布App上架。

   Blend能在能保证用户体验的前提下节省人力成本,又有很高的定制性,迭代速度和web相当。如果你正开发App的初版,你可以用Blend理念来加速开发,尽早上线MVP(最简可行产品)并快速迭代;如果你正开发一个大中型App,这个理念能释放web的灵活性,让web开发工程师在App迭代过程中做得更多、做得更好。

责任编辑:鸢玮 来源: 计世网
相关推荐

2022-03-02 16:05:16

Web前端代码

2011-04-12 16:02:09

Web AppNative AppWeb

2014-12-18 13:40:16

Web AppHybrid AppNative App

2011-12-31 09:17:02

Web App

2013-09-04 15:07:06

移动应用设计

2013-10-09 13:12:39

App开发者

2021-03-17 11:51:10

个人信息泄露监管

2019-06-03 13:15:51

AI

2014-11-25 12:30:50

Web AppNative App

2013-04-10 15:14:18

Web App开发WebApp

2011-12-08 20:09:12

App

2015-08-13 13:37:12

O2O

2013-12-16 15:07:59

NativeHybrid开发移动

2013-09-04 14:55:01

Web AppNative App技术

2013-09-04 15:24:39

Native AppWeb App

2015-06-17 10:28:10

WebAPP开发技巧

2015-06-04 10:44:59

WebAPP开发技巧

2009-05-18 09:21:46

XMLRIAREST

2013-05-28 13:55:50

工具类App变现收购

2016-01-20 16:04:58

NativeApp开发
点赞
收藏

51CTO技术栈公众号