“其实要想让WebApp变得很流畅并不难,只要咱们关注性能和交互的流畅度,而后提供很简单的HTML API让你们可以迁移过去,就可以让WebApp流畅运行了。”12月21日,在第57期百度技术沙龙上,百度移动云事业部资深研发工程师张袁炜表示。前端
WebAPP在开发效率上与NativeApp相比有着自然的优点,可是在体验上却有着较大的差距。移动互联网时代如何实现优点互补,将Native能力融入到WebAPP中,是业界一直在探讨的话题。本期百度技术沙龙,加入百度已经6年的资深前端张袁炜为你们带来了主题为《融入原生能力到WebApp》的技术分享,主要讲解了Blend架构对于WebApp的优化问题。web
据悉,本期百度技术沙龙是今年的最后一期,做为国内最先的技术交流活动,百度技术沙龙即将迎来本身的第5个年头,现在百度技术沙龙已经被北京甚至全国的技术爱好者视为不可或缺的技术学习家园。编程
“在作Blend框架中咱们会遇到许多问题。对于这些问题,咱们的解决方案是降级和加强,这是两个不一样的设备或者是要匹配两个不一样的目标时,咱们采用的方案。”张袁炜说。浏览器
Blend开源 用一整套方案使WebApp流畅起来缓存
Blend实际上是HybridApp的方案,张袁炜和他的团队之因此要造它,是由于现有的HybridAPP方案在性能上解决不了问题,他们但愿可以有一个提升性能,有融合能力的HybridAPP解决方案。服务器
在张袁炜看来,WebApp最大的优点在于迭代速度。移动互联网时代,以WebApp为主角的HTML5开发方案的迭代速度很快,它是随时能够更新的,由于它每次用户访问,若是不走缓存,它就会到服务器上获取最新的数据。而不管是安卓仍是iOS的Native App一个发版的周期平均下来大概是十四天,这会严重影响迭代速度。微信
张袁炜表示:“天下武功惟快不破,你们知道移动互联网时代,一个公司或者一个产品想要成功,有可能它的时间要求是天级别的。若是你一个产品晚上线一天机会就错失了,也就是说咱们要尽量加快迭代速度。”网络
做为正在作的应用开发框架,Blend不只仅是一项“拿来即用”的开源技术,更是一种开发理念。使用这个理念,App不只能保留web灵活性,剔除冗长的版本发布过程,作到极快的迭代速度,还能在交互中保证足够的流畅性。架构
这样的实现结果提及来容易,可张袁炜团队刚刚开始架构Blend时,着实费了一番功夫。他们首先针对WebApp的性能、能力、易用性三个大方面开始了整套架构方案的研发。在经历了一段时间的摸索以后,张袁炜发现了一套比较合理的架构方案:在Web交互中,用原生的Web实现的时候,很是卡的东西用Native来实现,其余全部的交互和全部的开发都用纯Web语言来下降开发成本。app
这是张袁炜和他的团队进行Blend开发时的基本思路,有了思路,那么应该怎么作这个架构?总的来讲,Blend会支持三个平台,一个是iOS,一个是安卓,还有一个就是浏览器。
在iOS或者是安卓端,张袁炜和他的团队在上面开发一个Runtime,把原生的能力经过js的封装,把它的接口暴露出来给上面的js或者是页面调用同时,他们也开发了不少JsAPI给开发者使用。“首先是端能力,这个更像应用调起,你要调起微信或者是百度搜索,咱们还具备本地文件的能力;第二个是云能力,这里面包括百度的服务,账号的服务和支付;第三个是UI能力,咱们有转场动画等等,还有手势跟随,还会用Native组件。”张袁炜介绍道。
打造原生应用体验 Clouda+为直达号提供“引擎”
“Blend能在能保证用户体验的前提下节省人力成本,又有很高的定制性,迭代速度和web至关,对咱们编程开发的帮助很大。”在现场的讨论环节,一位听众表示。
在现场,张袁炜还为听众们列举了很多案例。他介绍,开源的Blend技术糅合了WebApp和NativeApp各自的优点,结合百度强大的云能力,能够为直达号和WebApp开发和部署提供有力支持。
做为Clouda+的重要作成部分,Blend为移动web应用开发提供了总体解决方案,最近火爆网络的百度直达号正是由于有了Clouda+,才能作到用户体验极佳,体验和交互媲美Native应用。
具体来讲,Blend是一套JavaScript的API,将Native的端能力和百度的云服务融合(Blend)到WebApp中。
“Blend由BlendUI和BlendAPI两部分组成。主要解决了webapp的两大难题,UI交互不流畅和没法调用设备能力。”张袁炜解释道。
BlendUI让Javascript拥有操做Webview和Native控件的能力,让web移动端交互流畅,体验无异于NativeApp。BlendAPI则让WebApp拥有移动设备的原生能力和百度云服务能力。
WebApp的一大困境在于可供web调用的API远不如Native的完善。好比手机是3G仍是wifi网络,电量状况,通信录读取等,这些局限给手机web开发者带来了功能完备性的障碍。而Blend API弥补了这一鸿沟,它能让webapp的API更完备,让API的性能速度获得提高,暴露给开发者的都是经过统1、标准化的web API。
更为重要的是,Blend API内置于拥有极大装机量的手机百度,使得百度直达号开发者能在数亿用户的手机上直接使用这些本地能力,而且拥有破壳检索、自动升级免安装等优点功能。
在张袁炜老师交流分享的过程当中咱们发现,现场有很多的在校大学生,他们正在利用Blend作一些直达号相关项目,后生可畏,值得鼓励,也但愿愈来愈多的专业人士积极参与到沙龙中来,为百度技术沙龙营造了良好的学习氛围。
百度技术沙龙是百度每个月组织的一项技术开放交流活动,至今已经举办57期。致力于以“技术开放”的心态,分享行业领先的技术理念和技术实践。秉承“畅想、交流、争鸣、聚会”的理念,为互联网工程师、软件开发者提供一个快速学习和不断成长的平台。百度技术沙龙但愿可以借助技术分享往后有效推进中国互联网的技术发展与行业创新。
blend官网的网址: http://clouda.baidu.com/