面试简要

178 阅读2分钟

组件化

需求

  1. 团队扩大,合并代码时冲突很多。
  2. 公司业务组划分。
  3. 马甲包

过程

  1. 基础控件: 工程中全局用的一些常亮,基础类

  2. 分类: 工程中全局用到的一些分类方法

  3. 日志模块:依赖CocoaLumberjack自定义日志打印格式,对日志进行打包上传到服务器

  4. 网络模块:对AFNetWorking进行封装,通过协议编程模式,对打印,缓存,公共参数配置,hud等进行插件化,让每个业务模块都可以定制特有的请求方式

  5. 公共UI控件:如自定义的提示弹窗,banner,自定义的label,大图展示等

  6. 下拉刷新:隔离封装

  7. 分享组件:对微信,qq分享sdk进行封装,自定义UI

  8. 业务模块 : 首页,测评,咨询,课程,倾诉,h5页面,我的,登录。

  9. 业务模块之间的解耦:用的Mediator,中间件,通话target-action来调度别的模块。组件对外接口,target_mine,要实现业务模块之间解耦,必需每个业务模块对应一个mediator的分类。

后续优化

  1. 版本控制
  2. pod库管理
  3. swift 和 OC 在组件库里面的混编

声网:

  1. 声网接通率50%~70%
  2. 修改声网IM发送接通方式
  3. 声网云信消息并行发送
  4. 断线率高
  5. 埋点和日志定位问题。

flutter混合开发

方案制定:

  1. 查看官方文档,从dome到接入。有点:调试方便。缺点:对项目入侵大。不利于多人开发,必需要装flutter环境
  2. framework:项目入侵小,调试不方便。
  3. 单引擎:页面出现闪烁。
  4. 多引擎

原生交互

  1. FlutterMethodChannel :接受
  2. FultterBasicMessageChannel:发送
  3. setInitialRoute:注册路由
  4. flutter端,初始化一个MethodChannal,通过invokeMethod发送消息给原生
  5. BasicMessageChannel初始化一个channel,setMessageHandler监听原生的消息
  6. 通过ui.window.defaultRouteName获取原生注册的router然后初始化对象的页面

马甲包,

原因,经过(困难),总结

swift

swift开发语言优点,面向协议,RxSwift

x点灵产品思考:

  1. 用户粘性不高,面向付费,用户来源消息,内容传播不够
  2. 导流付费:导医,测评导流,定向埋点。根据用户标签推荐咨询师

对于技术价值思考

  1. 技术满足产品
  2. 技术增加体验
  3. 技术统计用户行为
  4. 技术节省成本

优缺点:

  1. 优点勇于,探索新的技术,积极去优化实现方案,善于吸纳别人好的建议
  2. 缺点:性格有点内向,刚开始和陌生人接触没有很放得开,不过接触时间长了,彼此熟悉了之后,就会比较开放了。