从零开始仿写一个抖音App——Apt代码生成技术、gradle插件开发与protocol协议
本文首发于简书——何时夕,搬运转载请注明出处,否则将追究版权责任。交流qq群:859640274
有人说我标题党,也怪我开始决定写的时候没有注意标题,也没想到会有这么多阅读量,的确会生出一些是非出来。那么从现在开始标题改为 从零开始仿写一个抖音App 系列。希望技术讨论能够多一点,没看文章就喷的人能够少一点。我会坚持写下去,好好提升自己的能力。
大家好,两周不见技术有没有增长呢?本周的文章主要讨论下面几个问题,大家可以按需跳章查看以节省大家宝贵的时间,本文预计阅读时间10分钟。
在放上讨论之前我需要重申本项目的意义、初衷和前提:
讨论1:为啥不用viewmode/mvvm框架?
讨论2:架构感觉不是很简洁?
讨论3:apt 的这套操作,只是为了 Presenter 的初始化传参,如果使用注解通过 apt 生成 build 对象,是否简单很多?
讨论4:基本的接口定义都瞎写…不允许有public…可怕!
讨论5:因为是按模块划分的,所有模块都使用mvp模式开发是否够稳妥,我觉得每个模块应该根据具体业务场景,来选择适合的架构模式,有些适用mvc,有些适用mvvm,有些适用mvp。
上篇博客对于 mvps 我只介绍了在 app 运行时的整个流程,但是对于编译时的整个代码生成的流程却因为时间限制没有写完,本章节就会将整个流程走一遍,同时介绍一下 apt 下 debug 的技巧。
我们在上篇文章里面讲解了 Presenter 的整个运行流程,这一节我们就来讲讲使用 apt 生成模板代码的流程。建议结合项目源码食用!
上一节我们讲了如何使用 APT 生成模板代码,可能有同学会想如果我想向已经有的代码里面插入一些模板代码怎么办呢?这一件事 APT 是办不到的,但是我们可以开发一款 gradle 插件来满足我们这种需求。
到这里为止我们的插件已经开发完成了,但是我们该如何使用这个插件呢?其实在任何项目中我们都在使用着 gradle 插件。
本篇文章是从零开始写一个抖音App系列文章的第三篇,篇幅比较长能看到这里的同学非常感谢你们对我的认可。给一个看到这里的同学的小福利吧:在未来我会开放本项目在 github 上权限,只要对本项目了解比较深的同学都能参与项目的开发,看到这句话的同学我会优先考虑,但是只限前5名,记得加QQ群然后在群里小窗我。
网友评论