源碼簡介

這個項目用了什么?

項目使用了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.pjiawz.live/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-2019 JavaApk.com· 魯ICP備13032311號-1· Powered by WordPress· Theme by JavaApkTM · 網站地圖.17 queries in 0.082 seconds


竟彩足球比分直播