百度張袁煒:Blend架構讓WebApp變得更加流暢

 「其實要想讓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/

相關文章
相關標籤/搜索