百度Web端的 UI 框架:BlendUI

jopen 10年前發布 | 108K 次閱讀 BlendUI 前端技術

BlendUI 是百度公司的一個 Web 前端 UI 框架。BlendUI 能讓Webapp的體驗和交互與Native媲美。

百度Web端的 UI 框架:BlendUI

具體而言,里面包括了兩項關鍵能力:

  1. 多Webview控制能力。讓一個Webapp拆到多個webview中運行,并能用Javascript來調度。搞定了業務無解的難題:頁面過大導致卡頓,頁面切換不流暢,

  2. Native組件嵌入能力。能將Native控件嵌入Webview中,這樣就能讓頁面中那些性能較差的部分用Native來實現,以最大化地提高體驗和交互。

與此同時,開發者看到的是Web API,不僅能快速上手,更由于BlendUI為普通瀏覽器完成了降級和替代方案,一套代碼能同時在BlendUI環境和瀏覽器中同時運行。

最后再簡單說說BlendUI的背景和目標。

在webapp和Native app之間,有一條無法逾越的鴻溝:體驗和性能的差距。輕應用是webapp的延伸,同樣存在此問題。為彌補這條鴻溝,我們要有一套方案,能讓開發者使用web API,做出體驗和性能與原生應用差距不大的應用。

經過一番調研,我們發現幾個重要的現實問題,這些問題導致了webapp和native app之間的體驗差距。

  • webapp缺少淡入淡出動畫、轉場動畫、滑動動畫,或者因此引起的不流暢,以及某些組件的彈力體驗與原生有差距等。

  • 浮動元素的處理。頂部、右側、底部的固定位置的元素可能會有抖動,或者彈出菜單無法點按頁面其他位置關閉,點按不流暢等。

  • 輸入框的問題。包括輸入法無法正常展開收起,框內部滾動問題。

  • 本地緩存能力。包括已瀏覽的圖片本地緩存,靜態資源緩存出現臟數據等問題。

  • DOM變化后的渲染抖動。包括無限下拉時的渲染抖動,無刷新翻頁的閃爍

此外,vision mobile的調研數據顯示,開發者之所以不選用html5的前三大原因是:

  • 性能問題:45.7%

  • 硬件接口有限:37.3%

  • 難以集成原生組件:29.2%

因此,輕組件的首要目標是:彌補輕應用的體驗劣勢,包括頁面間、頁面內的轉場動畫,浮動元素處理,一些對性能要求較高的組件原生化等。

我們將面對的用戶主要是高級web開發者。因此,庫需要有足夠的擴展性和靈活性,同時API必須是web化的。

項目主頁:http://www.baiduhome.net/lib/view/home/1403838781889

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!