美文网首页Android开发Android项目Android开源项目
个人项目-一之(MVP+RxJava2+Retrofit2+Rx

个人项目-一之(MVP+RxJava2+Retrofit2+Rx

作者: Horrarndoo | 来源:发表于2017-10-25 18:23 被阅读2022次

很早之前就想写一个个人项目练练手,但是由于工作的关系,一直没有真正的开动(其实就是懒)。
好吧,反正最近这几个星期稍微比较清闲,趁着这个机会,在空余时间撸了一个个人项目。


一之

简介

“一之”是一款资讯类App,主要实现的内容如下:

  • 主页(知乎日报、每日新闻、微信精选)
  • 干货(每日推荐、干货定制、福利)
  • 影视(最新影视资讯,Top250电影推荐)
  • 书籍(文学类、文化类、生活类)
  • 个人(头像设置)

项目地址:https://github.com/Horrarndoo/YiZhi


运行截图

运行时权限&懒加载

运行时权限运行时权限 懒加载懒加载

主页

主页1主页1 主页2主页2
主页_项目主页主页_项目主页 主页_夜间模式主页_夜间模式
主页_分享主页_分享

干货

干货_主页刷新干货_主页刷新 干货_定制干货_定制
干货_福利干货_福利

影视&书籍

影视_hot影视_hot 书籍_hot书籍_hot

个人

个人_head1个人_head1 个人_head2个人_head2

敏感权限说明

    <!--用于进行网络定位-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <!--用于访问GPS定位-->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <!--获取运营商信息,用于支持提供运营商信息相关的接口-->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <!--用于访问wifi网络信息-->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <!--这个权限用于获取wifi的获取权限-->
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    <!--用于访问网络-->
    <uses-permission android:name="android.permission.INTERNET"/>
    <!--用于读取手机当前的状态-->
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <!--写入扩展存储,向扩展卡写入数据,用于保存在线图片数据-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <!--用于头像设置-->
    <uses-permission android:name="android.permission.CAMERA"/>
    <!--用于分享App-->
    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
    <!--用于分享App-->
    <uses-permission android:name="android.permission.GET_ACCOUNTS"/>

下载地址

Fir.im: http://fir.im/s4lr


API来源

知乎日报以及每日新闻API源于Github开源项目中提供的API,干货API使用的是GankIo提供的API,微信精选API来源于聚合数据,影视以及图书都是来源于豆瓣API。

  1. 知乎日报
  2. 每日新闻
  3. 微信精选
  4. 干货
  5. 影视
  6. 图书

开源项目

  1. Rxjava
  2. RxAndroid
  3. Retrofit
  4. Glide
  5. Butterknife
  6. Fragmentation
  7. Logger
  8. BaseRecyclerViewAdapterHelper
  9. PhotoView
  10. CircleImageView
  11. RxPermissions

感谢

感谢Github的各位开源作者提供宝贵的代码参考。


关于作者

Horrarndoo

相关文章

  • 个人项目-一之(MVP+RxJava2+Retrofit2+Rx

    很早之前就想写一个个人项目练练手,但是由于工作的关系,一直没有真正的开动(其实就是懒)。好吧,反正最近这几个星期稍...

  • 基于Django的打分系统

    Django项目之个人网站 Github地址:https://github.com/liangdongchang/...

  • 个人项目

    数据库设计 分为如下几个模块: tb_area:存储地址,主键为area_id tb_head_line:存储首页...

  • 项目开发之经验分享

    项目开发之经验分享 项目开发之经验分享

  • Tower使用心得

    从本周开始,我开始在负责的项目中推动使用Tower的项目管理工具,个人觉得这个工具是迷之好用的,它解决了项目管理中...

  • 5-机智云用户手册

    一、个人项目产品转企业项目产品: 1、种类可分为:个人开发者账号、企业开发者账号、个人项目、企业项目 2、个人项目...

  • [项目蓝图] 个人博客项目

    此项目属于萌新学习(>▽<),还请大佬们多多指教 _(:」∠)_该日记主要记录写Bug和改Bug的过程 项目介绍 ...

  • 如何提升项目组成员的执行力

    作为一个项目来讲,在当前团队制胜的形势下,光靠项目经理个人以一当十的能力是不够的,项目经理不能靠单打独斗的匹夫之勇...

  • 2018-11-22 Myth分布式事务开源框架(基于消息中间件

    作者:yu199195 项目Git: myth Myth源码解析系列之(一)-项目简介 Myth源码解析系列之(二...

  • 个人博客项目

    源码地址:github示例:Yui_tycc的博客 (好久没更博客,等服务器换好之后也会在个人博客网站上更新,同时...

网友评论

  • RedRainM:为啥我的标题栏老是陷入状态栏 一丢丢
  • Fairypajiuda:这波操作满分
  • super甜:学习的第一个MVP项目,写得真好,原谅我剽窃了大神对MVP的封装还有你的SDK:joy: :joy: :joy:
    Horrarndoo:@super甜 😄
  • 商生:大神你好,我在编译项目时发生了错误,
    提示horrarndoo\sdk\rxbus\RxBus.java:98
    找不到符号
    if (method.isAnnotationPresent(Subscribe.class)) {
    ^
    符号: 方法 isAnnotationPresent(Class<Subscribe>)
    位置: 类型为Method的变量 method
    不知是哪里出了问题,求解惑。
  • tcgwl:楼主,在项目中的图标是用什么工具生成的吗?看见都是vector,path标签
  • 聪明叉:谜之丑陋:flushed:
  • snail10:大神,我拜读了您GitHub上的源码,想跟着撸一番,然后发现那些依赖库是建在项目的build里的,第一次发现还可以这样,真厉害,有没有相关文章解读一下的,一脸懵逼,还请解答啊。那个sdk包,是第三方框架sharesdk吗?
    snail10:@Horrarndoo 这个sdk好多内容啊,我想跟着撸,发现有很大的困难。大神可以加个qq或微信请假一番吗?
    Horrarndoo:@snail10 sdk是我自己抽取出来的一个module,将一些base类和工具类单独抽取出来。在sdk module中依赖一些常用的第三方库,app module再依赖sdk module,个人习惯。
  • fc69f585dd66:大神,关于RecyclerView的多布局加载怎么实现,一个列表页的好几个模块有好几个接口,通过MVP模式我不知道该怎么写。
    fc69f585dd66:@Horrarndoo 列表页需要一次性请求多个接口,该怎么写。
    fc69f585dd66:看到了,正在学习。:pray:
    Horrarndoo:本项目的干货页面实现你可以参考下
  • 2ba84196184f:入行快两年了。一直都是零零散散的学习,打算练手一个完成的项目整合一下自己的知识体系,查漏补缺。。给楼主一个赞,mark了
    Horrarndoo:希望对你有所帮助:smile:
  • seawaveai:学习。
  • MrHe_2799:发现报这个错,大神你知道怎么解决吗?Error:Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve project :sdk.
    Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve project :sdk."
    MrHe_2799:@Horrarndoo 不要这两句就可以了
    ]debugImplementation project(':sdk')
    releaseImplementation project(':sdk')
    发现关于里面会有OOM
    Horrarndoo:3.0的依赖方式和2.3的不一样 我这个项目是在2.3上面写的。
    把app module的依赖改成下面这样试试:
    dependencies {
    implementation fileTree(dir: 'libs', include: '*.jar')
    implementation project(':sdk')
    debugImplementation project(':sdk')
    releaseImplementation project(':sdk')
    }
  • qige1991:亲,这个项目荡下来,发现报这个错,大神你知道怎么解决吗?Error:(54, 0) Cannot set the value of read-only property 'outputFile' for ApkVariantOutputImpl_Decorated{apkData=Main{type=MAIN, fullName=release, filters=[]}} of type com.android.build.gradle.internal.api.ApkVariantOutputImpl.
    <a href="openFile:D:\Java\studio\Demo\YiZhi-master\app\build.gradle">Open File</a>
    qige1991:@Horrarndoo 谢谢大神指点
    Horrarndoo:Android Studio 3.0之后Gradle打包重命名的方法要改,output.outputFile变成了只读属性,不能再往里面写东西了。

    applicationVariants.all { variant -> //批量修改Apk名字
    variant.outputs.all { output ->
    if (!variant.buildType.isDebuggable()) {
    //要被替换的源字符串
    def sourceFile = "-${variant.flavorName}-${variant.buildType.name}"
    //替换的字符串
    def replaceFile = "YiZhi_${variant.flavorName}_${variant.versionName}_${variant.buildType.name}_${buildTime()}"
    outputFileName = output.outputFile.name.replace(sourceFile, replaceFile);
    }
    }
    }

本文标题:个人项目-一之(MVP+RxJava2+Retrofit2+Rx

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