11 月 8 日消息,滴滴出行今日宣布開源Web移動端組件庫cube-ui,該技術(shù)擁有質(zhì)量可靠、體驗極致、標(biāo)準(zhǔn)規(guī)范和強(qiáng)擴(kuò)展性這四大特點,并擁有獨特的后編譯技術(shù)方案幫助大幅優(yōu)化性能。這是繼今年 6 月開源VirtualAPK后,滴滴的又一次開源動作。
cube-ui從滴滴業(yè)務(wù)中提煉而來,由滴滴 WebApp 前端架構(gòu)組開發(fā)和維護(hù)。cube-ui 的目標(biāo)是讓移動端的開發(fā)更容易,讓開發(fā)人員更加專注于業(yè)務(wù)邏輯的開發(fā),提升研發(fā)效率。
之所以將其開源,滴滴方面透露:“去年底,滴滴 WebApp 團(tuán)隊在用 Vue.js 2.0 對業(yè)務(wù)進(jìn)行重構(gòu),并開發(fā)了一套移動端組件庫 cube-ui 支撐業(yè)務(wù)的開發(fā),經(jīng)過了一年多的業(yè)務(wù)考驗,cube-ui 也日趨成熟,好的東西必須要和大家分享,于是我們在今天正式將其開源。”
該技術(shù)研發(fā)工程師發(fā)表了經(jīng)驗之談:“移動端組件庫寫的好不好,就看 Picker 組件寫的好不好,而cube-ui 的 Picker 是目前所有移動端組件庫中實現(xiàn)最細(xì)致、體驗也是最好的,接近原生 iOS 選擇器的效果。類似的還有 IndexList 索引列表組件,我們在一些交互的細(xì)節(jié)上都考慮的非常細(xì)致,比如對吸頂標(biāo)題的處理,按壓態(tài)的處理等!
相較于市面上同類技術(shù),該項目獨有的后編譯技術(shù)是滴滴前端團(tuán)隊總結(jié)出的一套優(yōu)化技術(shù)方案。由于在一個項目中經(jīng)常會引用多個經(jīng)過 ES6 開發(fā)、Babel編譯發(fā)布的NPM模塊,而Babel編譯則會產(chǎn)生多份額外代碼,針對該問題,cube-ui 組件庫運(yùn)用了后編譯技術(shù)方案,可讓最終使用方引用 cube-ui 組件庫編譯產(chǎn)生的代碼體積減少,幫助優(yōu)化性能。滴滴研發(fā)同學(xué)也呼吁越來越多的NPM 模塊支持后編譯,這樣應(yīng)用最終編譯后體積才會更小,后編譯技術(shù)方案效果才會更好。
未來滴滴的工程師們將持續(xù)對 cube-ui 迭代和優(yōu)化,包括但不限于以下幾個方向:豐富組件庫,開發(fā)更多通用組件; 支持換膚功能,和 UI 團(tuán)隊配合設(shè)計出幾套皮膚,同時也支持自定義皮膚能力;支持TypeScript/Flow,由于靜態(tài)類型檢查是未來趨勢,cube-ui 也會考慮對它們的支持。
目前,cube-ui已登錄GitHub,工程師們可戳鏈接查看源碼:https://github.com/didi/cube-ui,也可在滴滴的開源平臺上(https://didi.github.io/)獲取更多信息。
開源文化正在成為滴滴程序員文化的重要一部分,不久前的 10 月 24 日程序員節(jié),桔廠宣布成立開源委員會,由高級副總裁章文嵩出任主席,他說:“滴滴除了要為用戶提供優(yōu)秀的產(chǎn)品和良好的體驗外,更需要對外輸出滴滴領(lǐng)先的技術(shù),與世界共享我們的智慧,所以我們鼓勵同學(xué)們積極參與業(yè)界的開源項目,不斷對外輸出內(nèi)部的優(yōu)秀項目!