软件简介
One 一个, 韩寒主编的阅读类应用的第三方客户端,每天提供一篇文章一幅图片一段话等,这是本人自学安卓的一个练手项目,如果喜欢请给个star鼓励一下,谢谢-
主要技术
后台数据:php解析html返回json
网络请求:OKhttp、retrofit
图片加载:picasso
架构思想:MVP
本地存储:sqlite,Easydao(自写的一个简单的orm库)
源码:https://github.com/dzysghr/DOne
功能界面
主要架构
关于MVP
关于mvp,我想网上已经有大量的文章去介绍什么是mvp和mvp的主要思想。俗话说的好,道理我都懂,但是实践起来却不一定能行。网上的文章 关于mvp的核心思想是一样的,但是具体的实现又是五花八门。下面说一下做这个app时的几点困惑
- view和presenter 应该怎么去绑定
- view 和presenter一定要一对一关系吗
- 同一个界面有两种逻辑,Presenter怎么去实现,是定义两个presenter,还是实现一个集所有功能的presenter
- adapter和VHolder属于哪一层
- p的生命周期
- 三个层都要基于接口来实现吗
关于上面的几点,最近看到这一篇很棒的文章,几乎解决了我所有的疑惑
Android MVP 详解(上)
Android MVP 详解(下)
在做这个项目的过程中,我花大量时间去思考代码应该怎么写才是真正的mvp,怎样写才是可维护性高的、优雅代码,最后浪费了大量时间却一个功能都没有实现,现在看来真是本末倒置。我觉得无论是任何思想也好,设计模式也好都是用来解决问题的,没有遇到问题的时候(尤其是一些小项目),就没必要过分去追求所谓的模式。当我们没有丰富的编码和架构经验时,就不应该过度地去做抽象,过早地去做重构,明明几行代码的事情却要分成几个类,最后写出来的所谓优雅的代码除了麻烦自己并没有太大用处,这是我写这个app过程中的一点想法。所以在Done这个项目中,并不是什么最佳的mvp实践,很多东西都是简单地直接引用而没有去做抽象。
如果有哪些地方写得不好,欢迎和我一起讨论
最后补充一下谷歌亲爹的mvp实践
https://github.com/googlesamples/android-architecture