最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

移動端的「基金地圖」是怎么做的?

2022-12-14 14:17 作者:支付寶體驗科技  | 我要投稿

?????♀??編者按:本文作者是螞蟻集團前端工程師芒僧,今年 8 月份開始到 9 月底,「支付寶 - 基金」里面的指數(shù)專區(qū)進行了一波大改版升級,這次借助 F2 4.0 強大的移動端手勢交互能力,我們嘗試了一種多維度探索式選基決策工具,本文具體介紹了它是如何實現(xiàn)的。

圖片
這次在 「支付寶 - 基金」里的【指數(shù)專區(qū)改版】需求,我們玩了一種很新的東西 ??

8 月份開始到 9 月底,「支付寶 - 基金」里面的指數(shù)專區(qū)進行了一波大改版升級,這次借助 F2 4.0 強大的移動端手勢交互能力,我們嘗試了一種多維度探索式選基決策工具(如上動圖所示)。

簡單來說,用戶可以在一個散點圖上根據(jù)「收益」和「波動」這兩個維度全覽對比整個市場里的指數(shù)基金,并選出適合自己的指數(shù)基金進行投資,這個功能我們愿稱其為「指數(shù)圖譜」?? 。

圖譜是這個業(yè)務場景上的叫法,實際上圖譜應該是關系圖而非統(tǒng)計圖.

圖片
功能已發(fā)布,頁面訪問路線如上

?先看看有哪些功能點

  1. 精細打磨的移動端手勢交互,平移、縮放、橫掃不在話下 :

縮放
圖片
平移
圖片
橫掃

2. 底部產(chǎn)品卡和圖表的聯(lián)動交互:


點擊圖表上的氣泡
滑動底部卡片

3. 無懼數(shù)據(jù)點太多看不到細節(jié),我們有自適應的氣泡抽樣展示和自動聚焦:

圖片
抽樣優(yōu)化前
圖片
抽樣優(yōu)化后


那么,怎么做的呢?

最開始看到這個需求的時候,當時覺得可行性比較低。因為需求里面針對圖譜的方案以及細節(jié)都特別模糊;不敢承諾各種功能和排期,所以先做了一輪比較完整的系分,增加一些說話的底氣 ??

?? 第一步:同類產(chǎn)品調(diào)研

因為設計同學的靈感來自于?大眾點評 APP?上面的「美食地圖」,所以第一步就是做了一次「同類產(chǎn)品調(diào)研」,仔細去看了一下 「美食地圖」上究竟有哪些花樣,有哪些體驗優(yōu)化的小細節(jié),不看不知道,一看發(fā)現(xiàn)細節(jié)原來這么多啊 ??:

圖片
圖表和卡片的交互聯(lián)動
圖片
點抽樣展示
圖片
列表視圖和卡片視圖可切換
圖片
交互時卡片自動折疊
圖片
散點懶加載
圖片
上滑直接喚起詳情頁


做完這一步之后,大概能夠知道自己距離“成品”有多遠的距離,方便自己評估工期;另外還可以在系分評審的時候把這些細節(jié)提出來,防止臨近發(fā)布了突然發(fā)現(xiàn)某個交互邏輯有個致命的漏洞(別問我怎么知道的,要命的)。這波調(diào)研之后,最終我們在實現(xiàn)上致敬了「美食地圖」50%?的體驗細節(jié)優(yōu)化 (狗頭)。

?? 第二步:功能點分析

第二步就是從需求本身的角度做功能點的分析,這樣可以方便我們拆分組件,為后續(xù)做分層設計打下基礎,明白哪些是需要支持可擴展的。這一步大家都熟悉,就不贅述了:

圖片

?? 第三步:通用化設計

有了功能點的分析之后,就可以進行通用化的設計了,這就來到了喜聞樂見的沉淀組件的設計環(huán)節(jié) ??

我們希望這個功能不僅僅是純業(yè)務代碼,期望下次能夠復用大部分核心功能?(理想很豐滿),所以在系分的時候是往通用化的方向去設計的,這里主要做了三件事情:分層設計概念標準化、核心流程定義

1. 分層設計

拆的邏輯是按最基礎的?M(數(shù)據(jù)層) - C(控制層) - V(視圖層)?拆分的。

有了分層設計和功能點分析之后,就可以知道哪些應該放到組件內(nèi),哪些接口應該被抽象成通用接口,哪些應該保留擴展性供使用者自己來定義,就可以畫個表格了,一一決定哪些模塊應該放到組件內(nèi):

2. 概念標準化

下面來到造詞環(huán)節(jié),把一些常用的概念都定義成一個個名字,這樣方便和后端、設計協(xié)同的時候效率更高,同時也方便自己定義清楚各個模型(類)。(這里其實取名越貼切越形象越好,有點考驗語言能力了屬實是)

3. 核心流程定義

這一步是腦補環(huán)節(jié),在腦子里跑一遍整體的流程,也是整個需求最核心的流程,比如這里會分成四種流程:初始化流程 、散點圖交互流程、底部卡片交互流程、頂部tab交互流程

進而可以將四種流程里面的各節(jié)點做一些歸類,比如都會有圖表渲染、數(shù)據(jù)補全、卡片渲染這些共同的節(jié)點,而這些節(jié)點就可以實現(xiàn)成具體模型里的具體方法。

?? 第四步:難點分析

根據(jù)上面拆分的各模塊,列出哪些點是實現(xiàn)有困難的,耗時長的。這樣就可以在評估工期的時候多 Battle 一下,還能砍砍需求,更可以讓底層引擎/SDK來突破這些難點(比如找 F2 的核心開發(fā)者) :

?? 最后一步:

按照上述的設計進行代碼編寫。

難點實現(xiàn)

1. 移動端的圖表手勢交互體驗優(yōu)化

開發(fā)之初,F(xiàn)2 只支持單軸(x或者y)的平移縮放,也不支持全方向交互;在 swipe 上的體驗也不太好(阻尼感很強),所以在項目開發(fā)過程中, F2 完成了很多體驗優(yōu)化,打磨出很多細致入微的良好體驗:

  • X軸、Y軸可同時開啟平移、縮放

  • swiper 體驗效果優(yōu)化

  • 移出可視區(qū)之后的蒙層遮擋能力(view-clip)

  • zIndex 元素層疊渲染

  • 平移縮放性能優(yōu)化

2. 氣泡抽樣展示優(yōu)化

因為散點圖上的點在初始化的縮放比例下分布非常密集,所以如果每個點上面都繪制一個氣泡的話,就會顯得密密麻麻的,根本無從下手(如下圖1所示)。針對這樣的問題,做了「氣泡抽樣展示」的優(yōu)化。


實現(xiàn)方式上就是渲染前遍歷所有的點,如果在這個點周圍某個半徑距離之內(nèi)有其他點,那么就認為這個點是臟點(dirty point),最后篩選出所有“干凈”的點進行氣泡展示。

如下圖圖1所示,灰色點(右上角)是干凈點,而灰白色的點(偏中間的位置)因為其在圓圈半徑范圍之內(nèi)有其他點存在,所以這個點是臟點。? ? ? ?

多提一句,這樣的過濾方式會使得密集區(qū)域的點都不會展示氣泡,后續(xù)會進行優(yōu)化。

3. 獲取到可視區(qū)內(nèi)的所有點

由于做了氣泡抽樣展示,所以上圖中的底部卡片只會展示用戶可視區(qū)內(nèi)散點圖上有氣泡的點(細心的盆友可以發(fā)現(xiàn),散點圖上有兩種點,一種是帶氣泡的交互點,一種是不帶氣泡的縮略點)。那么就需要一個獲取「可視區(qū)內(nèi)所有的點」,實現(xiàn)思路如下:

? ? ? ? ? ? ? ? ? ? ? ? ?

4. 數(shù)據(jù)懶加載

底部卡片的數(shù)量是由散點圖上點的數(shù)量決定的,而每張卡上都有不少的數(shù)據(jù)量(基金產(chǎn)品信息、指數(shù)信息、標簽信息),所以不能一次性就把所有點里關聯(lián)的數(shù)據(jù)都查詢出來(會導致接口返回數(shù)據(jù)過多)。

這里采取的是懶加載的方式 ,每次只在交互后查詢相鄰 N+2/N-2 張的卡片數(shù)據(jù),并且增加了一份內(nèi)存緩存來存儲已經(jīng)查詢過的卡片數(shù)據(jù):

基本的流程圖如下:

實際線上效果

項目上線之后,我們發(fā)現(xiàn)散點圖區(qū)域的交互率(包含平移,縮放)非常高,可以看出用戶對新類型的選基工具抱有新鮮感,也樂于去進行探索;也有部分用戶能夠通過工具完成決策或者進行產(chǎn)品之間的詳細對比(即點擊底部卡片上的詳情按鈕),起到了一個工具類產(chǎn)品的作用 ?? 。

致謝

感謝 AntV 以及 F2 對移動端圖表交互能力的支持。

移動端的「基金地圖」是怎么做的?的評論 (共 條)

分享到微博請遵守國家法律
武汉市| 同仁县| 芜湖县| 三都| 六盘水市| 油尖旺区| 钦州市| 德安县| 辽宁省| 大同县| 红河县| 株洲县| 正蓝旗| 拉萨市| 托里县| 昭平县| 湖州市| 龙泉市| 乌兰县| 长垣县| 阿荣旗| 贺州市| 隆化县| 阳东县| 新巴尔虎右旗| 平顶山市| 苗栗市| 福清市| 格尔木市| 屯门区| 阿图什市| 衡阳县| 措勤县| 林西县| 荣成市| 乃东县| 阜新市| 诸城市| 茶陵县| 盐城市| 太湖县|