100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 从零开始打造一款面向市场级产品

从零开始打造一款面向市场级产品

时间:2021-10-27 08:21:26

相关推荐

从零开始打造一款面向市场级产品

宅社,一款纯粹的ACG聚合类App

项目地址:/Rabtman/AcgClub

出于爱好与学习的目的做出了这款MD风格的应用,旨意通过涵盖Android端的一些热门技术框架来打造一个面向市场级别的产品

通过本项目,你可以了解到以下技术:

Material DesignMVP组件化KotlinRxJava2RetrofitDagger2RealmGlideArouterJsoupGradle配置混淆、多渠道包

预览

应用下载体验

项目相关

项目环境

项目结构

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"//使用javaapply from:"../base_component_compiler.gradle"//或kotlinapply 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或者更好的建议欢迎提出,如果觉得不错,对你有帮助的,请点个star,你的star将是我继续奋力前行的支持与鼓励!

issuemail:acgclub@ 或 zhangjm05@blog:/

鸣谢

RxJavaRxAndroidDagger2RxPermissionsRxCacheRetrofitOkhttpGsonButterknifeGlideLeakCanaryRealmMVPArmsJsoupJsoup-AnnotationsFragmentationBlockCanaryARouterDialogUtilToastyBaseRecyclerViewAdapterHelperHtmlTextViewMZBannerViewStatusBarUtilLoadSirLoggerAndroidUtilCodeVasDolly

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。