组件化
需求
- 团队扩大,合并代码时冲突很多。
- 公司业务组划分。
- 马甲包
过程
-
基础控件: 工程中全局用的一些常亮,基础类
-
分类: 工程中全局用到的一些分类方法
-
日志模块:依赖CocoaLumberjack自定义日志打印格式,对日志进行打包上传到服务器
-
网络模块:对AFNetWorking进行封装,通过协议编程模式,对打印,缓存,公共参数配置,hud等进行插件化,让每个业务模块都可以定制特有的请求方式
-
公共UI控件:如自定义的提示弹窗,banner,自定义的label,大图展示等
-
下拉刷新:隔离封装
-
分享组件:对微信,qq分享sdk进行封装,自定义UI
-
业务模块 : 首页,测评,咨询,课程,倾诉,h5页面,我的,登录。
-
业务模块之间的解耦:用的Mediator,中间件,通话target-action来调度别的模块。组件对外接口,target_mine,要实现业务模块之间解耦,必需每个业务模块对应一个mediator的分类。
后续优化
- 版本控制
- pod库管理
- swift 和 OC 在组件库里面的混编
声网:
- 声网接通率50%~70%
- 修改声网IM发送接通方式
- 声网云信消息并行发送
- 断线率高
- 埋点和日志定位问题。
flutter混合开发
方案制定:
- 查看官方文档,从dome到接入。有点:调试方便。缺点:对项目入侵大。不利于多人开发,必需要装flutter环境
- framework:项目入侵小,调试不方便。
- 单引擎:页面出现闪烁。
- 多引擎
原生交互
- FlutterMethodChannel :接受
- FultterBasicMessageChannel:发送
- setInitialRoute:注册路由
- flutter端,初始化一个MethodChannal,通过invokeMethod发送消息给原生
- BasicMessageChannel初始化一个channel,setMessageHandler监听原生的消息
- 通过ui.window.defaultRouteName获取原生注册的router然后初始化对象的页面
马甲包,
原因,经过(困难),总结
swift
swift开发语言优点,面向协议,RxSwift
x点灵产品思考:
- 用户粘性不高,面向付费,用户来源消息,内容传播不够
- 导流付费:导医,测评导流,定向埋点。根据用户标签推荐咨询师
对于技术价值思考
- 技术满足产品
- 技术增加体验
- 技术统计用户行为
- 技术节省成本
优缺点:
- 优点勇于,探索新的技术,积极去优化实现方案,善于吸纳别人好的建议
- 缺点:性格有点内向,刚开始和陌生人接触没有很放得开,不过接触时间长了,彼此熟悉了之后,就会比较开放了。