AI 年度盘点与2025发展趋势展望,50+案例解析亮相AICon 了解详情
写点什么

滴滴开源轻量级跨端开发框架:Hummer

  • 2021-06-26
  • 本文字数:1863 字

    阅读完需:约 6 分钟

滴滴开源轻量级跨端开发框架:Hummer

历时两年的深度打磨,滴滴普惠泛前端团队和滴滴 R-Lab 泛前端团队联合打造的超轻量级动态化跨端开发框架 —— Hummer,终于开源啦。


它由极具精简的 Hummer Core 和高可扩展的 Tenon Reactive Framework 组成。目前该方案已在滴滴聚合收银台、代驾司机端、代驾乘客端、跑腿骑手端、跑腿商户端、货运司机端、货主端、两轮车、外卖等集团内多个业务线中进行了大规模落地并稳定运行。



业务背景


过去两年随着业务多品类、多场景的快速拓展,对研发团队的吞吐能力提出了更高的要求。如何在保持团队整体规模不变的前提下更高效地支撑业务的快速发展,成为了团队的首要考量,而跨端开发则成为了我们的首要选择。在调研了业界众多跨端方案之后,发现在包体积控制、整体稳定性,以及上手成本等方面,都无法很好地满足我们的需求。在此背景下,普惠泛前端团队和 R-Lab 泛前端团队进行了深入地合作,于 2018 年年底发起了 Hummer 跨端技术项目,旨在以较低成本的投入,产出一款具有高生产效率的动态化跨端开发框架,有效整合团队内部前端和终端开发资源,真正提升团队整体的开发效率。


技术优势


正如 Hummer(蜂鸟)的名字一样,具有小巧轻盈的体态,迅猛强健的翅膀,以及色彩艳丽的外表。


  • 超轻量:小于 1M 的编译产物,能以极低的包体积成本接入到 App 中,打造极致轻量优势;

  • 易上手:Hummer API + Tenon Reactive Framework,兼顾客户端和前端的开发体验,造就极低的学习门槛;

  • 高可用:已在滴滴内部多个业务中得到完整验证,整体 Crash 率低于 0.01%;

  • 高性能:基于原生组件和模块,可以最大化利用原生渲染的性能优势以及平台能力;

  • 跨平台:一套代码可以编译并运行于 iOS 和 Android 平台,使用 Tenon 可以快速兼容基于 Vue 开发的 Web 应用;

  • 动态化:利用 JavaScript(以下简称 JS)解释执行的特性,可以快速部署动态页面,配合 Hummer Nest 平台可以实现云端发布;


▍ 简单演示


为了让大家对 Hummer 有一个直观的了解,先来感受一下分别使用 Hummer API 和 Tenon 开发的 HelloWorld 页面对应的代码。



demo 代码及效果展示图


如上图所示,Hummer 同时支持偏向原生开发体验的 Hummer API 开发模式和偏向前端开发体验的 Tenon(兼容 Vue)开发模式,在不久的将来,我们还将支持更多开发框架,如 React、Angular 等。


技术架构和跨端体系


Hummer 以 JS 引擎为基石,在保持对 JS 引擎最少特性依赖的前提下,实现了类似 React Native 的 Fabric 引擎直通架构,使原生对象和 JS 对象能够相互调动,实现了同步视图渲染,使其充分利用原生渲染的性能优势(目前已支持 JavaScriptCore、V8、Hermers、QuickJS 等业内知名 JS 引擎)。同时,通过组件自渲染能力,几乎完美控制视图渲染的每一个细节,再配合经过调优的 Yoga 布局引擎,抹平了两端视图布局差异,使两端视图保持了高度一致(性能更佳的自研布局引擎开发中)。


如下图所示,我们抛弃了业界其他跨端框架普遍采用的 DSL+VDOM 的技术实现,以换取接近原生的开发体验和性能。但同时,我们也提供了具有响应式开发能力的 Tenon Framework,完全兼容 Vue 3.0 开发框架,紧贴 W3C 标准,遵从网页开发各项规则,可以轻松移植 Web 组件,拥抱 Web 生态(Tenon for React 开发中)。 


除此之外,我们还提供了完善的工具套件和一站式发布管理平台—— Hummer Nest。轻松实现 Hummer 应用的持续集成和交付,并实现对发布版本进行线上跟踪,统计版本覆盖率和激活率等。平台还具有线上崩溃信息的上报和报警能力,能够轻松进行应用质量管控,提升应用稳定性。


Hummer 技术架构图


▍ 案例展示


目前 Hummer 已在聚合收银 SDK、代驾司机端 &乘客端、跑腿骑手端、货运司机端 &货主端、两轮车运营位、国际化外卖客户端等集团内多个业务线中进行了大规模落地并稳定运行,以下是部分滴滴线上业务的 Hummer 页面截图,效果和原生几乎无异。




界面效果图(图中数据已作特殊处理,仅供介绍使用)


结束语


Hummer 是一个非常年轻的跨端开发框架,目前仍处于高速发展期,非常需要大家的宝贵意见和建议,欢迎大家积极使用和反馈,同时也非常欢迎大家积极参与到 Hummer 的建设中来,一起把 Hummer 打造得更好更完善,期待大家的 PRs 和 issues。我们希望 Hummer 可以成为大家在开发客户端时的首选跨端开发框架,能切实帮助大家节省开发成本,提升开发效率。



头图:Unsplash

作者:Danny Yuandong

原文:https://mp.weixin.qq.com/s/GjajcAFKnSvEatnhsGhpdA

原文:滴滴开源轻量级跨端开发框架:Hummer

来源:滴滴技术 - 微信公众号 [ID:didi_tech]

转载:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


2021-06-26 08:005914

评论

发布
暂无评论
发现更多内容

飞舞在化工企业的AI大模型梦想

脑极体

AI

ASP.NET Core中创建中间件的几种方式

EquatorCoco

asp.net 后端 中间件

Infuse 强大的iOS和tvOS视频播放器应用程序

Rose

解读代码检查规则语言CodeNavi的表达式节点和属性

华为云开发者联盟

软件开发 华为云 华为云开发者联盟 代码检查 企业号2024年7月PK榜

自动生成PPT的AI助手有哪些?这5款软件值得推荐!

彭宏豪95

人工智能 职场 PPT AIGC AI生成PPT

全球最大职业社交平台 LinkedIn 为何将 TiDB 应用于大规模服务系统

TiDB 社区干货传送门

社区活动

天水市有等保测评机构吗?在哪里?

行云管家

网络安全 等保 堡垒机 等级保护

Beyond the scalability — 回顾 PingCAP 刘奇在日本用户大会上的部分演讲语录

TiDB 社区干货传送门

社区活动

记录一次版本升级的过程

TiDB 社区干货传送门

版本升级 6.x 实践

JavaScript 判断客户端是手机还是pad

源字节1号

微信小程序 开源 软件开发 前端开发 后端开发

亚马逊API接口推荐:亚马逊商品详情数据接口(amazon.item_get)

tbapi

亚马逊API 亚马逊商品详情数据接口 亚马逊商品详情API 亚马逊商品数据采集

解锁AB测试的力量

FunTester

快手可图大模型Kolors全面开源——一个更懂中文的文生图大模型

快手技术

开源 大模型 文生图 企业号2024年7月PK榜

京东JD商品sku信息API返回值解读:商品规格数据与电商风险管理

技术冰糖葫芦

API 安全 API 文档 API 开发

记一次TIDB开启TLS失败导致PD扩容失败案例

TiDB 社区干货传送门

实践案例 安装 & 部署

ATC 2024 | 快手开源大模型长序列训练加速技术,性能大幅超越 SOTA 方案

快手技术

开源 #大模型

蔚来汽车:拥抱TiDB,实现数据库性能与稳定性的飞跃

TiDB 社区干货传送门

社区活动

中科九洲科技股份有限公司通过电子标准院《低代码开发平台能力要求》测评

电子标准院软工研究室

第三届 TiDB 社区七夕为爱挑战赛正式开启,等你来挑战!把 TiDBer 专属七夕浪漫带给心爱的TA!

TiDB 社区干货传送门

如何通过fomepay自助升级ChatGPT plus

蓉蓉

ChatGPT

天底下没有永远免费的GPT-4;AI产品用订阅制就不合理!让用户掏钱的N种定价技巧

蓉蓉

AI GPT-4 Claude

仙侠天花板,圆你土豪梦,上古传说手游详细图文架设教程

echeverra

上古传说

Navicat for MySQL Mac(数据库管理开发工具)v16.3.4汉化版

Rose

总是拿不下大客户 不妨从它的企业全历史行为数据里找找思路

客户在哪儿AI

ToB营销 ToB增长 ToB销售

【堡垒机小知识】农业需要堡垒机吗?为什么?

行云管家

网络安全 数据安全 堡垒机

上海梦创双杨数据科技股份有限公司通过电子标准院《低代码开发平台能力要求》测评

电子标准院软工研究室

闯荡西游之路,续写经典传奇,大话西游图文架设教程

echeverra

大话西游

代码将由大模型生成 解密中国电信“星辰大模型·软件工厂”

科技热闻

滴滴开源轻量级跨端开发框架:Hummer_开源_滴滴技术_InfoQ精选文章