(已上傳源碼)最近開發的一款應用,我選擇了哪些框架 & 第三方庫

小秋魔盒 採用的第三方庫

最近利用閒暇時間,寫了一款生活工具類的應用,開始的目的也主要是爲了熟練一些老框架和熟悉一些新框架或者第三方庫,你們能夠把它當作一款練手的 Demo 應用吧!這裏把本身在這個應用中用的庫總結一下,還有一些你們感興趣的實現效果也在這裏給你們說明一下,你們在開發中做爲一種參考吧。html

目錄

簡書這個目錄結構真的有點混亂的,這裏補充一下總體結構:java

  • 應用相關(小秋魔盒)
  • 第三方庫
    • 應用的總體框架(Rxjava + Retrofit + okhttp)
    • 一些通用且經常使用的框架(Glide、leakcanary、Logger等等)
      1. Logger 日誌打印
      2. GsonFormat & Gson json 數據解析
      3. butterknife 依賴注入框架
      4. leakcanary 內存泄漏檢測工具
      5. Glide 圖片請求庫
      6. circleimageview 圓形圖片庫
      7. greenDAO 數據庫
      8. eventbus 事件發佈/訂閱框架
    • 經常使用第三方平臺的使用
      1. 小米推送
      2. ShareSDK
      3. SMSSDK
      4. 友盟統計
    • 一些針對功能的開源庫
      1. BaseRecyclerViewAdapterHelper RecycleView 拓展庫
      2. ReactiveNetwork 手機網絡鏈接狀態動態監控
      3. colorpicker 顏色畫板選擇庫
      4. BGAQRCode-Android 二維碼掃描項目
      5. MPAndroidChart 圖表庫
      6. material-calendarview 材料設計日曆控件
      7. flexbox-layout 盒子佈局控件
      8. KenBurnsView 視差圖片控件
      9. materialsearchview 材料設計搜索框
      10. MagicIndicator 指示器庫
      11. Android應用自動更新庫(android-auto-update)
      12. Slidinglayout 果凍彈跳效果
      13. SlidingTutorial-Android 引導頁
      14. Android 權限的動態申請
      15. 圖片手勢控件
  • 結尾

應用相關

這裏是這款應用的下載地址和演示視頻,你們能夠下載把玩一下:
小秋魔盒下載地址:mobile.baidu.com/item?type=s…
小秋魔盒演示視頻:v.youku.com/v_show/id_X…android

第三方庫

下面進入重點,主要介紹一下開發中採用的庫第三方框架和庫(截圖較多,手機流量黨慎入)。git

1. 應用的總體框架(Rxjava + Retrofit + okhttp 網絡請求框架)

在之前的項目中採用的網絡請求框架,基本上都是使用的封裝好的 okhttp 框架,不過最近一兩年,Rxjava + Retrofit 十分熱門勢頭很盛。做爲開發者,老是要去學習和接受採用這些新出來的技術。在開發的世界裏,永遠是技術至上,一門新技術的盛行老是有它的優越之處,要麼比老框架性能提高很多,要不更加易用等等。github

Rxjava + Retrofit + okhttp 對數據的請求

對於 Rxjava + Retrofit + okhttp 相結合的使用,我的建議目前不要去網上找那些所謂的封裝好的庫什麼的,你們仍是原生的使用 Rxjava 和 Retrofit,雖然代碼上有些繁瑣可是這樣一來你們可以更快的熟悉它們的各個用法。(同時,表示目前我也沒有找到可以把它們封裝十分完善的庫)數據庫

三個庫的官方地址請自行查找,這裏提供一個介紹用法的 Demo 地址(我的也是參考這個使用的)
Github地址:github.com/rengwuxian/…json

若是對這三個庫的基本用法還不太熟悉的,能夠參考一下下面我收集的一些教程:網絡

Rxjava 教程
給 Android 開發者的 RxJava 詳解: gank.io/post/560e15…
Okhttp 教程:
地址:ocnyang.com/tags/OkHttp…
Retrofit2 教程:
地址:ocnyang.com/tags/Retrof…app

2. 一些通用且經常使用的框架(Glide、leakcanary、Logger等等)

Logger 日誌打印
Github地址:github.com/orhanobut/l…框架

GsonFormat & Gson json 數據解析
GsonFormat Github地址:github.com/zzz40500/Gs…
Gson Github地址:github.com/google/gson

butterknife 依賴注入框架
Github地址:github.com/JakeWharton…

leakcanary 內存泄漏檢測工具
Github地址:github.com/square/leak…

Glide 圖片請求庫
Github地址:github.com/bumptech/gl…
教程地址:ocnyang.com/tags/Glide/

circleimageview 圓形圖片庫
Github地址:github.com/hdodenhof/C…

greenDAO 數據庫
Github 地址:github.com/greenrobot/…

eventbus 事件發佈/訂閱框架
Github 地址:github.com/greenrobot/…

3. 經常使用第三方平臺的使用(推送 + 社會化分享登陸 + 短信驗證)

這裏先說一下,其實目前國內市場有相同功能的各個平臺基本上趨於同質化,選擇哪一個也不必那麼糾結,效率相差不會太大。

  1. 小米推送(原本沒想用小米的,抵不住前幾年小米手機賣的好名氣大,我就用用試試。這裏說一下和其餘平臺相比的不足點,小米推送目前不支持富文本的可是效率是很不錯的。)
  2. ShareSDK Mob 平臺的社會化分享和登陸
  3. SMSSDK Mob 平臺的手機短信驗證(感受 Mob 平臺名氣穩健,一方面是名字取得好呀,一方面永久免費)
  4. 友盟統計 (這個小應用大部分都會用吧)

4. 一些針對功能的開源庫

BaseRecyclerViewAdapterHelper RecycleView 拓展庫 不管在哪一個項目,可能使用相對比較頻繁的就是列表了,這裏先說一下本身選取列表庫。若是你還在着重用ListView/GridView,你真的須要抽出一點時間還研究研究一下 RecyclerView 的用法了。

RecyclerView 的使用我想你們已經在平常開發中已經頻繁使用了,如今針對 RecyclerView 的封裝庫也已是遍地都是了,Github 上 star 過千的也不少不少了。 你們能夠看看這位朋友總結的 RecyclerView 庫的集合,你必定會眼花繚亂的:
《那些酷炫的RecyclerView開源庫整理》 簡書地址 www.jianshu.com/p/154891851…

而我這當初在對比多個庫後最終選擇了 BaseRecyclerViewAdapterHelper 這個庫,緣由這個簡單說一下:本身在選擇時的標準是:

  • **1. **列表要有的功能要全(添加 Header&Footer,下拉刷新頁面,上拉加載更多這些基本的功能都要有);
  • **2. **不能有入侵性,所謂入侵性就是不能對原生態使用有本質的改變,好比有些框架要求你在使用時使用 SuperRecycleView 諸如這些自定義的控件名,更有甚者有時候看這些框架源碼才發現,它內部居然是繼承封裝的 LinearLayout;有些要求你在使用原有控件時,須要在原有控件外部嵌套一層父佈局,這點也是不能容忍的。
  • **3. **這裏簡介一下 BaseRecyclerViewAdapterHelper,這個框架入侵性很是小,佈局時你不須要任何改變,須要下拉刷新時,你能夠像從前同樣在外部嵌套一層 SwipeRefreshLayout 就行了。同時加載動畫,加載失敗等的佈局你另外設置就好了,添加 header/footer 你新建一個佈局經過 .add(header) 就很輕易的添加上了。
    BaseRecyclerViewAdapterHelper 這個框架從命名上你大概就能看出來,它的入侵體如今 Adapter 上,可是 Adapter 的職責是數據適配填充,對它的入侵在我看來是能夠接受的。

這裏就說這麼多,感興趣的話本身能夠到 Github 上了解一下具體用法(說明文檔還算友好,建議參考Demo看):
Github 地址:github.com/CymChad/Bas…

這裏向你們展現一下在「小秋魔盒」中的使用:

多佈局

拖曳

添加 Header & Footer

最近對 RecyclerView 寫了一篇比較詳細的梳理文章,你們能夠看一下:
RecyclerView 梳理:點擊&長按事件、分割線、拖曳排序、滑動刪除

ReactiveNetwork 手機網絡鏈接狀態動態監控
如今的應用中,經常用到例如 WiFi 網絡下顯示圖片,而手機流量下不顯示圖片的需求,這個時候就須要隨時監聽手機網絡的鏈接和斷開、WiFi和流量的切換,以便隨時作出相應的變化。
ReactiveNetwork 這個庫可以幫你作到這一點。這個庫我也是無心中發現的,具體的用法你們能夠本身查看:
Github地址:github.com/pwittchen/R…

colorpicker 顏色畫板選擇庫

顏色選取

相似的庫也有不少,但仍是喜歡這個。
Github 地址: github.com/QuadFlask/c…

BGAQRCode-Android 二維碼掃描項目

二維碼掃描|圖片來自Github

做者自己也是改造的別人的一個庫,若是你的項目中須要二維碼掃描且同時要求不是過高,能夠考慮使用此庫。
Github 地址:github.com/bingoogolap…

MPAndroidChart 圖表庫

蜘蛛能力圖

在 Android 開發中使用過圖表的,應該都會知道這個庫吧。這個庫是真心強大的不能強大的開源庫,能知足你大多的圖表圖需求了。
Github 地址:github.com/PhilJay/MPA…

material-calendarview 材料設計日曆控件

改造後支持農曆和節假日查詢的日曆

很漂亮的一個日曆控件,可拓展性也很不錯。
Github 地址:github.com/prolificint…

flexbox-layout 盒子佈局控件

盒子佈局,自動換行

Github 地址:github.com/google/flex…
相應的教程也有不少,你們自行 Google 吧。

KenBurnsView 視差圖片控件

視差圖片效果

有時候項目中應用一下,這種效果仍是很不錯的。
Github 地址:github.com/flavioarfar…

materialsearchview 材料設計搜索框

材料設計 搜索框

Github 地址:github.com/MiguelCatal…

MagicIndicator 指示器庫

指示器效果

這個庫,目前發現多多少少仍是有一點bug的,記得鴻洋大神也開源一個差很少的庫,也挺不錯的能夠自行搜索一下。
MagicIndicator 地址:github.com/hackware199…

Android應用自動更新庫(android-auto-update)

一個應用本地自動更新的庫,Dialog & Notification 兩種形式都支持,仍是很不錯的。
項目地址:github.com/feicien/and…

Slidinglayout 果凍彈跳效果

果凍彈跳效果

這種效果在QQ上你們應用很常見,通常狀況下都是用在 WebView 上吧,固然你還能夠用在其餘地方,發揮你的想象力。
Github 地址:github.com/HomHomLin/S…

SlidingTutorial-Android 引導頁

SlidingTutorial-Android 效果圖

AppIntro 效果圖

根據Demo直接使用,可定製的東西不多,固然引導頁自己也沒什麼可定製的,就看本身喜歡不喜歡這個引導頁的設計。這裏給出了兩個庫,我在應用中採用的是第一個,你們欣賞一下就好了。
SlidingTutorial-Android項目地址:github.com/Cleveroad/s…
AppIntro Github 地址:github.com/apl-devs/Ap…

Android 權限的動態申請

從 Android 6.0 開始,部分高級權限須要動態申請,在之前的版本中是在安裝應用時一次性許可全部權限的申請,可是 6.0 之後,安裝後只會默認容許部分低權限,高級權限須要你手動申請用戶開通,若是你不作申請在應用權限的界面會閃退崩潰。

相信一線開發者早就知道這些了,這裏給出幾個能夠幫助你動態申請權限的庫:

Android 圖片手勢控件

手勢圖片效果

Github 地址:github.com/boycy815/Pi…

結尾

好了,對庫就總結這麼多吧。若是你們在玩「小秋魔盒」時遇到什麼問題均可以在下方留言,若是對應用中的某個功能的實現效果有疑問也能夠下方留言,若是我感受有必要的話,會寫一些相應的教程給你們。
對於「小秋魔盒」源代碼,目前不能放出來,一方面如今剛剛完成,代碼格式什麼的寫的都比較隨意,也可能避免不了的存在許多bug;另外一方面應用中的部分功能尚未完善,仍是一個不完整的應用。我會在合適的時機把源代碼放到 Github 上。(已經上傳源碼)

目前也已經在 Github 上建了相應的項目,同時也在上面更加詳細的總結了用到的第三方庫和相關功能的實現,你們能夠看看:

小秋魔盒 Github 地址github.com/OCNYang/QBo…

相關文章
相關標籤/搜索