Skip to content

WangLao100/Hummer

 
 

Repository files navigation




简介

Hummer 是一套高性能高可用的跨端开发框架,一套代码可以同时支持开发 Android 和 iOS 应用。现已经支持 Vue/React/TypeScript/JavaScript 四种语法,面向大前端开发人员,总有一款适合你。

技术优势

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

  • 超轻量: 小于 1M 的编译产物,能以极低的包体积成本接入到 App 中,打造极致轻量优势;
  • 易上手: Hummer API + Tenon Reactive Framework,兼顾客户端和前端的开发体验,造就极低的学习门槛;
  • 高可用: 已在滴滴内部多个业务中得到完整验证,整体 Crash 率低于 0.01%;
  • 高性能: 基于原生组件和模块,可以最大化利用原生渲染的性能优势以及平台能力;
  • 跨平台: 一套代码可以编译并运行于 iOS 和 Android 平台,使用 Tenon 可以快速兼容基于 Vue 开发的 Web 应用;
  • 动态化: 利用 JavaScript 解释执行的特性,可以快速部署动态页面,配合 Hummer Nest 平台可以实现云端发布;

开始使用

简单演示

简单感受一下分别使用 Hummer API 和 Tenon 开发的 HelloWorld 页面对应的代码,以及分别在 Android 和 iOS 设备上运行的最终效果。

Hummer Tenon
HummerCode TenonCode
Android iOS
HummerCode TenonCode

关联仓库

仓库 说明
Hummer CLI Hummer CLI 工具库
Hummer CLI Template Hummer CLI 的模板仓库
Tenon Loader Tenon Vue Loader
Tenon Plugins Tenon 的插件库
N-API 抽象 JS 引擎库

协议

Apache-2.0 license

Hummer 基于 Apache-2.0 协议进行分发和使用,更多信息参见 协议文件

团队成员

近期规划

里程碑

  • 6月份
    • iOS 版 DevTools 发布
    • Tenon React 一期版本发布
  • 7月份
    • VSCode 调试插件预览版完成
    • N-API 预览版完成
  • 8月份
    • 视图调试一期功能发布
    • N-API 正式发布
  • 9月份
    • 视图调试二期功能发布
    • VSCode 调试插件一期版本发布
  • 10月份
    • VSCode 调试插件二期版本发布
    • 公共包抽离能力(懒加载)发布
    • 页面内路由功能实现(Tenon Router)
    • Mpx2Tenon 完成对接
  • 11月份
    • 线程分离功能完成
    • 开发文档补齐优化
  • 12月份
    • mand-mobild for Hummer 版组件库一期版本发布

具体事项

研发体验

  • 两端一致性问题
    • 设计和编写测试用例
    • 搜集和梳理两端不一致问题
    • 逐一解决两端不一致问题
    • iOS 端完组件自渲染一期(View) @ChasonTang
    • iOS 端完组件自渲染二期(Text, Button, Image) @ChasonTang
  • DevTools
    • iOS 对齐 Android 端【开发工具】按钮功能,可以显示日志、异常堆栈和页面基本信息 @宏宇
    • iOS 对齐 Android 端【刷新】按钮功能
    • iOS 对齐 Android 端热重载功能 @ChasonTang
    • CLI 支持命令行日志输出 @duanlikang
    • 增强版 DevTools 支持(类似RN)
  • VSCode 插件
    • VSCode 调试插件一期功能开发完成 @yFeii
    • VSCode 调试插件二期功能开发完成 @yFeii
    • 插件中集成进视图调试功能 @yFeii
    • Tenon 支持代码提示和代码自动补全 @yFeii
  • 视图调试一期
  • 视图调试二期

生态建设

  • Mpx2Tenon @AdamCaoQAQ
    • 基础编译流程打通
    • 组件对接
    • API对接
    • 支持页面内路由
    • 细节打磨
  • Tenon React 一期 @duanlikang
    • 基础组件对齐
    • 基本事件模块对齐
    • 页面生命周期逻辑
    • 样式 Style 属性对齐
    • 支持引用外部 CSS 文件
    • 支持 Hooks
    • 支持 Ref
    • 支持页面配置
    • 一期功能文档编写
  • Tenon React 二期 @duanlikang
    • 支持动画
    • 事件模块重构
    • 样式模块优化
    • 支持高阶组件
    • 数据管理(Redux 生态接入)
    • 路由管理(React Router 生态接入)
  • Tenon 组件库(mand-mobile)建设一期 @duanlikang @宏宇
    • 基础框架搭建
    • 各个组件适配
  • Hummer 基础组件建设
    • 单选框(Radio)
    • 复选框(Checkbox)
    • 普通进度条(Progress)@jueying-key @WorriesL
    • 滑动进度条(Slider)@jueying-key @WorriesL
    • 日期/时间选择器(DatePicker)
    • 图片选择器(ImagePicker)
    • 图片预览(ImageViewer)
    • 页面标签栏(TabLayout)
    • 拍照/录像(Camera)
    • 电话(Phone)
    • 画布(Canvas)@litianhao3615 @Leo

性能优化

  • 动态执行 JS
    • 原生实现 JS 执行 JS 能力 @小枫 @yFeii
    • 公共包抽离
    • 页面懒加载(Tenon Router)
  • 线程分离(异步渲染)

其他

(~ 欢迎大家领取任务,给我们提交 PR ~)

QQ 交流群

欢迎加入我们的 QQ 交流群【Hummer&Tenon跨端交流群】(851327307),有任何 Hummer 使用上的问题和建议,都可以在群里直接反馈,我们会第一时间跟进。

QQ 交流群

微信公众号

欢迎关注我们团队的官方技术公众号【滴滴OrangeLab】,我们会在这里持续输出团队内部比较有深度的技术沉淀和经验分享,欢迎一起交流。

滴滴OrangeLab

友情链接

  • DoKit DoraemonKit /'dɔ:ra:'emɔn/,简称 DoKit,中文名 哆啦A梦,意味着能够像哆啦A梦一样提供给他的主人各种各样的工具。Just Do Kit
  • Mand Mobile 一款优秀的面向金融场景的移动端 UI 组件库。
  • OrangeLab 我们团队的官方 GitHub 组织,我们团队所有对外开源的其他项目都可以在这里找到。
OrangeLab

Packages

No packages published

Languages

  • Objective-C 41.4%
  • Java 27.0%
  • C++ 11.0%
  • C 10.0%
  • TypeScript 7.4%
  • JavaScript 2.2%
  • Other 1.0%