闲谈针对JetPack搭配设计模式构建一个简易通用的MVVM

闲谈针对JetPack搭配设计模式构建一个简易通用的MVVM

在经过最近一段时间的工作经历加深了我对设计模式的一个重要性的理解。事情的起因在于,最近半年多换了转进一个新的项目组去维护迭代一个项目App。在这个项目中我发现了一个严重的问题,由于项目基本采用了MVVM的方式来作为解耦,但是由于前期不存在有明确的分工去构建一些基类的构建。导致一个很简单的基类Fragment、DialogFragment、Activity存在着四五种不同程度封装而且都没有写好。甚至连一些需要基于页面的生命周期的组件都没有管理好,譬如使用了华为的二维码扫码功能开放组件,每处使用的UI样式以及构建都大量使用了重复代码。导致研发效率低下的一个问题。面对这种问题我采用了在这里我给出我的一套思维方案:

论设计模式的重要性

使用代理模式解决统一显示LoadingDialog的问题

为什么说代理模式很重要。代理是具有一个可做可不做的思维模式。你可以这样设想。A、B产品都是能提供具有一定功能及作用。但是在于如果一个解决方案定型了使用A或者B的时候就会建立强绑定关系后续更换往往容易会出现大代价。为了解决产品迭代的,根据需求能够简单快捷的替换全局加载弹窗甚至可以某个页面自定义加载弹窗,统一使用代理方式去实现解耦。

实现
CommonLoadingProxyV1
«interface»
LoadingProxy
+showLoading(FragmentManager,tag)
+hideLoading()

论JetPack的重要性

JetPack作为Android新一代官方组件技术,其目的通过新一代的技术方案或者接口接口去解决以往的一些Android开发的痛点。接下来我会重点讲解我是如何利用这些去解决一些常见问题

动态请求权限

首先设想一下,如果App不进行一个动态权限申请,总是在当前页面启动时或者启动页面的时候就进行权限,往往容易存在一个弊端,闪退的bug。接下来请看如何闪退

启动页/当前页 权限成功要做的业务 权限失败要做的业务 app进入后台 用户or系统关闭权限 OnCreate时请求权限成功 请求权限失败 权限请求成功后因为一些不可控因素App进入后台 权限被回收 回到页面时大概率闪退 启动页/当前页 权限成功要做的业务 权限失败要做的业务 app进入后台 用户or系统关闭权限

那么针对现有项目容易出现这样的一个问题我是这样解决的

首先利用ActivityResultLauncher构建动态权限申请,并提供相应的成功以及失败的回调并且提供一个重试机制,期望图如下

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值