軟件簡介
One 一個希太, 韓寒主編的閱讀類應(yīng)用的第三方客戶端,每天提供一篇文章一幅圖片一段話等酝蜒,這是本人自學(xué)安卓的一個練手項目誊辉,如果喜歡請給個star鼓勵一下,謝謝-
主要技術(shù)
后臺數(shù)據(jù):php解析html返回json
網(wǎng)絡(luò)請求:OKhttp亡脑、retrofit
圖片加載:picasso
架構(gòu)思想:MVP
本地存儲:sqlite堕澄,Easydao(自寫的一個簡單的orm庫)
源碼:https://github.com/dzysghr/DOne
功能界面
主要架構(gòu)
關(guān)于MVP
關(guān)于mvp,我想網(wǎng)上已經(jīng)有大量的文章去介紹什么是mvp和mvp的主要思想霉咨。俗話說的好蛙紫,道理我都懂,但是實踐起來卻不一定能行途戒。網(wǎng)上的文章 關(guān)于mvp的核心思想是一樣的坑傅,但是具體的實現(xiàn)又是五花八門。下面說一下做這個app時的幾點困惑
- view和presenter 應(yīng)該怎么去綁定
- view 和presenter一定要一對一關(guān)系嗎
- 同一個界面有兩種邏輯喷斋,Presenter怎么去實現(xiàn)唁毒,是定義兩個presenter,還是實現(xiàn)一個集所有功能的presenter
- adapter和VHolder屬于哪一層
- p的生命周期
- 三個層都要基于接口來實現(xiàn)嗎
關(guān)于上面的幾點星爪,最近看到這一篇很棒的文章浆西,幾乎解決了我所有的疑惑
Android MVP 詳解(上)
Android MVP 詳解(下)
在做這個項目的過程中,我花大量時間去思考代碼應(yīng)該怎么寫才是真正的mvp顽腾,怎樣寫才是可維護(hù)性高的近零、優(yōu)雅代碼,最后浪費了大量時間卻一個功能都沒有實現(xiàn)崔泵,現(xiàn)在看來真是本末倒置秒赤。我覺得無論是任何思想也好,設(shè)計模式也好都是用來解決問題的憎瘸,沒有遇到問題的時候(尤其是一些小項目),就沒必要過分去追求所謂的模式陈瘦。當(dāng)我們沒有豐富的編碼和架構(gòu)經(jīng)驗時幌甘,就不應(yīng)該過度地去做抽象,過早地去做重構(gòu),明明幾行代碼的事情卻要分成幾個類,最后寫出來的所謂優(yōu)雅的代碼除了麻煩自己并沒有太大用處锅风,這是我寫這個app過程中的一點想法酥诽。所以在Done這個項目中,并不是什么最佳的mvp實踐皱埠,很多東西都是簡單地直接引用而沒有去做抽象肮帐。
如果有哪些地方寫得不好,歡迎和我一起討論
最后補充一下谷歌親爹的mvp實踐
https://github.com/googlesamples/android-architecture