移动端数据可视化方案的挑战与设计

简介: 移动端数据可视化方案的挑战与设计
🙋🏻‍♀️ 编者按:本文是蚂蚁集团前端工程师索丘在『支付宝体验科技沙龙暨数金荟』的分享内容,欢迎享用~


前言

什么是数据可视化

在进入正题之前,我们简单看一下什么是数据可视化,数据可视化通俗地讲就是将抽象数据进行数据可视化表达,比如下面的例子,我们把抽象的统计数据进行可视化表达后形成 折线图、柱状图、饼图等,这些都是数据可视化。

当然而除了统计数据外,还有关系数据,比如我们的关系图,他是将关系数据可视化后的结果,这些都是我们所说的数据可视化。

什么是移动端数据可视化方案

在看完什么是数据可视化后,我们再来看看什么是移动端数据可视化,移动端数据可视化说白了就是我们在移动端实现的数据可视化,比如下面的一些场景。

需求永远在预期之外

那么我们今天的主题是《移动端数据可视化方案的挑战与设计》,在进入正题前,我们先看我们在做移动端可视化展现时经常会碰到一些问题。

  1. 这样的圆角提示能实现吗?官网上也没看到有类似的样式

  1. 这样的环图能实现这种选中样式吗?它和你们默认提供的差异也很大

  1. 这样的多层嵌套能实现吗?


这些都是我们在日常工作中经常碰到的场景和案例,当然,实际的问题还远比这些要多,我们碰到的需求永远在预期之外,那么在面临移动端这些复杂且个性的可视化需求时,我们是如何应对和设计的呢,下面我将从以下 4 个方面深入和展开

1. 渲染引擎

渲染引擎是解决核心的图形渲染渲染能力,可视化需要将数据可视化展示出来,所以这个就是离不开核心的渲染能力,而我们在底层实现了一套统一的渲染引擎 Ghttps://g-next.antv.vision/zh/docs/guide/introduce

渲染能力

在渲染引擎层,我们实现了统一的渲染能力,我们可以通过简单且一致的方式,快速实现 UI 的绘制

事件系统

除了 UI 绘制能力外,我们还实现了标准的事件系统

动画系统

动画也是可视化里面一项很核心的功能,我们 G 里也实现了一套完整的动画系统

统一的渲染引擎 FEngine

为了使用方便,我们实现了一套类似浏览器的渲染能力,可以让我们非常方便地构造UI,通过声明式的标签,就可构造任意我们先要表达的样式,而且使用方式和 DOM 基本一直,可以非常方便地上手并使用。

2. 可视化能力

可视化能力是数据可视化中一块核心的功能, 可视化能力就是将数据进行可视化输出的能力,那么在讲可视化能力之前,我们先简单看下可视化流程

可视化的流程用一句话概括就是「将数据映射到图形」的过程。当然在映射过程中,我们还经历了「数据整理」、「数据映射」、「数据补全」、「图像处理」等一些列过程。

而如果我们通过一份 json 数据,来看数据的变化的话,那么我们就能看到如下的数据变化过程

没错,数据映射的核心就是将抽象的数据映射成图形的几何数据(位置、大小,颜色等),而如果我们再来看前面的需求,我们就会发现,大部分的差异都是在 UI 的差异上,所以如果我们将映射的逻辑和 UI 绘制的逻辑分开,是不是就能解决大部分问题呢,基于这个思路,我们底层把数据映射和 UI 界面逻辑分离,通过 逻辑 + UI 的方式形成完整的功能组件

通过这种方式,我们在复用数据映射逻辑的基础上,实现了 UI 的灵活自定义,而我们可视化的核心也变成了丰富的数据映射能力,和简单易用的 UI 构造能力,如下图所示,我们通过统一的数据映射逻辑,就能构造丰富的 UI 样式。

3. 扩展与定制

前面提到,我们通过逻辑和 UI 的分离,实现了 UI 的灵活定义能力,但是当我们面向某个特定场景时,往往会发现某个场景下的 UI 样式有很大的共性,在实际场景中,我们一定希望会有一定的沉淀和复用,而基于逻辑 和 UI 分离的模式,我们可以将一个图表进行原子化的拆解,形成细粒度的原子组件,再通过原子组件的组合模式,实现共性的复用

比如如下的2个场景,他们每个场景的样式风格都很接近,我们就可以通过原子化的拆解,形成单一的原子组件,再通过原子组件组合的方式,去形成完整的可视化图表,我们把这种模式叫做领域方案的定制,当随着我们原子组件的丰富,组合图表的丰富度也将得到大量的提升,而且有了统一的沉淀,我们可以实现统一的升级和迭代。将极大方便我们整体的可视化开发。

4. 跨端能力

最后,再来讲一下跨端,因为今天我们在移动端面临的已经不仅仅只有 H5了,还有小程序、甚至是 Native ,而在实际的业务场景中,我们永远希望一套代码能随处运行,所以,如果建立统一的移动端跨端方式,也是需要我们面对并解决的。

然而,针对移动端的跨端方案,我们可以分成 2 部分去看,「面向 Web 的跨端能力」和「面向 Native 的跨端能力」,因为 web 技术栈 和 非 web 技术栈面临的差异和挑战是巨大的。

面向 Web 的跨端能力

面先 Web 技术栈的跨端方案相对会比较简单,我们只要基于底层的绘图技术,在上面封装统一的实现,让后针对不同的端环境和技术栈进行响应的封装和适配,通过统一的标准就能达到统一的目的

面向 Native 的跨端能力

然而,面向非 Web 技术栈的跨端方案就会变得复杂很多,因为我们底层根本没有浏览器存在,也没有浏览器给我们提供的 canvas、svg、webgl 等这些绘图能力,所以针对 native 的跨端场景上,我们在底层实现类似浏览器 Canvas 的 Native Canvas 来实现 Native 侧的渲染能力。并基于 Native Canvas 我们在上层实现了 同 G 类似的渲染引擎,来实现统一的渲染接口 API,基于统一的底层,我们就可以在上层实现完全的一套代码多端运行。

最后

欢迎关注我们的 github,也非常欢迎找我们进行更深入的交流,谢谢大家

相关文章
|
5月前
|
数据可视化 BI 定位技术
数据可视化系列-02各类图表的综合使用介绍及实践-下篇
数据可视化系列-02各类图表的综合使用介绍及实践-下篇
|
5月前
|
数据采集 数据可视化 前端开发
数据可视化系列-02各类图表的综合使用介绍及实践-上篇
数据可视化系列-02各类图表的综合使用介绍及实践-上篇
|
12月前
|
数据可视化 安全 Cloud Native
AntV 你的保姆级数据可视化解决方案
AntV 你的保姆级数据可视化解决方案
523 0
|
9月前
|
SQL 数据采集 搜索推荐
开源大数据分析实验(4)——简单用户画像分析之数据可视化展现
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
|
人工智能 数据可视化 安全
数据时代不具备数据可视化分析能力,你怎么在工作中脱颖而出?
数据可视化和信息可视化都是可视化的一种方式,数据可视化将数据库中每一个数据项作为单个图元元素表示,大量的数据集构成数据图像,同时将数据的各个属性值以多维数据的形式表示,可以从不同的维度观察数据,从而对数据进行更深入的观察和分析。信息可视化,旨在把数据资料以视觉化的方式表现出。信息可视化是一种将数据与设计结合起来的图片,有利于个人或组织简短有效地向受众传播信息的数据表现形式。
数据时代不具备数据可视化分析能力,你怎么在工作中脱颖而出?
|
数据处理 项目管理 数据中心
ABF平台设计(四):体验黑科技-结构化的体验数据平台
场景1: 新接收了一个项目,想了解一下当前的用户使用习惯和反馈,却没有一个全面、权威的数据支撑来帮助你深入了解,只能从用户口中了解到一些零散的信息;
215 0
ABF平台设计(四):体验黑科技-结构化的体验数据平台
|
机器学习/深度学习 SQL 算法
从开发视角看数据分析
导读:数据分析就是要从杂乱无章的数据中将某个或者某些核心指标做提炼、归纳、总结,找到某个规律,但往往得到的结论不足以支撑下一步的动作,劳心劳力最后无果,又要再继续深挖。本文并不是一篇专业的数据分析方法论,而是从研发角度对自己做的一些数据分析进行思考和总结。
从开发视角看数据分析
|
移动开发 数据可视化 小程序
大厂经验(二):多端可视化埋点解决方案
超过10年互联网行业技术工作经验总结
3045 0
大厂经验(二):多端可视化埋点解决方案
|
前端开发 数据可视化 定位技术
数据可视化之下发图实践
随着互联网的快速发展,数据维度越来越广,呈现形式也越发丰富,具有多维度数据特点的相关业务实践都能通过可视化图表来展示,比如个推的下发图,从时间和区域两个维度,可以即时、直观地展现个推数据下发的过程。
1605 0
|
数据可视化 开发者
为10000+业务系统提供数据可视化能力的AntV 又进化了
我们的产品一直「知新」,与用户一直「知心」。
1707 0