美文网首页AppAndroid开发Android开发
从零开始打造一款面向市场级应用

从零开始打造一款面向市场级应用

作者: Rabtman | 来源:发表于2018-04-18 20:34 被阅读139次

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

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

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

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

    • Material Design
    • MVP
    • 组件化
    • Kotlin
    • RxJava2
    • Retrofit
    • Dagger2
    • Realm
    • Glide
    • Arouter
    • Jsoup
    • Gradle配置
    • 混淆、多渠道包

    预览

    应用下载体验

    qr-code.png preview.gif

    项目相关

    项目结构

    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支持一下,你的支持是我前进的动力。

    鸣谢

    相关文章

      网友评论

        本文标题:从零开始打造一款面向市场级应用

        本文链接:https://www.haomeiwen.com/subject/nvpbkftx.html