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