RxAndroid + Retrofit + Databinding 之仿推酷 app 實戰系列 1

最近公司組織培訓,跟著外請老師學習了 RxAndroid + Retrofit + Databinding + MVVMAndroid 開發技術。在培訓之前,自己通過網絡對這些技術有過了解,感覺很好玩的樣子。經過培訓后進一步發現,使用這些技術的結合,寫起代碼來果然很爽。

老師在實戰部分,帶領我們制作一個仿《推酷》app 的項目。在項目中,使用了上述的技術,并涉及到代碼的封裝。 項目果然是學習技術的最佳場所,自己感覺收獲頗多。但怕時間長了會有些遺忘,因此,使用文章將項目構建的過程一一記錄下來。

推酷首頁
推酷首頁——側滑菜單

準備


既然是仿,那就相當于原型設計、界面等材料都有了,不過自己還是得分析一下,好在實際編碼之前相好項目的框架結構。

推酷首頁是分類新聞列表的展示頁面,頂部的工具欄是 Android 官方典型的 Toolbar 的結構,中間內容使用 ViewPager 顯示。

在屏幕左側向右拖動、或點擊 Toolbar 左邊的菜單按鈕,會彈出側滑菜單。根據側滑菜單的樣子看,應該使用了 Android 官方 meterial design 庫中的 NavigationView 控件。

反編譯


雖然有了界面顯示,但是還缺少切圖。當然,沒有美工會為你做這個事情。本來就是學習,那就 DIY 到底,反編譯[1]下吧。反編譯后發現,源碼竟然沒有混淆,簡直是極好的啦。從源碼的目錄結構中發現了以下東東:

  • 官方包—— support 庫使用了 designV4V7 包;
  • 圖片——圖片預覽 chrisbanes/PhotoView,圖片加載顯示 nostra13/Android-Universal-Image-Loader,圖片加載組件 fresco
  • 動畫——支持在低版本(API 11 以下)使用 Android 屬性動畫以及 3D 旋轉動畫的框架 JakeWharton/NineOldAndroids,徽章圖片庫 nekocode/Badge
  • HTTP——apache
  • html 解析——jsoup
  • ImageView——圓形 ImageViewvinc3m1/RoundedImageView
  • ListView——拖動排序庫 bauerca/drag-sort-listview,列表滑動時每一節的頭部一直停在列表頂部直到有同樣類型的節頭部到達列表頂部的庫 vinc3m1/RoundedImageView,左滑右滑庫 baoyongzhang/SwipeMenuListView
  • ExpandListView——MarkMjw/TreeView
  • GridView——為 GridView 控件添加頭部
  • 底部導航——模擬 design 庫的 Bottom Navigation 樣式的庫 Ashok-Varma/BottomNavigation
  • 對話框——meterial 風格的對話框庫 afollestad/material-dialogs
  • 進度顯示——Meterial 風格的 ProgressBarDreaminginCodeZH/MaterialProgressBar,光滑不確定進度的庫 castorflex/SmoothProgressBar,變形球加載控件 dodola/MetaballLoading,橫向水平線進度條 daimajia/NumberProgressBar
  • 提示信息——keyboardsurfer/Crouton
  • 菜單——動態圓形浮動按鈕庫 CircularFloatingActionMenu,可以反作用于滾動事件的類庫 makovkastar/FloatingActionButton
  • ViewPager 指示器——ogaclejapan/SmartTabLayout
  • 搜索——用 meterial design 風格實現的搜索功能庫 MiguelCatalan/MaterialSearchView
  • 滾動——用于觀察滾動事件和滾動 view 的庫 ksoichiro/Android-ObservableScrollView
  • 拍照——commonsguy/cwac-cam2
  • 效果——波紋效果 baoyongzhang/SwipeMenuListViewseekbar progressbar button 的波紋效果 aNNiMON/PaperStyleWidgets
  • 用戶引導——amlcurran/ShowcaseView
  • 統計分析——友盟
  • 社會化——Mob
  • 第三方應用相關——微信,魅族認證,新浪微博,
  • 適配——魅族 flyme 的反射類

太讓人吃驚了,各種類庫,各種類庫!!! 除了官方的幾個庫,其它的庫幾乎都來源于 GitHub。可真是:用好 GitHub,走遍天下都不怕!一個 8Mapp 就使用了這么多的庫,想一想我近 20Mapp,再想想使用的庫,真的慚愧呀!

通過反編譯,也可以獲取圖片、字符串、動畫等資源。好多目錄,看來推酷為了做適配,也是蠻拼的。

創建項目


這步沒啥好說的,按步就班的來就可以了。唯一要注意的是:支持的最小 SDK 版本選擇 API 16,這是因為 GitHub 上有些庫對此有要求。

下期預告


今天大概看了一下原版 App 的界面,對它的結構進行了簡單的分析,再就是準備開發用到的資源和創建項目了。現在萬事具備,只欠東風。這里的東風指的當然是時間。明天如果有時間,就先把項目的框架,即首頁的側滑菜單、頂部 Toolbar、和內容區域的 ViewPager 搞定吧。


  1. 注:mac 下的反編譯教程可以參考 http://www.lxweimin.com/p/b3bb4da64dc7 這篇博文。講得灰常好,相關的工具下載也都能找到。 ?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,001評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,786評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,986評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,204評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,964評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,354評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,410評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,554評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,106評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,918評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,093評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,648評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,342評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,755評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,009評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,839評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,107評論 2 375

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,681評論 25 708
  • 內容抽屜菜單ListViewWebViewSwitchButton按鈕點贊按鈕進度條TabLayout圖標下拉刷新...
    皇小弟閱讀 46,856評論 22 665
  • 歸鳥在晚云里劃過, 游魚在暮色里低語; 你嘴角上揚的弧度印在葉上, 像夜色下月還未盈的清明。 森林溫暖得橙了, 感...
    陌九閱讀 271評論 11 7
  • 回到家,我洗完衣服,舒展地躺在床上,夜風吹來,衣架上的衣服飄蕩著,洗衣液的香氣飄散開來。看著媽媽的衣服旁邊,挨著自...
    瑤幺兒閱讀 204評論 0 0
  • 學號11-Josieqiu 前幾天小伙伴小逗寫了一篇,《別再把所有問題歸咎于你的原生家庭》,如果不是看了這篇文章,...
    JosieQiu閱讀 320評論 2 2