todo-mvp

作者: 红酥手黄藤酒丶 | 来源:发表于2018-12-19 23:36 被阅读0次

todo-mvp

当前版本的app叫做 todo-mvp,为该 github 项目中的其他示例提供了一个基础。样本旨在:

  • 在不适应任何框架的情况下,提供一个基础的 Model-View-Presenter(MVP)架构
  • 作为比较和对比该 github 项目中其他示例的参考

提示: 这个 github 项目中所有的分支均使用下面的命名约定,来区分 View类 和 MVP 中的 视图层

  • Android View 指的是 android.view.View
  • 接受 MVP 中的 presenter 发出的命令的 view 就是 视图层

你需要做什么

在开始学习这个示例之前,先熟悉下面的条目可能会对你有些帮助:

这个 todo-mvp 示例使用下面的依赖:

设计应用程序

所有的 Android App都会包含与 simple to-do 同样的常用功能,这个 app 由下面四个 UI 组成:

  • Tasks:用来管理一个 tasks 列表
  • TaskDetail:用来查看或删除 task
  • AddEditTask:用来创建或编辑 task
  • StatisTics:展示与 tasks 相关的统计信息

在此版本的应用程序,以及基于它的其他版本中,每个 UI 都使用以下的类和接口实现:

  • 一个定义了 viewpresenter 之间的连接的 contract
  • 一个用于创建 fragmentspresenterActivity
  • 一个实现了 view 接口的 Fragment
  • 在相应的 contract 中实现 presenter 接口的 presenter

presenter 通常托管于特定功能相关联的业务逻辑,而与其绑定的 view 去掌控 Android UI 的工作。view 几乎不含有逻辑过程,它根据 presenter 的命令操作 UI,监听用户的行为动作然后把这些行为动作传递给 presenter。

实现应用程序

每个版本的应用程序都使用不同的实现方式来实现相同的功能,以此来展示不同的架构之间的区别。例如,此版本使用以下方法来解决常见的实现问题:

  • 此例使用 product flavor 在编译其替换 modules,为手动或自动测试提供假数据
  • 此版本使用回调来处理异步任务
  • 使用 Room 将数据存储在本地 SQLite 数据库中

注意下图,此版本的应用程序使用 fragment,这有两个原因:

  • 使用 activitiesfragments 可以更好的解耦、从而更好的实现 MVP。在这个应用程序版本中,Activity 是总控制器,用来创建和连接 views 与 presenters。
  • 使用 fragments 支持具有多个视图的平板电脑或UI视图
image

此版本的app包含了一些涉及到 presenters、repositories、和 data source 的单元测试。此例也包含 UI 测试(依靠假数据),并通过依赖注入来提供虚假模块。了解更多使用依赖注入的快速测试,查看 Leveraging product flavors in Android Studio for hermetic testing

关于程序的维护

此例中包含了 类 和 接口,如 presenters 和 contracts,这就使得代码量相较于传统的(不使用架构的)项目有了一定的增长。

下表总结了用于实现此版本应用程序的代码量。您可以将其用作与此项目中每个其他样本提供的类似表进行比较的基础。

Language Number of files Blank lines Comment lines Lines of code
Java 51 1216 1685 3901
XML 34 97 338 608
Total 85 1313 2023 4509

相关文章

  • Google官方android架构todo-mvp(译)

    todo-mvp架构项目地址 todo-mvp 这个app版本被称作todo-mvp,给这个工程的其他示例提供一个...

  • GOOGLE TODO-MVP 学习笔记

    GOOGLE TODO-MVP 学习笔记 背景(可忽略):《GOOGLE TODO-MVP 学习笔记》这篇文章主要...

  • GoogleSamples MVP 中文文档 README

    todo-mvp 这个版本的应用叫做todo-mvp , 并为项目中的其他实例提供依据。这个实例旨在: 在不使用任...

  • todo-mvp

    todo-mvp 当前版本的app叫做 todo-mvp,为该 github 项目中的其他示例提供了一个基础。样本...

  • TODO-MVP

    由上图可知,项目分层1个app目录,4个测试目录app目录分为: 4个测试目录分别是:androidTest: U...

  • 002.MVP

    Android Architecture Blueprints 学习之 TODO-MVP(一) - 推酷 谷歌官方...

  • androd-architecture(架构)

    项目地址 googlesamples/android-architecture todo-MVP 该版本的应用程...

  • MVP学习

    本文主要学习google开源代码TODO-MVP 地址 https://github.com/googlesamp...

  • android-architecture之todo-mvp源码分

    博文出处:android-architecture之todo-mvp源码分析,欢迎大家关注我的博客,谢谢! And...

  • Google官方MVP示例之TODO-MVP

    Google官方MVP示例之TODO-MVP 欢迎转载,转载请注明源地址:http://blog.csdn.net...

网友评论

    本文标题:todo-mvp

    本文链接:https://www.haomeiwen.com/subject/sofekqtx.html