==>來自於微信公眾號==鴻洋。大家可以關注一波大神之作。
后台經常有人問我能不能推薦幾個完整項目用於學習。借着周末的機會,給大家推薦幾個,項目我基本都在本地運行過,並且會在文章末尾提供每個項目的apk用於大家下載預覽,如果你覺得不錯可以再學習源碼,這樣避免了大家還需要導入、運行后選擇,可以節省一定大家的時間。
此外,由於完整項目類很難在github上搜索,特意在wanandroid.com上開設了一個分類用於存儲完整的開源項目方便大家查找(最近工作太忙,wanandroid開發進度比較慢~~)。
下面開始推薦的項目吧~
1diycode客戶端
Diycode 社區客戶端,相信很多人應該都知道這個社區,偶爾會有一些質量很高文章、討論等。
他們不但開源了客戶端,而且提供了一套SDK,如果你想要自己動手開發一個練手項目,是個不錯的選擇。
此外,為了便於理解項目源碼,他們在ReadMe中提供了幾篇技術文章:
-
01 - 整體架構
-
02 - 緩存 WebView 中的圖片
-
03 - 點擊網頁圖片查看大圖
-
04 - API 的封裝哲學
-
05 - 使用抽象類節省 1000 行代碼
這些文章不僅能夠方便大家理解,也可以用來積累知識~
2咕咚翻譯app
一個實現『划詞翻譯』功能的 Android 應用 ,可能是目前 Android 市場上翻譯效率最高的一款應用。
如果你經常在手機上閱讀文章,偶爾遇到一些英文單詞需要翻譯,你只要在當前頁面“划詞”即可實現翻譯,該app非常實用,當然里面也包含一些技術值得你花時間去學習:
1、全程使用 Dagger2 對項目進行類依賴管理
2、項目使用標准的 MVP 架構,關於 MVP 的一篇博客
3、實現對粘貼板的監聽以及訪問
4、無需權限顯示懸浮窗(6.0懸浮窗權限適配)
5、使用 RxJava 探索函數式編程
6、使用 Retrofit2 進行網絡請求
7、開機自啟動
8、Android 6.0 自定義文本操作欄
3開眼視頻學習項目
做的非常精致,界面非常優雅,功能也處於相對完畢的狀態。最重要的是是使用kotlin編寫的,如果你正在或者想要學習kotlin,通過項目去學習要比通過文字來學習快得多。
同時在Readme頁面,作者也對kotlin的特性有一些初步的介紹。如果你現在時間較為充足,不妨學習下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還在更新代碼,是個相當不錯的學習項目~~
程序僅供學習交流, 不可用於任何商業用途
5斗魚學習項目
高仿程度令人咋舌~光是UI和一些特效都夠學習相當一段時間了。
涉及到的一些第三方如下:
-
彈幕三方庫:DanMu
-
輪播圖:BGABanner
-
刷新加載控件XRefreshView
-
導航欄控件 FlyCoTabLayout
-
彈幕與房間加密參考項目:斗魚項目
-
直播視頻播放器 :vitamio播放器 (備注:直播視頻格式:HLS,RTMP)
源碼:https://github.com/TeamCodeForGit/DouYu
想必會有朋友會遇到導入不成功的問題,如遇問題盡可能將gradle相關配置修改為自己常用的版本,然后根據提示解決。
推薦閱讀: