Android中的一個MVP重構項目
每日提供技術干貨的App
干貨數據源
應用中的所有干貨數據均來自干貨集中營。
干貨集中營是一個技術干貨共享平臺。每個工作日,網站都會分享一些技術干貨信息,包括Android、iOS、App等技術干貨,除此之外還有福利和休息視頻可供你享用。 如果你是移動開發者,這個App一定很適合你。當然,如果你是一個宅男,也許你會對每天的福利更感興趣。Enjoy it。
App設計
整個項目借鑒自 @drakeet 的妹紙。但是在原項目基礎上, 自己在代碼層面和UI層面上做了自己的修改。
效果圖
代碼設計
原項目使用 Retrofit+RxJava 的組合獲取網絡數據,再加上使用Lambda表達式,代碼已經變得很精簡,所以把獲取數據的代碼放在 Activity 中也不顯得混亂, 但是作為一個有追求的程序員,既然已經知道有 MVP 這種架構模式可以解決項目分層的問題, 那為什么不試著使用 MVP 去對代碼進行進一步的優化呢,所以整個項目使用了 MVP 架構,將所有的數據請求、業務邏輯都提取到 Presenter 層中。同時加入了Dagger依賴注入,極大地方便了程序的開發,且對測試也很有幫助 使用 MVP 后需要為每一個 Activity 編寫一個對應一個 Presenter(控制器)類,讓 Activity 擔當純粹的 View 角色, 這樣 Activity 就主要負責一些界面更新操作,具體的業務邏輯都交托給 Presenter 層處理,代碼結構因此也變得更加清晰。
依賴庫
參考資料
License
/* * * Copyright (C) 2015 Drakeet <drakeet.me@gmail.com> * Copyright (C) 2015 Xuyunqiang <1539140295@qq.com> * * Meizhi is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Meizhi is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Meizhi. If not, see <http://www.gnu.org/licenses/>. */
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!