一款MVVM设计模式的Gank.io客户端——小憩干货

先给客官来几张项目部分截屏

主页面

主页面
主页面

搜索页面

搜索页面
搜索页面

搜索结果页面

搜索结果页面
搜索结果页面

大图页面

大图页面
大图页面

为什么写这个客户端?

我学习android也有一年多了,都说项目才是检验自己学习成果的最好方式,正好最近学习Material Design, RxJava & Retrofit框架和MVVM设计架构也有一段时间了,正好,网络上有gank.io这个免费接口,虽然已经有不少人写过这个客户端,但是没有一个是用MVVM设计架构的,于是我便写了这个项目。这个项目是我的第一个上线项目,可以查看图片,视频,技术文章等,支持收藏,搜索等,界面是仿网易云音乐,用户可以选择观看模式和摇一摇模式,界面简洁大方,操作简单易懂。到现在,这是第一个也是唯一一个使用MVVM设计架构的Gank.io客户端,想想还是挺有成就感的。

这个项目用了什么?

项目使用了Material Design, RxJava & Retrofit框架和MVVM设计模式,图标是使用svg和icon.用的都是最新的东西。图片的加载是用picasso,显示是使用RecyclerView,控件用的几乎都是Material Design,并且遵从Material Design规格要求,使得整个界面看起来很有Material Design风格,页面架构采用的是少activity多fragment,减少资源的消耗和更快的响应页面间切换和交互,使得用户体验更好。

为什么用这些?

关于这个问题,我先回答我特别喜欢RxJava和MVVM,先说RxJava,这个其实主要是为了解决异步问题,特别是对handler厌烦的人而言,RxJava的出现实在是太及时了,RxJava不算一种框架,它不能拿来就使用,但是它特别好,因为它所实现的大概就是,你输入一个东西,然后输出你想要的东西,这么说可能很宽泛,举个例子,比如在这个项目中,你的输入是通过Retrofit得到的数据,而这个数据是一个类,但是你只想要其中的url,怎么办?RxJava就可以,你只需要使用map操作符就可以(当然在这个项目中我没有这么写,因为我不只是想得到url),而使用Retrofit就是因为它对RxJava进行了很好的支持,当然,它本身也很方便。然后就是MVVM了,这个框架也出现一阵子了,对于使用这个框架,就不得不介绍Data Binding Library这个库了,这个库和mvvm一起使用,简直爽的不行,Data Binding Library这个库能让你在xml中进行数据绑定,在没有使用这个库之前,每次我们写xml都只是为了加载一个布局,除了这个功能,xml几乎没有别的作用,这样就让代码变得复杂、繁琐。那么如何使用这个库呢?我的建议是去官网,当然至于如何翻墙,我就不说了,毕竟僧多肉少(#阴险),如果不会翻墙或者不想看英文的同学,这里我推荐去看简书。 而对于为什么Material Design,只能说,谁用谁知道,毕竟是官方的东西。

你能从这个项目中学到什么?

1.RxJava和Retrofit结合进行网络请求,以及如何将请求和ProgressDialog结合,也就是展示网络请求的过程。

2.如何更好的在项目中使用Data Binding Library这个库来实现MVVM设计架构。

3.如何实现少Activity多Fragment页面架构,以及如何在一个Fragment中更好的嵌套另一个Fragment。

4.在Viewpager下更好的使用Fragment,以及多重ViewPager嵌套下,各个Fragment的处理方式,几乎涵盖了Fragment的各种使用方式以及和activity交互方式,比如,优雅的控制让Fragment自己决定处理返回事件还是让activity来处理。

5.一些简单的自定义View,比如自定义Edittext实现带有清除效果的搜索框。

6.Material Design库中绝大部分控件的使用,遵从Material Design规格要求,使得整个界面看起来很有Material Design风格。

7.如何让RecyclerView和Data Binding Library更好的结合。

8.如何更好的封装程序以及继承,让业务层和逻辑层更好的分离。

9.这个项目用的都是最新最火的框架和设计模式,所以你以后肯定会用到,而且在很长的时间里都不会有"过期"这一说(当然,知识是没有过期这一说法的,原谅我语文不好)。

10.我现在大四,也就意味着我有很多自由的时间,如果你在看我项目的时候遇到任何问题都可以和我联系,我会尽快给你回复,而且由于我技术比较菜(#谦虚),所以没有专家盲点(指对一个事务知道的越多,就越发不记得"不知道这个事"的情形),也就能更好的回答你们的问题(第一次将自己技术菜说的这么清新脱俗#害羞)。

地址:

Github:https://github.com/sakurajiang/RestAPP

应用宝 :http://sj.qq.com/myapp/detail.htm?apkName=com.example.jdk.restapp

个人博客 : https://sakurajiang.github.io/

最后

欢迎各位客官多多光临我的Github,喜欢这个项目的同学可以star一下,不胜感激,你的star是对我的肯定和鼓励(#调皮)。
目前我只放在了应用宝上,喜欢的可以下载支持下,不方便在应用宝下载的,在Github上还有直接下载地址。
如果你看到了这里,说明你已经看完这篇博客了,谢谢各位花时间看这篇博客,最后再来几张截屏,Good luck

摇一摇页面

摇一摇页面
摇一摇页面

抽屉页面

抽屉页面
抽屉页面

关于作者页面

关于作者页面
关于作者页面
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,045评论 25 707
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,360评论 2 44
  • 交织 作者:啊呦大人 夜晚大多归于平静 周围的一切都随着夜深而渐渐平息 但是唯独思想却总...
    啊呦大人阅读 171评论 0 2
  • 明月七分九天外,清辉半缕惹尘埃。 不知谁家少年事,一念家国一念寒。
    字不悔阅读 290评论 0 1
  • 2017-02-22 在我统治的星球里,每人脑中被植入了一个芯片,如果在公共场所故意发出超过指定分贝的声音,芯片便...
    ChatGPTplugin阅读 258评论 0 1