AcgClub
Introduction: 一款纯粹的 ACG 聚合类 App
Tags:
宅社 AcgClub,一款纯粹的 ACG 聚合类 App
出于爱好与学习的目的做出了这款 MD 风格的应用,旨意通过涵盖 Android 端的一些热门技术框架来打造一个面向市场级别的产品
通过本项目,你可以了解到以下技术:
- Material Design
- MVP
- 组件化
- Kotlin
- RxJava2
- Retrofit
- Dagger2
- Realm
- Glide
- Arouter
- Jsoup
- Gradle 配置
- 热更新
- 混淆、多渠道包
宅社壁纸 API 正式上线!
[效果体验]
(API 已停止提供服务)
预览
项目相关
项目环境
项目结构
AcgClub
- app 宿主 app
- common 基础库
- common-res 公用资源
- component-acgcomic 漫画组件
- src/main
- runalone 组件独立运行时生效
- component-acgnews 资讯组件
- component-acgpicture 看图组件
- 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=""
#bugly
buglyAppId=""
#签名信息
storeFile=
storePassword=
keyAlias=
keyPassword=
#友盟分享 key
SINA_WEIBO_KEY=""
SINA_WEIBO_SECRET=""
QQ_ZONE_ID=""
QQ_ZONE_KEY=""
WEIXIN_ID=""
WEIXIN_KEY=""
- 为了确保 bugly 热更新能生效,请每次打出正式包的时候,确认 app 目录下 tinker-support.gradle 文件中的 tinkerId 的唯一性
鸣谢
RxJava
RxAndroid
Dagger2
RxPermissions
RxCache
Retrofit
Okhttp
Gson
Butterknife
Glide
LeakCanary
Realm
MVPArms
Jsoup
Jsoup-Annotations
Fragmentation
BlockCanary
ARouter
DialogUtil
DToast
BaseRecyclerViewAdapterHelper
HtmlTextView
MZBannerView
StatusBarUtil
LoadSir
Logger
AndroidUtilCode
VasDolly
捐赠
如果认为项目有趣或对你有帮助,欢迎捐赠支持。捐赠金额将用于支付域名和服务器费用,方便为大家提供更好的服务!
联系
项目需要完善的地方还有很多,如有 BUG 或者更好的建议欢迎提出