宅社,一款纯粹的ACG聚合类App
出于爱好与学习的目的做出了这款MD风格的应用,旨意通过涵盖Android端的一些热门技术框架来打造一个面向市场级别的产品
通过本项目,你可以了解到以下技术:
Material Design
MVP
组件化
Kotlin
RxJava2
Retrofit
Dagger2
Realm
Glide
Arouter
Jsoup
Gradle配置
混淆、多渠道包
如果有对你帮助,请star一个表示支持,谢谢各位
预览
项目相关
项目环境
项目结构
AcgClub - app 宿主app - common 基础库 - common-res 公用资源 - component-acgcomic 漫画组件 - src/main - runalone 组件独立运行时生效 - component-acgnews 资讯组件 - component-acgschedule 番剧组件 - router 路由配置及相关服务实现 - third-party-libs 三方库存放 - base_component.gradle 组件依赖配置 - base_component_compiler.gradle java注解处理配置 - base_component_kapt.gradle kotlin注解处理配置 - config.gradle 项目信息配置
新增组件
组件名固定前缀为“component-”
组件内build.gradle需进行如下配置:
//必备 apply from:"../base_component.gradle" //使用java apply from:"../base_component_compiler.gradle" //或kotlin apply from:"../base_component_kapt.gradle" //如果用到数据库 apply plugin: 'realm-android'
组件内res文件将以组件真名为前缀进行约束(例如:component-acgnews,一个布局文件名则需要以此打头:acgnews_layout.xml)
组件独立运行时还需要注意提供相关的application,入口activity,AndroidManifest.xml等
项目配置
config.gradle中进行项目项目的属性配置,例如:包名、版本号、编译版本...
其中:
//在该属性中填写需要合并到主程序运行的组件,没有填写的组件将独立运行merge = [ "acgnews", "acgschedule" //"acgcomic" ]
merge属性修改完毕后,需要重新构建项目
其他
项目中提示缺失DaggerXXX时,通过完成编译将有Dagger2自动生成
在本地的local.properties按自己所需进行一些三方库的key、签名的配置,不需要的可以自行去掉
#阿里云用户反馈fbAppKey=""fbAppSecret=""#友盟umengAppKey=""#buglybuglyAppId=""#签名信息storeFile= storePassword= keyAlias= keyPassword=#友盟分享keySINA_WEIBO_KEY=""SINA_WEIBO_SECRET=""QQ_ZONE_ID=""QQ_ZONE_KEY=""WEIXIN_ID=""WEIXIN_KEY=""
联系
项目需要完善的地方还有很多,如有BUG或者更好的建议欢迎提出