推薦Android幾個優質的完整項目學習

==>來自於微信公衆號==鴻洋。你們能夠關注一波大神之做。android

後臺常常有人問我能不能推薦幾個完整項目用於學習。藉着週末的機會,給你們推薦幾個,項目我基本都在本地運行過,而且會在文章末尾提供每一個項目的apk用於你們下載預覽,若是你以爲不錯能夠再學習源碼,這樣避免了你們還須要導入、運行後選擇,能夠節省必定你們的時間。git

 

此外,因爲完整項目類很難在github上搜索,特地在wanandroid.com上開設了一個分類用於存儲完整的開源項目方便你們查找(最近工做太忙,wanandroid開發進度比較慢~~)。github

 

http://www.wanandroid.com/article/list/0?cid=254面試

 

下面開始推薦的項目吧~編程

 

 

1diycode客戶端緩存

 

 

Diycode 社區客戶端,相信不少人應該都知道這個社區,偶爾會有一些質量很高文章、討論等。微信

 

他們不但開源了客戶端,並且提供了一套SDK,若是你想要本身動手開發一個練手項目,是個不錯的選擇。網絡

此外,爲了便於理解項目源碼,他們在ReadMe中提供了幾篇技術文章:架構

 

  • 01 - 總體架構app

  • 02 - 緩存 WebView 中的圖片

  • 03 - 點擊網頁圖片查看大圖

  • 04 - API 的封裝哲學

  • 05 - 使用抽象類節省 1000 行代碼

 

這些文章不只可以方便你們理解,也能夠用來積累知識~

 

https://github.com/GcsSloop/diycode

 

2咕咚翻譯app

 

 

 

一個實現『劃詞翻譯』功能的 Android 應用 ,多是目前 Android 市場上翻譯效率最高的一款應用。

 

若是你常常在手機上閱讀文章,偶爾遇到一些英文單詞須要翻譯,你只要在當前頁面「劃詞」便可實現翻譯,該app很是實用,固然裏面也包含一些技術值得你花時間去學習:

 

一、全程使用 Dagger2 對項目進行類依賴管理

二、項目使用標準的 MVP 架構,關於 MVP 的一篇博客

三、實現對粘貼板的監聽以及訪問

四、無需權限顯示懸浮窗(6.0懸浮窗權限適配)

五、使用 RxJava 探索函數式編程

六、使用 Retrofit2 進行網絡請求

七、開機自啓動

八、Android 6.0 自定義文本操做欄

 

https://github.com/maoruibin/TranslateApp

 

3開眼視頻學習項目

 

 

 

作的很是精緻,界面很是優雅,功能也處於相對完畢的狀態。最重要的是是使用kotlin編寫的,若是你正在或者想要學習kotlin,經過項目去學習要比經過文字來學習快得多。

 

同時在Readme頁面,做者也對kotlin的特性有一些初步的介紹。若是你如今時間較爲充足,不妨學習下kotlin~

 

程序僅供學習交流, 不可用於任何商業用途

https://github.com/LRH1993/Eyepetizer-in-Kotlin

 

 

4仿今日頭條學習項目

 

 

 

 

 

 

 

你能夠認爲這是一個遵循Material Design風格的第三方的頭條客戶端,功能已經至關完備,, 聚合了新聞/段子/圖片/視頻/頭條號內容, 沒有廣告, 僅僅只有存粹的閱讀, 不斷完善中, 採用 MVP + RxJava + Retrofit 架構的項目~

 

包含技術:

 

  • 基本遵循 Material Design 設計風格

  • 抓包獲取今日頭條API

  • 使用 Google 官方 MVP 架構

  • DrawerLayout + NavigationView + BottomNavigationView 搭配使用

  • RxBus 代替 EventBus 進行組件之間通信

  • ViewPager 搭配 Fragment 懶加載

  • SwipeRefreshLayout 搭配 RecyclerView 下拉刷新上拉加載

  • 自定義 BottomNavigationBehavior 實現上滑隱藏下滑顯示

  • RxJava + Retrofit2 + OkHttp3 作網絡請求

  • OkHttp3 對網絡返回內容作緩存, 還有日誌、超時重連、頭部消息的配置

  • V層基類的構建, 包括 BaseActivity 和 BaseFragment , 對外提供了相同的接口

  • 使用原生的夜間模式

  • 解決側滑返回與 View 衝突問題

  • 內置 3 款 Logo, 隨意切換

  • 使用 CoordinatorLayout 、 AppBarLayout 、 CollapsingToolbarLayout 、 BottomSheetDialog 等等新控件

  • 使用 7.0 新工具 DiffUtil , 再也不無腦 notifyDataSetChanged

  • 使用 ItemTouchHelper 實現今日頭條的頻道排序、頻道移動, 參考 ItemTouchHelperDemo

  • 使用 RxBinding 優雅實現搜索請求

  • 使用 RxLifecycle 綁定 RxJava 生命週期

  • 使用 Travis Cl 持續集成

 

更加劇要的是,做者雙11還在更新代碼,是個至關不錯的學習項目~~

 

程序僅供學習交流, 不可用於任何商業用途

https://github.com/iMeiji/Toutiao

 

 

5鬥魚學習項目

 

 

 

 

 

高仿程度使人咋舌~光是UI和一些特效都夠學習至關一段時間了。

 

涉及到的一些第三方以下:

 

  • 彈幕三方庫:DanMu

  • 輪播圖:BGABanner

  • 刷新加載控件XRefreshView

  • 導航欄控件 FlyCoTabLayout

  • 彈幕與房間加密參考項目:鬥魚項目

  • 直播視頻播放器 :vitamio播放器 (備註:直播視頻格式:HLS,RTMP)

 

源碼:https://github.com/TeamCodeForGit/DouYu

 

想必會有朋友會遇到導入不成功的問題,如遇問題儘量將gradle相關配置修改成本身經常使用的版本,而後根據提示解決。

 

推薦閱讀:

個人 Android 面試故事 | 13家面試記錄

不要錯過 | 給你們推薦一些提高技能的好書

相關文章
相關標籤/搜索