不可錯過的幾款GitHub開源項目


 

工作之余或者周末感覺無聊?不知道干什么?想繼續提高技術,但是不知道做什么的同學,看過來,不妨利用閑暇時間來擼幾個 GitHub 上還不錯的開源項目,本文推薦的開源項目比較適合新手、及對MVP設計模式不太熟練的同學練習之用,下面逐一進行簡單介紹。

1.ZhiHuMVP

一款采用 MVP 模式的仿知乎客戶端。

本項目包含以下知識點:

  • MVP架構思想
  • Retrofit RESTful API 框架的配合
  • RxJava 響應式編程
  • Butter Knife:通過注解綁定 View
  • 夜間模式切換

效果圖:

這里寫圖片描述這里寫圖片描述

https://github.com/fangx/ZhiHuMVP

2.ColorfulNews

一個 Material Design 風格的新聞閱讀 App,采用 MVP 模式,基於 Dagger2+RxJava+Retrofit2進行開發。

主要用到的開源庫:

  • Dagger2
  • RxJava
  • Retrofit2
  • Butterknife
  • Greendao
  • PhotoView
  • Glide
  • Picasso

效果圖:

這里寫圖片描述這里寫圖片描述

https://github.com/kaku2015/ColorfulNews

3.boxing

Bilibili 開源的基於MVP模式的 Android 多媒體選擇器。

特性:

  • 支持自定義UI
  • 支持多/單圖片選擇和預覽,單圖裁剪功能
  • 支持gif
  • 支持視頻選擇功能
  • 提供圖片壓縮
  • 多圖生成gif(checkout feature/gif-encode)

效果圖:

這里寫圖片描述這里寫圖片描述

https://github.com/Bilibili/boxing

4.MinimalistWeather

MinimalistWeather 是 Android 平台上一款開源天氣 App ,目前還在開發中。項目基於 MVP 架構,采用各主流開源庫實現。開發此項目主要是為展示各種開源庫的使用方式以及 Android 項目的設計方案,並作為團隊項目開發規范的一部分。

采用的開源庫包括:

  • RxJava
  • Retrofit2
  • OKHttp3
  • ORMLite
  • Dagger2
  • ButterKnife
  • RetroLambda
  • Stetho

本項目還展示了:

  • MVP+RxJava在實際項目中的應用,MVP中RxJava生命周期的管理…;
  • 上述羅列的各種開源框架的使用方法;
  • Java8 Lambda表達式和Stream API的用法;
  • 怎樣適配Material Design;
  • ToolBar、RecycleView、CardView、CoordinatorLayout等新控件的用法;
  • Gradle的基本配置(包括簽名打包、項目依賴等等);
  • 如何更好的管理Gradle依賴庫的版本;
  • 代碼混淆配置;
  • 如何快速開發一款結構清晰、可擴展性強的Android Application。

https://github.com/BaronZ88/MinimalistWeather

5.TranslateApp

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

技術點:

  • 全程使用 Dagger2 對項目進行類依賴管理
  • 項目使用標准的 MVP 架構,關於 MVP 的一篇博客
  • 實現對粘貼板的監聽以及訪問
  • 無需權限顯示懸浮窗(6.0懸浮窗權限適配)
  • 使用 RxJava 探索函數式編程
  • 使用 Retrofit2 進行網絡請求
  • 開機自啟動
  • Android 6.0 自定義文本操作欄

效果圖:

這里寫圖片描述這里寫圖片描述

https://github.com/maoruibin/TranslateApp

6.Ghost

微影,一款純粹的在線視頻App,基於Material Design + MVP + Dagger2 + RxJava + Retrofit + Realm + Glide。

技術點:

  • 使用RxJava配合Retrofit2做網絡請求
  • 使用RxUtil對線程操作和網絡請求結果處理做了封裝
  • 使用RxPresenter對訂閱的生命周期做管理
  • 使用AndroidEventBus來方便組件間的通信
  • 使用Material Design控件和動畫
  • 使用MVP架構整個項目,對應於model、ui、presenter三個包
  • 使用Realm做閱讀記錄和收藏記錄的增、刪、查、改
  • 使用Glide做圖片的處理和加載
  • 使用RecyclerView實現下拉刷新、上拉加載、側滑刪除、長按拖曳
  • 支持主題設置
  • 包含搜索、收藏、歷史等功能

效果圖:

這里寫圖片描述這里寫圖片描述

https://github.com/GeekGhost/Ghost

7.GeekNews

極客日報,一款純粹的閱讀App,基於Material Design + MVP + RxJava2 + Retrofit + Dagger2 + Realm + Glide。

技術點:

  • 使用RxJava配合Retrofit2做網絡請求
  • 使用RxUtil對線程操作和網絡請求結果處理做了封裝
  • 使用RxPresenter對訂閱的生命周期做管理
  • 使用RxBus來方便組件間的通信
  • 使用RxJava其他操作符來做延時、輪詢、轉化、篩選等操作
  • 使用okhttp3對網絡返回內容做緩存,還有日志、超時重連、頭部消息的配置
  • 使用Material Design控件和動畫
  • 使用MVP架構整個項目,對應於model、ui、presenter三個包
  • 使用Dagger2將M層注入P層,將P層注入V層,無需new,直接調用對象
  • 使用Realm做閱讀記錄和收藏記錄的增、刪、查、改
  • 使用Glide做圖片的處理和加載
  • 使用Fragmentation簡化Fragment的操作和懶加載
  • 使用RecyclerView實現下拉刷新、上拉加載、側滑刪除、長按拖曳
  • 使用x5WebView做閱覽頁,比原生WebView體驗更佳
  • 使用SVG及其動畫實現progressbar的效果
  • 使用RxPermissions做6.0+動態權限適配
  • 使用Jsoup解析V2EX站點DOM
  • 使用原生的夜間模式、分享、反饋
  • 包含搜索、收藏、檢測更新等功能
  • 所有踩到的坑都在項目里做了注釋

效果圖:

這里寫圖片描述這里寫圖片描述

https://github.com/codeestX/GeekNews

8.MovieGuide

MovieGuide是一款受歡迎、高級別的電影Android應用,展示了預告片和評論等功能。采用了MVP模式、RxJava、Dagger 2 和 Bob Martin 的 Clean 架構方法,並針對平板電腦進行了優化。

效果圖:

這里寫圖片描述這里寫圖片描述

https://github.com/esoxjem/MovieGuide

9.SimpleNews

基於Material Design和MVP的新聞客戶端。

效果圖:

這里寫圖片描述這里寫圖片描述

https://github.com/liuling07/SimpleNews

10.Toutiao

一款第三方今日頭條客戶端,遵循材料設計(Material Design), 聚合了新聞/段子/圖片/視頻/頭條號內容, 沒有廣告, 僅僅只有存粹的閱讀, 不斷完善中, 采用 MVP + RxJava + Retrofit 架構的項目。

主要功能特性:

  • 首頁五大模塊: 新聞 / 圖片 / 視頻 / 頭條號 / 問答
  • 實現首頁的布局和數據的顯示
  • 實現自定義新聞欄目順序
  • 新聞詳情頁面支持日夜兩種主題
  • 顯示新聞評論
  • 頭條號訂閱 查看頭條號歷史文章 / 視頻
  • 搜索功能 熱門搜索推薦 搜索歷史記錄
  • 自定義主題顏色 無縫切換日夜皮膚
  • 視頻播放
  • 內置3款 logo 隨意互換
  • 動態切換字體大小

主要技術點:

  • 基本遵循 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 優雅實現搜索請求
  • 使用 AutoDispose 綁定 RxJava 生命周期
  • 使用 Travis Cl 持續集成

效果圖:

這里寫圖片描述這里寫圖片描述

https://github.com/iMeiji/Toutiao

11.PhotoNoter

Material Design風格的開源照片筆記。

主要技術點:

  • 整體項目MVP結構
  • Dagger2
  • 相機部分,API >= 21使用 Camera2 ,API < 21使用 Camera
  • 相機的狀態機,聚焦狀態機
  • 照片緩存分為兩種,一個是大圖,一個是小圖,小圖是相冊界面縮略圖的時候加載的,大圖是查看圖片的時候加載的
  • 圖片處理
  • 沙盒
  • Activity 退出和進入的動畫
  • 一些 UI 的動畫,比如 “ 意見反饋”、 “ 語音輸入” 這里面的動畫
  • 主題設置,沉浸式狀態欄(Android 5.0)
  • 切換主題
  • 可以滑動 item 和可以拖放 item 的 ListView(SlideAndDragListView)
  • Android 原生平台的 Markdown,支持 EditText 編輯實時預覽 (RxMarkdown)
  • RxJava + RxAndroid(RxCategory/ RxPhotoNote/ RxSandBox/ RxFeedBack/ RxUser)
  • dex分包處理
  • Dex自動分包腳本
  • 使用 AOP 進行 Android 6.0 權限適配
  • NDK && AIDL

效果圖:

這里寫圖片描述這里寫圖片描述

https://github.com/yydcdut/PhotoNoter

好了,終於介紹完了,由於本文篇幅比較長,建議 「收藏」,歡迎大家評論點贊或者轉發,如有更多想法歡迎在下方留言。

重要聲明:本文中介紹的所有開源項目所有權仍歸原開源作者所有,本文僅對原作者的開源項目進行介紹、整理說明,供參考、學習交流之用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM