didi / chameleon

🦎 一套代码运行多端,一端所见即多端所见
http://cml.didi.cn/
Apache License 2.0
9.02k stars 692 forks source link

【已完成】字节跳动小程序共建计划 #157

Open beatles-chameleon opened 5 years ago

beatles-chameleon commented 5 years ago

该项目已经圆满结束,已支持字节小程序

CML的跨端标准协议

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

目标

按照新端扩展标准支持字节跳动小程序

参与方

不懂小彬(滴滴CML团队)、荣景超(滴滴CML团队)、怀虚(阿里影业)、Jeany(芒果TV)

具体工作拆分和排期

开发仓库,基本头条框架已经搭好:https://github.com/chameleon-team/cml-tt-sets

工作总体工作量排期负责人进度需要单测备注
cml-tt-api 7天 31个方法 小程序的api基本一致,每天完成5个。
cml-tt-runtime 7天 2019-05-17 小程序的VM对象也基本一致,熟悉chameleon-runtime代码 然后进行当前端的改动。
cml-tt-plugin 7天 05-29 数据ast的增删改操作,事件处理复杂一些,参考chameleon-template-parse和chameleon-mixins
cml-tt-store 3天 05-22 小程序的store基本一致,参考chameleon-store
cml-tt-ui-builtin 7天 2019-05-27 11个多态组件,其他的组件不是多态可以直接测试 需要依赖编译和运行时完成 但也可以提前写好后测试
cml-tt-ui 3天 05-16 3个多态组件,其他的组件不是多态可以直接测试 需要依赖编译和运行时完成 但也可以提前写好后测试
联调测试 6天 5月30--6月6日 编译插件5月29日完成后,进行编译和运行时的联调和测试,两个组件库的测试,store的测试,api的测试。

具体排期见如下各负责人评论

yaxiji commented 5 years ago

cml-tt-api

工作工作量排期负责人进度备注
alert方法实现与测试demo 05-06 Jeany 已完成
canIUse方法实现与测试demo 完成
cancelAnimationFrame方法实现与测试demo 05-07 Jeany 已完成
chooseImage方法实现与测试demo 05-07 Jeany 已完成
close方法实现与测试demo 05-07 Jeany 已完成
confirm方法实现与测试demo 05-06 Jeany 已完成
cpx2px方法实现与测试demo 完成
createAnimation方法实现与测试demo 05-16 Jeany 完成
get方法实现与测试demo 05-16 完成
getClipBoardData方法实现与测试demo 05-08 完成
getLaunchOptionsSync方法实现与测试demo 05-16 完成
getLocationInfo方法实现与测试demo 05-16 完成
getRect方法实现与测试demo 05-16 完成
getStorage方法实现与测试demo 05-08 完成
getSystemInfo方法实现与测试demo 05-16 完成
inSDK方法实现与测试demo 05-06 Jeany 已完成
initSocket方法实现与测试demo 05-16 完成
navigateBack方法实现与测试demo 05-16 完成
navigateTo方法实现与测试demo 05-16 完成
open方法实现与测试demo 05-08 完成
post方法实现与测试demo 05-16 完成 完成
px2cpx方法实现与测试demo 05-16 完成
redirectTo方法实现与测试demo 05-16 完成
reload方法实现与测试demo 05-16 完成
removeStorage方法实现与测试demo 05-08 完成
request方法实现与测试demo 05-16 完成
requestAnimationFrame方法实现与测试demo 05-07 Jeany 已完成
setClipBoardData方法实现与测试demo 05-08 完成
setStorage方法实现与测试demo 05-08 完成
setTitle方法实现与测试demo 05-07 Jeany 已完成
showToast方法实现与测试demo 05-06 Jeany 已完成
broven commented 5 years ago

cml-tt-runtime

https://github.com/chameleon-team/cml-tt-sets/pull/1

cml-tt-ui-builtin

https://github.com/chameleon-team/cml-tt-sets/pull/2

luobinbinchina commented 5 years ago

cml-tt-plugin

工作 工作量 排期 负责人 进度 备注
c-if c-else c-else-if c-show c-for c-text c-key    05-29 荣景超  已完成   
component is 动态组件   05-29  荣景超   已完成   
c-model    05-29  荣景超  已完成   
c-bind 事件绑定 配合运行时mixins代理事件与处理事件对象   05-29   荣景超  已完成   
c-animation    05-29  荣景超  已完成   
style与class处理   05-29   荣景超  已完成   
基本标签替换    05-29 荣景超 已完成  如果需要的话,比如cell 替换成view slider-item替换成swiper-item
luobinbinchina commented 5 years ago

cml-tt-ui

工作 工作量 排期 负责人 进度 备注
c-picker-item 组件实现与测试demo   05-16  不懂小彬     
c-refresh 组件实现与测试demo   05-16   不懂小彬    
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   05-16  不懂小彬     
luobinbinchina commented 5 years ago

cml-tt-store

工作 工作量 排期 负责人 进度 备注
createStore   05-22  不懂小彬      
commit   05-22  不懂小彬      
dispatch    05-22  不懂小彬     
mapState   05-22  不懂小彬     
mapGetters    05-22 不懂小彬      
mapMutations   05-22  不懂小彬     
mapActions    05-22 不懂小彬      
registerModule   05-22 不懂小彬      
broven commented 5 years ago

https://github.com/didi/chameleon/issues/36

beatles-chameleon commented 5 years ago

CML扩展字节跳动小程序测试工作

目标

对扩展字节跳动小程序进行完整测试

参与方

滴滴CML团队、阿里影业、芒果TV

具体测试工作

1 各npm包功能的测试

负责人: 各npm包开发者

工作 排期
api库 测试demo要覆盖到每一个方法的调用参数。
ui组件库 测试demo要覆盖到每一个组件的属性和事件。
ui-builtin组件库 测试demo要覆盖到每一个组件的属性和事件。
plugin 测试每一个指令,模板编译的每一个处理。
runtime 测试每一个options选项的处理。
store 测试store的完整功能。

2 实例项目测试

把原来没有头条小程序的项目改成支持头条小程序进行测试。 负责人:

附: 各npm包需要测试的主要功能。

cml-tt-api

工作工作量排期负责人进度备注
alert方法实现与测试demo
canIUse方法实现与测试demo
cancelAnimationFrame方法实现与测试demo
chooseImage方法实现与测试demo
close方法实现与测试demo
confirm方法实现与测试demo
cpx2px方法实现与测试demo
createAnimation方法实现与测试demo
get方法实现与测试demo
getClipBoardData方法实现与测试demo
getLaunchOptionsSync方法实现与测试demo
getLocationInfo方法实现与测试demo
getRect方法实现与测试demo
getStorage方法实现与测试demo
getSystemInfo方法实现与测试demo
inSDK方法实现与测试demo
initSocket方法实现与测试demo
navigateBack方法实现与测试demo
navigateTo方法实现与测试demo
open方法实现与测试demo
post方法实现与测试demo
px2cpx方法实现与测试demo
redirectTo方法实现与测试demo
reload方法实现与测试demo
removeStorage方法实现与测试demo
request方法实现与测试demo
requestAnimationFrame方法实现与测试demo
setClipBoardData方法实现与测试demo
setStorage方法实现与测试demo
setTitle方法实现与测试demo
showToast方法实现与测试demo

cml-tt-runtime

工作工作量排期负责人进度备注
适配options
处理props
处理data
生命周期映射
处理mixins
处理钩子hooks
处理methods
能力注入(在最早生命周期hook,对执行上下文 this 改造)
处理 data【使具备响应式数据处理能力】
处理 computed【使具备计算属性能力】
处理 watch【使具备数据监听能力】

cml-tt-plugin

工作工作量排期负责人进度备注
c-if c-else c-else-if c-show c-for c-text c-key
component is 动态组件
c-model
c-bind 事件绑定 配合运行时mixins代理事件与处理事件对象
c-animation
style与class处理
基本标签替换 如果需要的话,比如cell 替换成view slider-item替换成swiper-item

cml-tt-ui-builtin

工作工作量排期负责人进度备注
checkbox/radio/layout文件夹下的7个布局 组件实现与测试demo
button 组件实现与测试demo
carousel 组件实现与测试demo
carousel-item 组件实现与测试demo
input 组件实现与测试demo
list 组件实现与测试demo
page 组件实现与测试demo
richtext 组件实现与测试demo
scroller 组件实现与测试demo
switch 组件实现与测试demo
textarea 组件实现与测试demo
video 组件实现与测试demo

cml-tt-ui

工作工作量排期负责人进度备注
c-picker-item 组件实现与测试demo
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-tt-store

工作工作量排期负责人进度备注
createStore
commit
dispatch
mapState
mapGetters
mapMutations
mapActions
registerModule
beatles-chameleon commented 5 years ago

已支持 https://github.com/chameleon-team/cml-tt-sets