天猫团队开源跨平台模块化UI界面开发框架Tangram
【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》
Tangram,七巧板,是天猫团队刚刚开源的跨平台模块化 UI 界面方案。据悉,之所以命名为 Tangram ,是希望它能像七巧板一样可以通过几块积木就搭出丰富多彩的界面。
什么是 Tangram
Tangram 不仅仅是一个 Native(iOS & Android)的界面开发框架,而是从日常工作中沉淀出的一套界面解决方案,涵盖了 Native SDK、GUI操作台、后端逻辑容器、组件库机制的一整套方案。
Tangram 从手机天猫 - 首页方案抽象而来,是面向组件的界面方案,是开发团队不断权衡性能、稳定性、开发效率、灵活性和动态性多方面表现的结果。除了手机天猫首页外,还支撑了天猫 App 中的天猫直播、我的天猫、猜你喜欢等多个业务,并且在阿里星球等多个阿里系 App 中有所应用。
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 中基于布局和组件的二维结构进行进一步的抽象,用于支撑更复杂的流式布局。并且对于控制台和服务网关也将进一步升级,大幅提升新业务开发效率。在性能层面,对组件开发模型和渲染模式进行一次较大的升级,在渲染和滚动效率上将得到巨大提升。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
QQ浏览器9.6正式发布 夜间模式终于来了
【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 近日,QQ浏览器9.6正式版发布,带来了大量功能与特性,比如Alt+左键点击可快速保存图片;新增夜间模式,标签可自定义宽度;书签横栏设置隐藏时,新标签页会出现书签栏等等,相比之前发布的Betab版,新增崩溃问题修复,具体如下。 QQ浏览器9.6更新日志: 主要功能特性: Alt+左键点击可快速保存图片; 夜间模式(菜单-工具中开启); 标签可自定义宽度; 书签横栏设置隐藏时,新标签页会出现书签栏(可设置); 增加地址栏“关键词+Tab键”快速搜索功能; 清理上网痕迹面板设计优化,增加清理时间段选择; 地址栏输入时,默认显示最近访问和个人收藏网站(可设置); 其他功能特性: 广告过滤添加白名单时自动提取主域名; 安装包和桌面主图标小幅更新; 导入本地书签面板样式优化; 增加“忽略系统DPI设置”; 优化资源占用,减少进程数; 增加无障碍组件开关; 单行模式下可选择是否显示主页按钮; 登录时也可查看本地书签文件夹(可手动隐藏); 书签右键增加“替换为当前网站”; 问题修复: 修复Win10下Edge内核无法使用鼠标手势...
- 下一篇
微软发布P语言,欲将云、AI与物联网“一网打尽”
【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 【51CTO.com快译】 微软最近又有新动作:将旗下的P语言定位为云、人工智能和嵌入式系统的异步性解决方案。众所周知,这三项技术在世界范围内的影响力正在一步步扩大。 直面异步事件驱动编程,开放源代码P将建模和编程统一在一起。微软***研究员称,今天的软件使用云资源,通常嵌入物理世界的设备中且采用人工智能技术。这样的应用程序具有异步特性,导致问题的竞争条件和海森堡bug,这个bug是和时间相关的错误,往往消失在调查中。P语言的建立则用来迎接这个挑战。 在P语言中,协议和规范的编写级别很高,P语言呈现了一个基于通信事件中当前执行状态的计划模型;每一个事件都伴随着输入的有效载荷值,与Rust语言类似。 据Qadeer介绍,P编译器提供自动测试,用于运行协议的并发相关的竞争条件和可执行代码。P支持并发建模,具备安全性和可延续性,并使用系统搜索检查程序是否满足其规格。此外,P程序可以编译成可执行的C代码,成为连接起高级和低级工具间的桥梁,并且帮助程序员接受其正式的模型和规范。 这种计算机语言让工程师们模拟大型Azure服务...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 设置Eclipse缩进为4个空格,增强代码规范
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS6,CentOS7官方镜像安装Oracle11G
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2全家桶,快速入门学习开发网站教程
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装