源码简介

这个项目用了什么?

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

以上内容转载自作者博客https://sakurajiang.github.io/
如果对本项目感兴趣项目的分析文章和git地址可以在博客里自寻。
javaapk.com之前也介绍过一个类似项目http://www.javaapk.com/source/50831.html

Android项目源码一款MVVM设计模式的Gank.io客户端 Android项目源码一款MVVM设计模式的Gank.io客户端 Android项目源码一款MVVM设计模式的Gank.io客户端 Android项目源码一款MVVM设计模式的Gank.io客户端 Android项目源码一款MVVM设计模式的Gank.io客户端 Android项目源码一款MVVM设计模式的Gank.io客户端

3条源码讨论
发表评论

您必须登录才能评论.

地板 Chise96 2018-09-18 下午12:07

很好

板凳 Peter123456 2016-10-15 上午11:37

博主大神,很喜欢你对后继者的无私奉献,很喜欢

沙发 1107934 2016-10-11 下午1:25

博主,PC控制手机屏幕的源码用不了,提示Timeout getting device list!,请博主给个解决方案,谢谢!

©2013-2018 JavaApk.com· 鲁ICP备13032311号-1· Powered by WordPress· Theme by JavaApkTM · 网站地图.17 queries in 0.112 seconds