QMUI Android 该凉凉了

简介: 在微信听书最新的版本,累死累活的开发中,我还是把 Jetpack Compose 引入了工程中, 在新的原生界面开发中,用 Compose 来写 UI 了, 贼特么舒服,所以说, QMUI Android 要么重做出一个 Compose 版本,要么就该删库跑路了。

在微信听书最新的版本,累死累活的开发中,我还是把 Jetpack Compose 引入了工程中, 在新的原生界面开发中,用 Compose 来写 UI 了, 贼特么舒服,所以说, QMUI Android 要么重做出一个 Compose 版本,要么就该删库跑路了。


QMUI 一般都是新应用引用得多一点,因为是采用主题配置的方式来使用整个各种组件的,所以很多成熟的应用引用是很困难的,有时候配置都走不通,当前,其实可以用一些注入编译插件的方式来避免这些问题,不过一直以来都是只管挖坑不管埋,坑已经足够多了。 也是时候弃坑挖个新的了。 所以新应用不要引入 QMUI 了, 怪怪的玩 Compose 吧。


在升级 Compose 时,遇到最大的障碍就是 gradle 升级 7.0 带来的问题了, 首先就是 tinker 插件跑不过,其次 AndResGuard 插件跑不过, 官方也没更新到 7.0, 所以就只能是 clone 一份源码,哪里编译不过改哪里,让它最终跑起来了,然后就开开心心的写那些注定会被删除的代码了。不得不说,国内的移动端开发, 虽然好像什么都成熟了,没有新的东西做了,实际上大多数人在业务的细节中走不出来,而剩下的人则是都想着做出点虚无而又伟大的东西,结果最后保持框架和技术与时代同步都做不到, 毕竟这些好像对业务眼前的需求没啥帮助,对职场晋升也没啥帮助。


使用 Compose 是一件很节约时间的事情,毕竟现在产品都喜欢把所有的东西装载在同一个界面,期望用户永远能第一时间看到所有他能看到或者产品期望用户看到的。 这就导致一个界面的状态和布局被搞得鬼复杂,开发天天在那儿加班调 UI。 使用 Compose 后这种状态管理会容易很多, 就可以不用一会儿显示这几个 View, 一会儿显示那几个 View。 管理好 ViewModel, 剩下的就可以一口气按产品逻辑写完整个 UI 了, 这写 React、 Flutter 的人早就体验过这种感觉了, Android 原生也是时候体验了。 iOS 好像要等等, 最近写 Recos, SwiftUI 把我们的 iOS 开发小哥气得弃坑了(原本只是想站在巨人的肩上干点伟大的事情,结果这个巨人的肩不是那么平)。


QMUI 终究是做了这么久了, 也有一些精华可以保留、一些坑点可以避免。 之后开发 Compose 版本时,我觉得需要考虑以下几个点:


1.Theme 主题配置的方式,虽然一劳永逸,但是侵入性比较大,是个糟糕的方式。 而且主题多了,管理起来不舒服

2.除了一些独立的功能模块,app 只使用 scheme 跳转, 是一个非常好的方式,这个可以开发出 Compose 友好的版本,值得 app 架构设计时引入

3.SkinManager 可以保留, 系统只提供了跟随主题的夜间模式切换, 不过国内更多的会提供设置项,而且像阅读器类应用,还不止两个。

4.需要考虑手势返回控件是否需要保留, 毕竟android 高版本由于系统左右的返回手势,我们自定义的类iOS 系统的手势返回并没有太多的触发点了。

5.全 kotlin 化, 包括构建脚本也应该用 kts。

6.QMUI 沉淀了很多浮层、 Dialog、沉浸式的使用技巧, 这些是值得保留的

7.读书和听书沉淀了很多键盘输入(输入 + 表情面板管理)的使用技巧, 这些可以提取出来

8.应该开发一个 Compose 版本的图片管理、选择、浏览库,这应该是个非常好的练手项目,但也没看到有学习 Compose 的同学来写这个

9.Fragment 是否在 Compose 的环境下值得保留?

10.除了一些工具类, QMUI 没有更多的值得保留的东西了, 改入土了。 不想考虑新旧版本的兼容性了,最多把现在的 QMUI 打包成一个 qmui-old 库, 让使用人员可以新旧版本一起用。 要想升级的话,还是心一横,加班加点把整个 App 的 UI 全重写了为好, 卷到底。


挖一个大坑,如果填不好,QMUI Android 就真该凉凉了。

目录
相关文章
|
5月前
|
设计模式 前端开发 网络协议
Android 开发网易面试凉凉经,面试官:基础不牢,彻底帮你搞懂
Android 开发网易面试凉凉经,面试官:基础不牢,彻底帮你搞懂
|
3天前
|
XML 存储 Java
探索安卓开发之旅:从基础到进阶
【9月更文挑战第37天】安卓开发,一个充满无限可能的领域。它不仅关乎技术的深度与广度,更关乎开发者的成长与突破。本文将带你走进安卓开发的世界,从基础知识的学习到进阶技巧的掌握,一起感受编程的魅力与乐趣。
|
13天前
|
IDE Android开发 iOS开发
探索Android与iOS开发的差异:平台选择对项目成功的影响
【9月更文挑战第27天】在移动应用开发的世界中,Android和iOS是两个主要的操作系统平台。每个系统都有其独特的开发环境、工具和用户群体。本文将深入探讨这两个平台的关键差异点,并分析这些差异如何影响应用的性能、用户体验和最终的市场表现。通过对比分析,我们将揭示选择正确的开发平台对于确保项目成功的重要作用。
|
26天前
|
Android开发 开发者 Kotlin
探索安卓开发中的新特性
【9月更文挑战第14天】本文将引导你深入理解安卓开发领域的一些最新特性,并为你提供实用的代码示例。无论你是初学者还是经验丰富的开发者,这篇文章都会给你带来新的启示和灵感。让我们一起探索吧!
|
3天前
|
安全 Java API
Java 泛型在安卓开发中的应用
在Android开发中,Java泛型广泛应用于集合类、自定义泛型类/方法、数据绑定、适配器及网络请求等场景,有助于实现类型安全、代码复用和提高可读性。例如,结合`ArrayList`使用泛型可避免类型转换错误;自定义泛型类如`ApiResponse<T>`可处理不同类型API响应;RecyclerView适配器利用泛型支持多种视图数据;Retrofit结合泛型定义响应模型,明确数据类型。然而,需注意类型擦除导致的信息丢失问题。合理使用泛型能显著提升代码质量和应用健壮性。
|
2天前
|
设计模式 前端开发 数据库
探索安卓开发之旅——从初学者到专家
在数字时代的浪潮中,安卓应用开发成为了众多开发者的热门选择。本篇文章旨在为初入安卓开发的新手提供一个清晰的学习路径,从基础概念到高级技巧,逐步引导读者掌握安卓开发的核心知识。我们将通过实际代码示例,展示如何从零开始构建一个安卓应用,并介绍一些提升开发效率的工具和库。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你打开一扇通往安卓开发世界的大门。
|
10天前
|
开发框架 移动开发 Android开发
安卓与iOS开发中的跨平台解决方案:Flutter入门
【9月更文挑战第30天】在移动应用开发的广阔舞台上,安卓和iOS两大操作系统各自占据半壁江山。开发者们常常面临着选择:是专注于单一平台深耕细作,还是寻找一种能够横跨两大系统的开发方案?Flutter,作为一种新兴的跨平台UI工具包,正以其现代、响应式的特点赢得开发者的青睐。本文将带你一探究竟,从Flutter的基础概念到实战应用,深入浅出地介绍这一技术的魅力所在。
37 7
|
13天前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台解决方案
【9月更文挑战第27天】在移动应用开发的广阔天地中,安卓和iOS两大操作系统如同双子星座般耀眼。开发者们在这两大平台上追逐着创新的梦想,却也面临着选择的难题。如何在保持高效的同时,实现跨平台的开发?本文将带你探索跨平台开发的魅力所在,揭示其背后的技术原理,并通过实际案例展示其应用场景。无论你是安卓的忠实拥趸,还是iOS的狂热粉丝,这篇文章都将为你打开一扇通往跨平台开发新世界的大门。
|
10天前
|
缓存 Java Linux
探索安卓开发:从新手到专家的旅程
【9月更文挑战第30天】在这篇文章中,我们将一起踏上一段激动人心的旅程,探索安卓开发的广阔世界。无论你是刚入门的新手,还是希望提升技能的开发者,本文都将为你提供宝贵的知识和指导。我们将深入探讨安卓开发的基础知识、关键概念、实用工具和最佳实践,帮助你在安卓开发领域取得更大的成功。让我们一起开启这段精彩的旅程吧!
|
11天前
|
监控 安全 Java
Kotlin 在公司上网监控中的安卓开发应用
在数字化办公环境中,公司对员工上网行为的监控日益重要。Kotlin 作为一种基于 JVM 的编程语言,具备简洁、安全、高效的特性,已成为安卓开发的首选语言之一。通过网络请求拦截,Kotlin 可实现网址监控、访问时间记录等功能,满足公司上网监控需求。其简洁性有助于快速构建强大的监控应用,并便于后续维护与扩展。因此,Kotlin 在安卓上网监控应用开发中展现出广阔前景。
10 1