作为一个功能复杂的应用,无法避免地需要支持众多路径的回流,比如从Launcher、从Push通知、从端外H5、从合作第三方App以及从系统资源分享组件等。 我们知道,不同的回流路径会通过App的不同入口,带着不同的参数打开应用。而应用需要根据不同的回流路径,及其参数要求,跳转到目标页面,并完成完成相应的操作。在跳转到目标页面时,回流过程往往会被启动页、登入页、新手引导、升级、主页等条件检测和页面中断,导致无法顺利地完成目标页面的跳转和相应的操作。 整个回流过程如果不统一设计,代码会因为涉及的回流入口多,回流操作多,回流中断多,以及业务需求地不断增加和变更,变得复杂且高耦合。
在我们的项目中,每个版本发布之后,我们会创建一个opt分支,用于修复线上崩溃以及业务逻辑BUG。 开发过程中,一个APP可能同时并行开发多个需求,每个需求上线的预期时间可能会有不同。但是这个opt分支我们会保证在下个版本一定上线,QA同学也会在每个版本发布前预留测试opt分支的时间。
在项目开发中,弹幕是一种非常流行的效果,它能够在屏幕上动态显示大量的文本信息,如评论、消息等。开始调研了一些知名的三方弹幕库,功能很强大,但是却不适合,因为项目中只需要一个简单的弹幕效果即可,这些库有点过重了,甚至有些库还要集成so,因为需要严格要求包体积大小,所以更难以集成了。之前做过图片瀑布流,突然想到能不能用类似的方案实现一个简单的弹幕效果。本文将介绍一种使用RecyclerView和StaggeredGridLayoutManager实现简单弹幕效果的方法。通过这种方式,可以实现弹幕的无限滚动和多行显示。
在项目中,我们常常遇到需要动态调整 ViewPager 的高度,以适应其内容大小的需求。默认情况下,ViewPager 的高度是固定的,无法根据每个页面的内容高度进行调整。这会导致在内容高度不一致时,出现不必要的空白区域或者内容被裁剪的情况。为了解决这个问题,我们设计了一个 AutoHeightViewPager,能够根据当前显示页面的内容高度动态调整自身的高度,保证内容完整且没有多余的空白。
Android 官方的最新架构中引入了 Domain (网域层 or 领域层),Domain Layer 由一个个 UseCase 组成。但是由于团队套用官方新架构后没有正确地定义 UseCase,无法发挥 Domain Layer 应有的架构价值。