前言
从今天开始带大家一起从零开始撸一个美团Android版App。
【从零撸美团】这个专题将持续更新,用以详细记录分享开发过程,欢迎关注。
源码地址:https://github.com/cachecats/LikeMeiTuan
专题的第一篇文章本来想按惯例讲项目介绍、整体架构、代码规范之类的。但今天有点躁动,不想讲那么正经深奥的东西,定的最低计划又是周三和周日每周两更,所以就暂且讲构建项目依赖的小技巧吧。项目架构稍后会补上~
正文
一、为什么要把项目依赖抽取单独管理
如果项目比较小,架构简单只有一个 build.gradle
文件那完全不必将依赖抽离出来,因为整个系统构建好还是要费一些精力的。不是一直喊避免过度设计吗?
但是如果按照著名的 Android-CleanArchitecture
(https://github.com/android10/Android-CleanArchitecture) 介绍的架构对项目进行分层,整个项目会有好几个 module
。
先贴出 Clean architecture 的架构图感受下~
基于这个分层思想,我的项目结构是这样的:
项目一共分为四层
common
: 整个依赖的最底层,抽取出其他层共有的代码。比如 RxJava的封装,工具类的封装等。
data
: 数据层,网络数据、数据库中数据处理层。
domin
: 这层应该是纯 Java 代码,从 data
层出来的数据要经过 domin
转换一下,UI层 app
引用的实体都是 domin
层的。用这种方法来隔离网络和数据库数据变化对代码的影响。
app
: 应该叫 presentation
表现层,觉得这名字太长还是 app
看着舒服~ 这层就是正常的 Android 代码。
这里对 Clean architecture
做了一定的修改,在实践中感觉这样分层开发更顺手。
具体的架构解析及每一层具体该怎么写请关注后面的文章,以后都会详细讲解。
重回刚才的问题,为什么要抽取依赖统一管理?
有四个 mo