我的第一版WanAndroid發佈了

點擊上方的終端研發部右上角選擇設爲星標

每日早9點半,技術文章準時送上

公衆號後臺回覆學習”,獲取作者獨家祕製精品資料

 作者:zskingking
鏈接:
https://www.jianshu.com/p/60eefed7870f

1.背景

其實在我入行的時候就一直想做一款自己平時能把玩的App,之前也想過要不要做一個本地的,但是侷限性太大激不起來自己的動力,聯網的自己又不會寫後端所以就一直拖着。年前Github上瞎逛發現了一個好玩的App WanAndroid,仔細一瞅提供的還有 API,再仔細一瞅原來是鴻洋大大發起的甚是激動,於是拍了拍滿是灰塵的小目標,歷時半個月(也可能是20天)有了現在的第一版WanAndroid。

主色調目前爲紅色,後續的版本會加入切換主題功能。

文章底部有APK二維碼以及github地址

2.效果圖

整個App基於Material Design風格,超級簡潔的界面極具沉浸式的體驗。


3.功能

首頁包含五個Tab

  • 首頁: 可預覽最新最熱的技術文章,對喜歡的文章可做收藏操作。

  • 項目: 包含完整原生項目、跨平臺項目,也有動畫、網絡等Demo。

  • 廣場: 目前包含兩個模塊,分別是體系、導航,可快速定位知識點。

  • 公衆號: 可實時查看Android領域知名度較高的博主公衆號。

  • 我的: 可查看排明、收藏、我的文章以及發佈文章。

具體功能可下載Apk或者clone項目自我體驗,對於一個技術人來說我覺得還是挺實用的。

4應用技術

4.1語言

整個App全部基於Kotlin開發

4.2 架構模式 MVP

Model

作者網絡請求使用的是Retrofit+RxJava,再此基礎下作者又封裝了HttpDefaultObserver,
可根據服務器返回數據的結構統一脫殼、解析以及錯誤判斷,可作爲所有界面的Model層,所以網絡請求方面沒有單獨去寫一個具體的Model出來。

View

定義了兩個基類BaseActivity、BaseFragment以及LazyFragment(繼承自BaseFragment),統一處理跳轉邏輯
以及通過Lifecycle與Presenter進行綁定,並且施加統一沉浸式效果。

Presenter

所有Presenter都繼承自BasePresenter,生命週期與View層同步,在基類中統一管理RxJava生命週期。

其實最初是想直接用jetpack開發,但作者還是想按照自己的想法搭建一套MVP嗎,但是jetpack版以及Flutter版WanAndroid後續都會逐個推出,敬請期待。

4.3用到的第三方庫如下

  • rxjava

  • retrofit(對網絡層做了二次封裝,將服務端數據脫殼,統一處理錯誤信息)

  • glide

  • SmartRefreshLayout

  • eventbus

  • avi:library

  • BaseRecyclerViewAdapterHelper

  • greendao

  • MagicIndicator

  • easypermissions

  • LabelsView

5.總結

麻雀雖小,五臟俱全,雖然項目很簡單,但內部代碼以及整個架構我覺得還是具備參考價值的,附上github,讓我們共同進步。

也可直接掃碼下載apk。apk目前託管在碼雲上,所以掃描二維碼可能需要登錄。

最後再次感謝鴻洋大大提供的API,以及阿里巴巴矢量圖&花瓣網提供的圖標和UI設計。

閱讀更多

爲什麼代碼規範要求SQL語句不要過多的join?

Nginx爲什麼快到根本停不下來?

4月的技術面試,如何準備?我從面試官給你說

面經:通過五輪面試斬獲offer的阿里實習生親述!

五年老android,我爲什麼要轉後端?

面試官:你的SQL一般有幾個join?

通過五輪阿里面試,阿里實習生親述面試經歷!

相信自己,沒有做不到的,只有想不到的

在這裏獲得的不僅僅是技術!

喜歡就給個“在看

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章