叨叨叨
有没有想过在没有业务的压力,没有项目接手时一堆繁杂代码的困扰,没有产品天马行空奇葩的需求,一个理想的 Android APP 是怎样一种架构。
从2016年起,我一直在持续学习 Android 的各种框架,力求使得项目更清晰,更易于扩展。从mvp 到 mvvm,到之后的依赖注入、rxjava、clean 架构。每一次都让我惊叹,原来代码可以写的这么解耦。
工作已经有一年了,作为一个 Android developer,没有一个属于自己的 APP 怎么能行。准备周末宅家没事的时候就搬搬砖,将之前学的知识点都用上,力求做一个“完美”的框架的 APP
关于做什么app
煎蛋 (因为我是8年的资深蛋友啊 2333)
整体框架
整体采用 Android-CleanArchitecture,整个 APP 分为三层,从外到内层依次为
- presentation:最外层,Android 相关层。activity 、fragment、view、adapter、Presenter 都属于这一次。需要注意的。与普通的 mvp 结构不同的是,这里的 P层比mvp 的 p 要轻。不会业务逻辑,主要是调用domain 层的 uescase,在回调(subsriber)对 view做处理
- domain:中间层,纯 java 代码,连接presentation 和 data。所有的业务逻辑都应该放这一次。通过repository 连接 data层、usecase 连接presentation。
- data:采用repository模式。使得外层无需关心数据的具体来源。SP、DP、NET 、CATCH等操作都应封装在这一层。并对外暴露统一接口
个层之间使用 dagger2 依赖注入解耦,同时也方便了后期的单测。并且各层的数据传输使用 rxjava。使得数据的传递和变化更清晰。