didi/chameleon

【已完成】【新端扩展】快应用共建计划

beatles-chameleon opened this issue · 6 comments

更新已支持快应用:

https://cml.js.org/doc/example/quickapp_miniapp.html

CML的跨端标准协议

Chameleon 规范了一套跨端标准,称之为MVVM+协议;开发者只需要按照标准扩展流程,即可快速扩展任意MVVM架构模式的新端。并让已有项目无缝运行新端。

目标

按照新端扩展标准支持快应用

参与方

快应用官方研发团队

Chameleon扩展快应用排期

目标

按照新端扩展标准支持cml转换快应用

参与方

滴滴CML团队、快应用联盟

具体工作拆分和排期

具体工作拆分和排期

  • cml-quickapp-api的工作是独立的 不依赖其他npm包的开发
  • cml-quickapp-runtime 运行时的工作也是独立的 不依赖其他npm包
  • cml-quickapp-plugin中的模板编译 在事件绑定的代理函数中依赖runtime 其他的工作不依赖
  • cml-quickapp-ui-builtin和 cml-quickapp-ui依赖cml-quickapp-runtime和cml-quickapp-plugin的完成 才能正确执行。
  • cml-quickapp-store的工作也是独立的,基本上小程序端实现是相同的。
工作 总体工作量 排期 负责人 进度 需要单测 备注
cml-quickapp-api 7天 5/30启动 陈磊 除个例API【如setPageTitle】依赖快应用运行时全局环境,以及需要转换为快应用支持的异步调用方式【如cpx2px、px2cpx】,其余都已经实现 31个chameleon的api方法对应快应用 10个类别45个模块[每个模块有多个方法]每天5个模块
cml-quickapp-runtime 12天 6/12启动 陈磊 Runtime如期启动,进展却一路坎坷,截止目前已完成生命周期转换、options\props\methods\data处理,接近完成 参照chameleon-runtime,然后进行相应前端的改动。
cml-quickapp-plugin 5天 7/1启动 陈磊 已启动,是对之前编译转换的进一步完善和补充,对细节语法层面做细致的转化 已打通事件调用
cml-quickapp-ui-builtin 7天 7/6启动 陈磊 已开展 11个多态组件,其他的组件不是多态可以直接测试 需要依赖编译和运行时完成 但也可以提前写好后测试
cml-quickapp-ui 5天 7/13启动 陈磊 已调研 3个多态组件,其他的组件不是多态可以直接测试 需要依赖编译和运行时完成 但也可以提前写好后测试
cml-quickapp-store 3天 7/18启动 陈磊 未开展 参考chameleon-store
联调测试 4天 7/21启动 陈磊 未启动 各部分开发完成后进行联调测试

cml-quickapp-api

工作 工作量 排期 负责人 进度 备注
alert方法实现与测试demo 导入快应用的feature,实现对应方法 5/30 陈磊 已启动
canIUse方法实现与测试demo 5/30
cancelAnimationFrame方法实现与测试demo 5/30
chooseImage方法实现与测试demo 5/30
close方法实现与测试demo 5/30
confirm方法实现与测试demo 5/31
cpx2px方法实现与测试demo 5/31
createAnimation方法实现与测试demo 5/31
get方法实现与测试demo 5/31
getClipBoardData方法实现与测试demo 5/31
getLaunchOptionsSync方法实现与测试demo 5/31
getLocationInfo方法实现与测试demo 6/3
getRect方法实现与测试demo 6/3
getStorage方法实现与测试demo 6/3
getSystemInfo方法实现与测试demo 6/3
inSDK方法实现与测试demo 6/3
initSocket方法实现与测试demo 6/4
navigateBack方法实现与测试demo 6/4
navigateTo方法实现与测试demo 6/4
open方法实现与测试demo 6/4
post方法实现与测试demo 6/4
px2cpx方法实现与测试demo 6/5
redirecquickappo方法实现与测试demo 6/5
reload方法实现与测试demo 6/5
removeStorage方法实现与测试demo 6/5
request方法实现与测试demo 6/5
requestAnimationFrame方法实现与测试demo 6/6
setClipBoardData方法实现与测试demo 6/6
setStorage方法实现与测试demo 6/6
sequickappitle方法实现与测试demo 6/6
showToast方法实现与测试demo 6/6

cml-quickapp-runtime

工作 工作量 排期 负责人 进度 备注
生命周期映射 适配从cml到快应用的生命周期函数映射关系,包括app、page、component各个的生命周期 6/12 ~ 7/1 李恒、陈磊 基本实现,待验证
适配options 6/12 ~ 7/1 未启动
处理props 6/12 ~ 7/1 未启动
处理data 6/12 ~ 7/1 未启动
处理mixins 6/12 ~ 7/1
处理钩子hooks 6/12 ~ 7/1
处理methods 6/12 ~ 7/1
能力注入(在最早生命周期hook,对执行上下文 this 改造)
处理 data【使具备响应式数据处理能力】 6/12 ~ 7/1
处理 computed【使具备计算属性能力】 6/12 ~ 7/1
处理 watch【使具备数据监听能力】 6/12 ~ 7/1

cml-quickapp-plugin

工作 工作量 排期 负责人 进度 备注
基础模板编译 快应用目录结构和源文件生成 5/21 陈磊 初步实现模板编译和生成快应用目录结构以及源代码 manifest.json、签名文件等还需要进一步工作
基本标签替换 7/1 李恒、陈磊 view => div 如果需要的话,比如cell 替换成view slider-item替换成swiper-item
c-if c-else c-else-if c-show c-for c-text c-key 7/2
component is 动态组件 7/3
c-model 7/3
c-bind 事件绑定 配合运行时mixins代理事件与处理事件对象 1/7 ~ 7/5
c-animation 待定
style与class处理 7/4 ~ 7/5

cml-quickapp-ui-builtin

工作 工作量 排期 负责人 进度 备注
checkbox/radio/layout文件夹下的7个布局 组件实现与测试demo 7/6 ~ 7/7 李恒、陈磊 未启动
button 组件实现与测试demo 7/6 ~ 7/8
carousel 组件实现与测试demo 7/6 ~ 7/8
carousel-item 组件实现与测试demo 7/6 ~ 7/8
input 组件实现与测试demo 7/9 ~ 7/10
list 组件实现与测试demo 7/9 ~ 7/10
page 组件实现与测试demo 7/10 ~ 7/11
richtext 组件实现与测试demo 7/10 ~ 7/11
scroller 组件实现与测试demo 7/11 ~ 7/12
switch 组件实现与测试demo 7/11 ~ 7/12
textarea 组件实现与测试demo 7/11 ~ 7/12
video 组件实现与测试demo 7/12 ~ 7/13

cml-quickapp-ui

工作 工作量 排期 负责人 进度 备注
c-picker-item 组件实现与测试demo 7/13 ~ 7/18 李恒、陈磊 未启动
c-refresh 组件实现与测试demo
c-actionsheet, c-checkbox-group, c-dialog, c-loading, c-picker, c-picker-panel, c-popup, c-radio-group, c-tab, c-tab-item, c-tab-pane, c-tab-pane-item, c-tabbar, c-tip, c-toast 组件实现与测试demo

cml-quickapp-store

工作 工作量 排期 负责人 进度 备注
createStore 7/18 ~ 7/22 李恒、陈磊 计划中 快应用目前以本地storage为主,未使用到redux、mobx等状态管理lib
commit
dispatch
mapState
mapGequickappers
mapMutations
mapActions
registerModule

关注中,怎么没后续了。

好专业的排期

先帝创业未半而中道崩殂,没有后续了?

不应该 closed 吧,问题很多....