天貓團隊開源跨平臺模塊化 UI 界面開發框架 Tangram

軟件 電子商務 iOS 科技 笑看世間公平正義 2017-04-03

Tangram,七巧板,是天貓團隊剛剛開源的跨平臺模塊化 UI 界面方案。據悉,之所以命名為 Tangram ,是希望它能像七巧板一樣可以通過幾塊積木就搭出豐富多彩的界面。

天貓團隊開源跨平臺模塊化 UI 界面開發框架 Tangram

什麼是 Tangram

Tangram 不僅僅是一個 Native(iOS & Android)的界面開發框架,而是從日常工作中沉澱出的一套界面解決方案,涵蓋了 Native SDK、GUI操作檯、後端邏輯容器、組件庫機制的一整套方案。

Tangram 從手機天貓 - 首頁方案抽象而來,是面向組件的界面方案,是開發團隊不斷權衡性能、穩定性、開發效率、靈活性和動態性多方面表現的結果。除了手機天貓首頁外,還支撐了天貓 App 中的天貓直播、我的天貓、猜你喜歡等多個業務,並且在阿里星球等多個阿里系 App 中有所應用。

天貓團隊開源跨平臺模塊化 UI 界面開發框架 Tangram

Tangram 關注的重點

Tangram 關注三個重點:面向業務、多端一致性和高性能。

1、面向業務

Tangram 來源於多次試錯和方向的調整,最終站在業務角度出發,權衡多項技術指標的結果。所以面向業務是出發點,是整個 Tangram 體系的最基本原則。

基於這個原則,在端上 Tangram 始終堅持粗粒度組件。粗粒度意味著通用性和靈活性的下降,某種程度上還會對動態性造成影響,但在第2型業務中通用性、靈活性和動態性的需求是有節制的,在粗粒度上完全可以滿足業務需求。而且,粗粒度還具有使用成本低,性能更好等優勢。在端上重點精力則投入到提升組件庫複用度,佈局容器和組件的豐富性,從而推動業務發展。

除了端上的工作,另一部分重點工作在控制檯和服務網關的建設上。作為一個面向業務的方案,控制檯是業務方和產品的接口,控制檯的主要目標是讓業務方可以直接控制基於 Tangram 建設的產品——調整頁面佈局,切換頁面數據,等。服務網關的建設目標是最大程度的降低業務創建 Tangram 頁面的壓力和成本。

2、多端一致性

在多年的業務開發經歷中,屢次被多端表現不一致的問題困擾。為了實現業務訴求,不得不通過複雜的網關邏輯來兼容多端邏輯不一致情況,以實現表現一致。因此團隊制定了兩個 Tangram 端開發原則:

  • 任意新功能的提出都是不區分平臺,在功能設計中必須同時考慮多端功能,具體的實現方案和邏輯必須多端統一 Review 以保證多端表現一致。

  • 任意一端的變更都必須在改動前把方案同步給其他端,而且變更必須多端同步發佈。

3、高性能

在面向業務的原則之下,已經給高性能打下了一個良好的基礎。而在高性能的思考上重點基於頁面渲染效率和組件回收複用兩方面。

  • 頁面渲染——為了提升渲染效率,Tangram 將在視圖渲染之前把大量的計算工作在 VM 中完成,並緩存在 VM 組成的樹形結構裡。

  • 回收和複用——Tangram 在 Android 和 iOS 平臺上分別開發了 VLayout 和 LazyScroll 兩個基礎組件,通過一個雙索引可見區域組件發現算法,實現了跨父節點組件的高效回收和複用。

此外,開發團隊還表示,目前已經完成了新版 Tangram 2.0 的討論,開始執行2.0版本的重構工作。在 Tangram 2.0 中出於適應業務形態的變化,將對開源的 Tangram 1.0 中基於佈局和組件的二維結構進行進一步的抽象,用於支撐更復雜的流式佈局。並且對於控制檯和服務網關也將進一步升級,大幅提升新業務開發效率。在性能層面,對組件開發模型和渲染模式進行一次較大的升級,在渲染和滾動效率上將得到巨大提升。

文章轉載自 開源中國社區http://www.oschina.net/news/83432/alibaba-opensource-tangram

相關推薦

推薦中...