目标和资源:
来话应用一期Android端上线后,希望以flutter重构业务逻辑,实现ADR/IOS双端上线。
目前组内可供开发人力,Android 3人,IOS/MACOS 2人。
一、工作拆解:
1、架构设计:
来话Android端架构设计:
模块化解耦合,抽取module_base,module_function,module_user,app四个模块,其中module_base承载应用的基类和MVVM框架设计,module_function和module_user承载产品的具体功能函数和用户的信息管理,app模块是整个应用的壳工程,用来对接一些三方SDK。工程采用了jetbrain anko,okhttp3/retrofit/rxjava/dagger2/glide等一系列流行框架作为脚手架。
来话Flutter端架构设计:
总体设计上可复用来话Android端架构。工具框架参考flutter开发者社区,大体覆盖了我方功能需求。但flutter所选框架在Adr/IOs双端的兼容性需要双端工程师进行调试。
2、Tencent IM SDK / SensorSDK / TingYun SDK / XGPush的桥接(工作量大,重难点)
以上四者SDK,分别提供了来话的 即时通话能力 、 商化统计能力 、 性能监控能力 、推送及接收消息能力。且此四者SDK并无Flutter版本,需要双端工程师根据SDK的开放API,选定合适版本进行桥接编写。
3、工具类封装、基类编写:
此工作采用Dart,由Adr工程师编写,IOS端工程师负责单侧调试。
4、功能页面的编写:(工作量大,且琐碎)
此工作采用Dart,由Adr工程师编写,IOS端工程师负责单侧调试。
5、权限功能编写:
来话产品所需求(eg:静默下载,本地通讯录联系人等)的一系列敏感权限,IOS工程师需评估其对于上架审核有无影响。部分诸如强制更新,后台唤起等功能IOS端恐怕实现困难,需寻找替代方案。
二、风险评估:
1、 开发人员技术栈现状:
有flutter开发经验的Android工程师仅1人。其余四人需要培训学习后兼顾进行开发,人力投入上难以 all in。
2、 应用权限申请:
来话Android端申请了许多诸如:通讯录读取、静默下载、浮动在上层应用等敏感权限。IOS端恐怕无法申请并过审。
三、开发、协作模式:
人力现状:
Android工程师充足,但手中有其他工作;IOS工程师人力少,手中有其他工作且处于异地。
建议的协作开发模式:
1、Android端先行进入调研开发。工作优先级:SDK的桥接封装协议制定及编码 > 框架设计、基类、工具编写 > 具体功能界面编写实现。
2、IOS端待SDK封装协议制定后进入开发。根据Android端开发进度进行适配(android端需制定短期里程碑计划,定期输出flutter编码供IOS端适配调试)。
四、工期评估:
1、SDK封装协议及编码开发: —-共计:30人日
Tencent IM SDK 桥接协议制定编写。----7人日
SensorSDK 桥接协议制定编写。----7人日
TingYun SDK 桥接协议制定编写。----7人日
XGPush SDK 桥接协议制定编写。----7人日
调试自测。 ----2人日
2、架构设计、框架开发: —-共计:6人日
工程架构搭建。----2人日
依赖管理。----2人日
调试自测。 ----2人日
3、功能页面编写: —- 共计:45人日
首页通话记录模块。----2人日
首页通讯录模块。 ----2人日
首页设置模块。----1人日
消息模块。----2人日
预约功能模块。 ---- 3人日
多选联系人功能模块。 ----3人日
设置模块、关于模块、扫一扫添加联系人模块。----3人日
添加联系人、通讯录校验、好友邀请模块。----4人日
下载升级功能。 ----3人日
单人、多人通话功能。 ----14人日
登陆注册模块。----2人日
所有模块埋点统计。----2人日
调试自测。 ----4人日
4、基类、工具类编写: —-共计:5人日
5、权限体系编写: —-6人日
共计:92人日。(预估前提:在重构工作无产品干预的前提下,仅以我个人开发能力all in状态进行Android端flutter重构的乐观评估。IOS侧适配工期需IOS工程师另行评估)