介绍

Gank平台的移动端又来了,非常感谢Gank平台开放接口,让我们这些小白有机会练手、学习。

本项目在架构方面有稍微花点心思,虽然还是最简单的MVC模式,但基本参考MVP的思想,Activity只负责ui显示逻辑,ui和业务会尽量的分离开,每个包的类权限严格控制,尽量对外部隐藏其实现细节。另外,本项目不像其他热门的Gank客户端那样使用诸如Rx系列的高级开源库,代码应该是可以很容易看懂的,吧。哈哈,有兴趣的可以fork看看,有什么问题可以联系我哈。

以下是项目所依赖的第三方库:

  • Retrofit + Okhttp (网络访问)
  • Gson (Json数据解析)
  • Glide (图片加载)
  • photoview (支持手势缩放的图片查看)
  • Jsoup (Html解析)

App下载

Fir

项目

Github地址

下图是项目的代码结构图,我分成mode层和ui层,让ui与业务逻辑尽可能解耦,感兴趣的clone项目看看哈,架构方面才刚接触,很多地方考虑不周到,欢迎指点一下哈。过段时间,我会单独写篇博客来介绍整个项目的架构设计以及各模块的职责和交互方式,让感兴趣的童鞋可以更容易理解项目代码。

如果有clone项目的童鞋,出现了编译失败的问题,可以参考下本项目的开发环境哈:

  • Android Studio: 2.2.3
  • Gradle Version: 2.14.1
  • Android Plugin Version: 2.2.3 (根目录build.gradle里gradle的版本)
  • compileSdkVersion: 25
  • buildToolsVersion: "25.0.2"

以上设置在两个build.gradle里都可以找到。

如果把代码下载到本地编译报错的话,有可能是因为gradle的版本不一致,也有可能是因为Android SDK的版本问题,如果有报错的童鞋试着在这几个地方查查看哈。

效果

效果只展示了部分效果,感兴趣的可以去我Github看看更详细的,或者是下载下来试试看哈。

  

  

鸣谢

drakeet

CaMnter

burgessjp

【Android】又一个Gank客户端来啦的更多相关文章

  1. Android手机SSH Client客户端推荐JuiceSSH

    Windows上建立ssh服务器 参见: http://www.cnblogs.com/xred/archive/2012/04/21/2461627.html Android手机SSH Client ...

  2. Android 判断一个 View 是否可见 getLocalVisibleRect(rect) 与 getGlobalVisibleRect(rect)

    Android 判断一个 View 是否可见 getLocalVisibleRect(rect) 与 getGlobalVisibleRect(rect) [TOC] 这两个方法的区别 View.ge ...

  3. Android版的菜谱客户端应用源码完整版

    Android版的菜谱客户端应用源码完整版,这个文章是从安卓教程网转载过来的,不是本人的原创,希望能够帮到大家的学习吧. <ignore_js_op> 152936qc7jdnv6vo0c ...

  4. Android由一个activity 间隔5秒自动跳转到另外一个activity

    Android由一个activity 间隔5秒自动跳转到另外一个activity 2013年10月10日18:03:42 //一.写一个定时器 5秒后开启        final Intent lo ...

  5. Android:一个高效的UI才是一个拉风的UI(一)

    开篇 Android是一个运行在移动终端上的操作系统,跟传统PC最大的不同所在就是移动终端的资源紧缺问题“比较”明显,当然对于一些屌丝机型,应该用“非常“来形容才靠谱.所以经常会出现在一些比较缺乏青春 ...

  6. android 让一个控件按钮居于底部的几种方法

    android 让一个控件按钮居于底部的几种方法1.采用linearlayout布局:android:layout_height="0dp" <!-- 这里不能设置fill_ ...

  7. 我的第一个REST客户端程序!

    Delphi:XE8 看了好几天的资料了,也没有弄出来一个REST程序,尝试了XE8中带的例子,也都没有搞懂.我在网上不断搜索,看是否能够找到适合自己的文章,希望能够做出来一个REST的小例子,万幸, ...

  8. Android中一个类实现的接口数不能超过七个

    近期一段时间,在开发Android应用程序的过程中,发现Android中一个类实现的接口数超过七个的时候,常常会出现超过第7个之后的接口不能正常使用.

  9. android:分享 一个很强大的LOG开关---Log.isLoggable

    标签:android分享 一个很强大的log开 1.API亮点: 此API可以实现不更换APK,在出问题的手机上就直接能抓到有效log,能提升不少工作效率. 2.API介绍 最近在解决短信问题时,看到 ...

随机推荐

  1. 2017携程Web前端实习生招聘笔试题总结

    考察encodeURI encodeURI(), decodeURI()它们都是Global对象的方法. encodeURI()通过将某些字符的每个实例替换代表字符的UTF-8编码的一个或多个转义字符 ...

  2. windows下用cordova构建android app

    最近用到cordova打包apk,总结了下,写下来给大家分享. 一.前期准备工作: 1.安装node   6.2.0 *64 下载地址:链接:http://pan.baidu.com/s/1eS7Ts ...

  3. 《Algorithms Unlocked》读书笔记2——二分查找和排序算法

    <Algorithms Unlocked>是 <算法导论>的合著者之一 Thomas H. Cormen 写的一本算法基础,算是啃CLRS前的开胃菜和辅助教材.如果CLRS的厚 ...

  4. Oracle空间查询 ORA-28595

    可使用数据库管理系统 (DBMS) 的结构化查询语言 (SQL).数据类型和表格式来处理地理数据库或安装了 ST_Geometry 类型的数据库中所存储的信息. 例如,在ArcMap中我们使用&quo ...

  5. AIX误删除LV后如何进行现场保护和数据恢复工作

    在AIX环境下,若因维护误操作.存储mapping错误等,不小心将LV误删除,这种损失通常是巨大的.删除后的不当保护及恢复操作可能使数据无法恢复,也可能增加处理的时间与算法复杂度.如何有效保护现场,并 ...

  6. python练习_12

    题目:敏感词文本文件 filtered_words.txt,里面的内容 和 0011题一样,当用户输入敏感词语,则用 星号 * 替换,例如当用户输入「北京是个好城市」,则变成「**是个好城市」.(11 ...

  7. 为什么说B+-tree比B 树更适合实际应用中操作系统的文件索引和数据库索引?

    B树: B+树 1) B+-tree的磁盘读写代价更低 B+-tree的内部结点并没有指向关键字具体信息的指针.因此其内部结点相对B 树更小.如果把所有同一内部结点的关键字存放在同一盘块中,那么盘块所 ...

  8. 给上传文件的input控件"美容"

    作为一名前端程序猿呢,在工作中经常会遇到form表单这种东西.然而表单的其他input控件样式还是很好改变的.但是,唯独input类型是file的文件上传控件可能就没那么好打扮的漂亮.刚好菜鸟我最近工 ...

  9. poj1269计算几何直线和直线的关系

    We all know that a pair of distinct points on a plane defines a line and that a pair of lines on a p ...

  10. Linux下Hadoop2.7.1集群环境的搭建(超详细版)

                                本文旨在提供最基本的,可以用于在生产环境进行Hadoop.HDFS分布式环境的搭建,对自己是个总结和整理,也能方便新人学习使用. 一.基础环境 ...