设计Android应用程序架构的基本指南:MVP:第3部分(Dialog,ViewPager,and Adapters)

原文链接:https://blog.mindorks.com/essential-guide-for-designing-your-android-app-architecture-mvp-part-3-dialog-viewpager-and-7bdfab86aabb

目前是机翻,待修正。

我非常高兴我们在本系列文章的第1部分和第2部分中共同构建的MVP架构得到了很好的接受,并且项目存储库本身在发布后通过您的输入和拉取请求得到了完善。

在此开发过程中,许多人询问了此体系结构中基于对话框和基于适配器的视图的实现。所以,我正在写这篇文章来解释这些的占位。

如果您还没有阅读过早期的资源,那么我强烈建议您在阅读本文之前阅读这些资源。以下是资源的链接:

https://blog.mindorks.com/essential-guide-for-designing-your-android-app-architecture-mvp-part-1-74efaf1cda40

https://blog.mindorks.com/essential-guide-for-designing-your-android-app-architecture-mvp-part-2-b2ac6f3f9637

https://github.com/MindorksOpenSource/android-mvp-architecture

在本文中,我们将通过添加评级对话框和Feed活动来扩展体系结构。

美在于精准。

让我们先列出所有功能和用例:

视图图像
RateUs对话框
  1. 评级对话框将根据其应用体验显示5个开始供用户选择。
  2. 如果星星<5,那么我们修改对话框以显示反馈表格,询问改进。
  3. 如果stars = 5,那么我们将修改对话框以显示游戏商店评级选项,以便用户在那里添加评论。
  4. 评级信息将发送到应用程序的后端服务器。

注意:评级对话框是用户端不需要的,但从开发人员的角度来看非常有价值。因此,应用程序必须非常微妙才能执行此操作。

我建议在两个连续的编程评级对话框显示之间使用较大的间隔。

饲料活动
  1. 此活动将显示两个选项卡。
  2. 标签1:博客供稿卡。
  3. 标签2:OpenSource供稿卡。
博客Feed标签
  1. 它将从服务器API获取博客数据。
  2. 博客数据将在RecyclerView中填充为卡片。
OpenSource Feed标签
  1. 它将从服务器API获取存储库数据。
  2. 存储库数据将作为卡填充在RecyclerView中。

现在我们已经定义了我们的功能列表和用例,让我们勾勒出它们实现的架构。

我不会在这里添加整个类代码片段,因为它会因为长度而妨碍焦点。那么,我们将做的是,我们将在下一个选项卡中打开MVP项目并在它们之间切换。

草图:

我们将添加下面提到的基类

(见项目com.mindorks.framework.mvp.ui.base

  1. BaseDialog:它处理大部分锅炉板并为将构建它们的实际对话框添加通用功能。
  2. DialogMvpView:此接口定义用于与对话框交互的Presenter类的API。
  3. BaseViewHolder:它定义了RecyclerView绑定的框架,并在ViewHolder被回收时自动清除视图。
公共抽象类 BaseDialog 扩展 DialogFragment 实现 DialogMvpView

建筑说明。

所有相关的功能应该组合在一起我称之为封装功能,使它们彼此独立。

RateUs对话框
  1. 对话框访问通过抽屉可用。
  2. 该实现类似于我们在本文第2部分中看到的任何MVP视图组件

切换到浏览器上的下一个选项卡,并在项目仓库中彻底研究它的实现

对话框的注释

有时可能存在许多小对话框的情况,然后我们可以创建一个共同的mvpview,mvppresenter和presenter来在它们之间共享。

饲料:
  1. 此软件包包含此FeedPagerAdapter,博客软件包和开源软件包中的FeedActivity及其MVP组件。
  2. 博客:此软件包包含BlogFragment及其MVP组件和用于RecyclerView的BlogAdapter。
  3. opensource:这个包包含OpenSourceFragment及其MVP组件和OpenSourceAdapter for RecyclerView。
  4. FragmentStatePagerAdapter创建BlogFragment和OpenSourceFragment。

永远不要在任何适配器中实例化任何类,否则使用new运算符而不是通过模块作为依赖项提供它们。

OpenSourceAdapter和BlogAdapter是一个实现RecyclerView.Adapter<BaseViewHolder>在没有可用数据的情况下,将显示一个空视图,显示用户的强制重试,并在数据出现时被删除。

API数据和网络状态处理的分页留作练习。

现在通过项目来研究代码。重点关注分支以及如何在XML中以及以编程方式定义视图。

如果您发现任何困难或需要任何解释或改进,请加入mindorks社区并在那里提出问题:点击此处成为Mindorks Android社区的一部分并相互学习。


 

此外,让我们成为朋友的TwitterLinkedInGithub上Facebook的

编码器的摇滚

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值