主框架组件化--披露API

我们虽然已经将主骨架拆分了,但是毕竟我们TZSoundMain主骨架里面到底有什么方法,具体方法做什么事情,外界并不知道,如果不把主骨架里面所有的文件看一遍是不可能做到的,这样对其他使用我们私有库的人来说相当不方便,所以我们应该做一个中间层来统一披露我们的API,让外界来使用,而且我们没有在中间层披露的API,其实是不允许外界使用的,但是好处就是一目了然,其他人通过中间层很快就知道怎么去使用我们的私有库。

  • 我们在这里画一张图来说明这个问题

主框架组件化--披露API

这张图很好说明了这个问题,我们将私有库里面的内容通过中间层披露出公共的API,在此基础上外界使用的时候只需要调用中间层的API就可以直接和我们的私有库的内容进行交互,而不需要再苦苦的追寻所需要的内容,一目了然。

现在我们以我们的主骨架为例,将TZSoundMain里面的内容增加一个中间层用来披露我们提供给外界的API。

创建一个类MainModuleAPI

主框架组件化--披露API

主框架组件化--披露API

主框架组件化--披露API

其实我们注意观察一下可以发现,我们只不过是对之前自定义的tabbarController,tabbar,navbar这些类的方法做了二次封装,然后根据需要对外界暴露了我们想要公开的API,这样做的好处是,不需要再向外界交代太多信息,只需要让外界和我们的中间层交互就可以使用我们的私有库里面的内容。

  • 那么按照我们对私有库升级的步骤来操作就可以了,首先修改spec文件的版本号,然后提交代码到我们的远程代码仓库,并且打上tag值

主框架组件化--披露API

主框架组件化--披露API

  • 我们校验的时候发现还是和之前一样提示我们找不到Category库,但是不必在意直接提交就可以了,毕竟此时的确找不到私有库

主框架组件化--披露API

上传.spec文件到本地索引库,接着会自动将.spec文件推送到远程索引库

主框架组件化--披露API

紧接自然是进入到宿主工程中重新安装我们的TZSoundMain私有库,记得要将podfile.lock文件删除掉

主框架组件化--披露API

我们看看宿主工程中有没有将我们的披露API的中间层安装进来

主框架组件化--披露API

  • 接下来我们要将appdelegate之前使用加载主骨架的代码全部重构

主框架组件化--披露API

主框架组件化--披露API

  • 那么最后我们看看效果是不是和之前宿主工程一般无二

主框架组件化--披露API

相关推荐