资讯专栏INFORMATION COLUMN

宅社V0.2.0发布并开源,从零开始打造一个面向产品级应用

Cristic / 3028人阅读

摘要:宅社,一款纯粹的聚合类项目地址出于爱好与学习的目的做出了这款风格的应用,旨意通过涵盖端的一些热门技术框架来打造一个面向市场级别的产品通过本项目,你可以了解到以下技术组件化配置混淆多渠道包预览应用下载体验项目相关项目环境项目结构宿主基础库

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

项目地址:https://github.com/Rabtman/AcgClub

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

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

Material Design

MVP

组件化

Kotlin

RxJava2

Retrofit

Dagger2

Realm

Glide

Arouter

Jsoup

Gradle配置

混淆、多渠道包

预览

应用下载体验

项目相关 项目环境

Android Studio 3.0

Gradle 4.1

Kotlin 1.2.21

compileSdkVersion 26

项目结构
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=""
#bugly
buglyAppId=""

#签名信息
storeFile=
storePassword=
keyAlias=
keyPassword=

#友盟分享key
SINA_WEIBO_KEY=""
SINA_WEIBO_SECRET=""
QQ_ZONE_ID=""
QQ_ZONE_KEY=""
WEIXIN_ID=""
WEIXIN_KEY=""
联系

项目需要完善的地方还有很多,如有BUG或者更好的建议欢迎提出,如果对你有帮助请随手star一个,你的支持是我前进的动力!!!

issue

mail:acgclub@rabtman.com 或 zhangjm05@gmail.com

blog:https://rabtman.com/

鸣谢

RxJava

RxAndroid

Dagger2

RxPermissions

RxCache

Retrofit

Okhttp

Gson

Butterknife

Glide

LeakCanary

Realm

MVPArms

Jsoup

Jsoup-Annotations

Fragmentation

BlockCanary

ARouter

DialogUtil

Toasty

BaseRecyclerViewAdapterHelper

HtmlTextView

MZBannerView

StatusBarUtil

LoadSir

Logger

AndroidUtilCode

VasDolly

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/69168.html

相关文章

  • CloudBest:年度复盘丨盘点2020无处不在的「云原生」

    摘要:华为云华为云在云原生这场游戏中,最具竞争力的玩家之一。年,金山云在云原生领域推出了三款重磅产品星曜裸金属服务器云服务器和云盘。在线上智博会上,浪潮云发布了经过全新迭代升级的浪潮云,进一步提升平台云原生服务能力。面对数字时代复杂系统的不确定性,传统的 IT 应用架构研发交付周期长、维护成本高、创新升级难,烟囱式架构,开放性差、组件复用度低,这些都成为了企业业务快速增长的瓶颈。而云原生以其敏捷、...

    Tecode 评论0 收藏0
  • IoT 云服务连接性的方式

    摘要:产品级代理云服务连接性的黑箱方法产品级的软件代理对一个具体的无线物联网模块硬件模型进行了预配置。云服务连接性的白箱方法只提供通过底层和标准化协议进行通信的通用库。物联网(IoT)的开发者可以选择很多方法来创建与物联网云服务的连接,每一个都有不同的优劣权衡。 怎么知道哪个选择是较好的呢?将物联网连接到云服务时,最快最简单的方法就是使用一个全功能的物联网软件代理,就像那些物联网平台供应商提供的那...

    you_De 评论0 收藏0
  • 每周前端开源推荐第三期

    摘要:每周前端开源推荐第三期是一个用很炫的动画来展示数字的库,效果非常赞。把放在第一位是因为现在毫无疑问是最流行的实时框架。如此巨额的投资保证了开源小组高质的开发,目前版本号是。目前貌似主要面向请应用。 每周前端开源推荐第三期 HubSpot / odometer Beautiful CSS3 Number Transitions #hubspot-open-source h...

    littleGrow 评论0 收藏0
  • 每周前端开源推荐第三期

    摘要:每周前端开源推荐第三期是一个用很炫的动画来展示数字的库,效果非常赞。把放在第一位是因为现在毫无疑问是最流行的实时框架。如此巨额的投资保证了开源小组高质的开发,目前版本号是。目前貌似主要面向请应用。 每周前端开源推荐第三期 HubSpot / odometer Beautiful CSS3 Number Transitions #hubspot-open-source h...

    senntyou 评论0 收藏0
  • 每周前端开源推荐第三期

    摘要:每周前端开源推荐第三期是一个用很炫的动画来展示数字的库,效果非常赞。把放在第一位是因为现在毫无疑问是最流行的实时框架。如此巨额的投资保证了开源小组高质的开发,目前版本号是。目前貌似主要面向请应用。 每周前端开源推荐第三期 HubSpot / odometer Beautiful CSS3 Number Transitions #hubspot-open-source h...

    enrecul101 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<