美文网首页程序员
iOS模块化心得

iOS模块化心得

作者: IOSMan | 来源:发表于2019-10-17 16:27 被阅读0次

在原有项目上进行模块化的难点是,给原有项目分层和解耦

难点1:项目分层

我们项目分层结构
基础层:各种基类,常用分类,宏定义,工具类方法。都是一些基本不会变的类。
中间层:公用view,公用model,这个模块东西比较多,拆分的时候只要是两个以上模块公用的view,model,都放到这里了。
业务层:登录模块,机票业务模块,酒店业务模块等等,都是和业务相关

基础层,中间层,个个业务都是为单独pod,各业务都有对应的中间件,业务之间的交互通过业务的中间件进行交互,中间件target:action方法调起各个业务。业务之间调用只引用调用业务的中间件

具体根据项目的实际情况分层,可以参考casa大佬的文章https://casatwy.com/modulization_in_action.html进行组件

难点2:解耦

统一基类,各业务之间耦合性过高,需要拆分代码,无法拆分的还需要重写。最终实现各业务能够单独运行。

难点3:上传pod私有库

上传各个业务的pod私有库,也算是个难点,开始上传时会遇到各种坑,大都是spec文件,具体看我之前写的一篇https://www.jianshu.com/p/35fece5deb1e

模块化上线后的开发

如果公司测试允许,可以在各个模块内测试,测试完成后,再提交pod版本,发版。

但一般测试需要安装整个APP进行测试,这个时候各个模块的新需求要切分支,尤其是基类,中间层的改动,要切分支,再提交版本,这样不影响要发版的版本,直到各个模块准备上线再把分支的代码合并到master,再推pod私有库。应用要上线发版,指定各个模块的发版版本。这样做到各模块各个版本发布互不影响。

pod私有库发版不要过于频繁,版本过多不利于版本控制。

相关文章

网友评论

    本文标题:iOS模块化心得

    本文链接:https://www.haomeiwen.com/subject/tckvmctx.html