jetpack
文章平均质量分 90
普通网友
这个作者很懒,什么都没留下…
展开
-
今天知道LiveData的ktx是真的香
其实,LiveData 要写,还是有很多知识点可以写的,但是这里只是进行了简单的逻辑的概述吧。我们通过属性变量的创建时机去进行接口请求或者缓存请求,那么在一定程度上是要比调用initData 更快的,而且这种逻辑非常清晰,我们将首次和刷新从逻辑层分离出来,这种代码看起来还是非常简洁的。在这个逻辑上,我们可以发现compose 的中的界面数据,通过这种方式的刷新,反而更加的贴合吧。当然通过Flow,或者channel 等方式 转LiveData 也是一种思路,但是在简单的界面请求中,感觉没有必要。原创 2023-11-11 20:41:32 · 191 阅读 · 0 评论 -
从0开始搭建一个APP:compose搬砖的一天
OK,先水到这,主要是阐述了一些第一次开发可能遇到的简单问题,也没有啥知识点,水一下,也挺好。再提一嘴,compose和Kotlin的学习是差不多的,要把格局打开,就是想象力得打开,打开了就会发现,很多东西,他其实已经存在了。原创 2023-11-02 14:32:21 · 280 阅读 · 0 评论 -
Jetpack Compose | State状态管理及界面刷新
remember 在重组后保持状态,但不会在配置更改后保持状态;如果想在配置更改后保持状态,可以使用 rememberSaveable 代替;rememberSaveable 会自动保存可保存在 Bundle 中的任何值;如果不支持Bundle存储,可以将对象声明为 @Parcelize 可序列化,如果不能序列化,还可以将其传入自定义 Saver 对象。//1、使用@Parcelize注解//记得引入 apply plugin: 'kotlin-parcelize'插件@Parcelize。原创 2023-10-30 16:09:16 · 558 阅读 · 0 评论 -
解决LiveData数据倒灌的新思路
对于LiveData“数据倒灌”的问题,我相信很多人已经都了解了,这里提一下。所谓的“数据倒灌”:其实是类似粘性广播那样,当新的观察者开始注册观察时,会把上次发的最后一次的历史数据传递给当前注册的观察者。比如在在下面的例子代码中:方法发送了一次数据,当下面调用LiveData的方法时,会立即打印,这就是上面说的“数据倒灌”现象。原因其实也很简单,其实就是 内部有一个字段,记录版本,其初始的 是-1,当我们调用了其 或者 ,其 会;对于每一个观察者的封装 ,其初始 也为,也就是说,每一个新注册的观察原创 2023-09-26 18:43:29 · 312 阅读 · 0 评论 -
继续深挖,Jetpack Compose的State快照系统
Snapshot state(快照状态)是指可以被记录并观察其变化的隔离状态。当我们调用像mutableStateOf、mutableStateListOf、mutableStateMapOf、derivedStateOf、produceState、collectAsState等函数时,我们所得到的状态就是快照状态。所有这些函数都返回某种类型的状态,开发人员经常称其为快照状态。原创 2023-08-26 21:21:00 · 297 阅读 · 0 评论 -
为什么要使用依赖注入?直接new对象不香吗?为什么要把简单的问题复杂化?
总结为什么要使用Hilt。偷懒;自动管理,多对象的自动注入,万一有修改不需要到尸山中到处趴。单例;让对象拥有生命周期,无需我们自己手动单例创建,然后去手动注销。解耦;不需要到处引入我一些不需要的对象,特别是组件化的项目,另一个组件只管注入,在我的组件中我只管引用。我觉得这是我使用Hilt最吸引我的三个点,所以说目前2022年了,依赖注入我推荐Hilt。原创 2023-08-25 14:20:21 · 365 阅读 · 0 评论 -
深入理解与运用Android Jetpack Lifecycle
Android Jetpack 是 Google 推出的一套强大且灵活的库集合,旨在帮助 Android 开发者构建高质量、稳定且易于维护的应用程序。其中最重要的组件之一是 Lifecycle,它提供了一种便捷的方式来管理 Android 应用程序组件的生命周期,使得开发者能够更加专注于应用逻辑的实现而不用过多关心生命周期管理。原创 2023-07-31 14:42:47 · 231 阅读 · 0 评论 -
解決JetpackCompose 编译通过但是运行报错的问题
……原创 2023-07-22 21:14:23 · 258 阅读 · 0 评论 -
从一个bug开始,理解Fragment和ViewPager2的状态恢复流程
在使用Fragment和ViewPager2时遇到了一个奇怪的bug,于是顺藤摸瓜学习了一下Fragment和View的状态保存恢复流程,解决方法在最后面首先看一下崩溃调用栈。原创 2023-07-12 14:23:49 · 1486 阅读 · 0 评论 -
细数那些Compose新手容易犯的错误
笔者作为一个日常Jetpack Compose开发者,对Compose的理解也在逐渐加深中,最近回顾当初学习和实践的过程中,犯了不少错误和踩了很多坑,本篇文章作为小总结分享给大家,同时文章会持续更新,也欢迎评论区或者私信给笔者投稿,谈谈你使用Compose过程中踩过的那些坑。原创 2023-07-08 20:51:17 · 449 阅读 · 0 评论 -
设计图转Compose代码,Relay帮你轻松搞定
相信很多人看到本次分享分题目,第一反应都和我一样:Relay是什么?有什么用?和Compose有什么关系?不要着急,看完这篇文章,这些你都会了解。总的来看,Relay是一个好工具,但不是一个那么好的工具。Relay 可以根据UI图生成Compose 代码,包括添加参数、点击事件等Relay 当前不支持支持阴影、文字属性、图层旋转等,并且仅支持Google fonts字体,要求较高时无法满足生成的Compose代码边距比Figma要略大。原创 2023-07-03 15:11:05 · 339 阅读 · 0 评论 -
微信项目IO优化:Jetpack DataStore 与MMKV实现高效持久化
所以MMKV基本上可以秒杀市面上所有的存储框架了。做IO优化是不错的选择。原创 2023-06-29 21:34:58 · 204 阅读 · 0 评论 -
Jetpack Compose 不止是一个UI框架~
Jetpack Compose是用于构建原生Android UI的现代工具包。Jetpack Compose使用更少的代码,强大的工具和直观的Kotlin API,简化并加速了Android上的UI开发。这是Android Developers 官网对它的描述。本文不是教你Jetpack Compose 的一些基本使用方法,而是为啥我们需要Jetpack Compose 的一些简洁,让我们对Jetpack Compose 有更深层次的了解。原创 2023-05-05 15:59:39 · 1311 阅读 · 0 评论 -
一段凄惨Android 面试经历分享,败在了项目架构原理上……
这个问题相信很多面试者都遇到过,结果说明Jetpack和MVVM模式并没有到妇孺皆知的境地。不过也好,这么一个简单的问题就可以很容易区分出面试者是否对Android开发有热情。接下来我们谈谈为什么面试过程为什么爱问Jetpack和MVVM模式。原创 2023-04-27 14:20:46 · 450 阅读 · 0 评论 -
Android 应用架构指南 -- 三种架构模式简介(MVC、MVP、MVVM)
遵循摩尔定律,手机终端随着每年的更新换代,其性能也飞速增长。依附于此的 Android 应用规模也愈发复杂。截止 2023 年 4 月,最新版本 8.0.32 微信 apk 大小为 238MB,而对比 2011 年微信 1.0 版本 apk 包大小仅为 457KB,短短 12 年增长了533倍。随着应用规模增大,功能扩展困难、测试规模大及并行开发难等问题愈发突出。为了从根本上解决这些问题,就需要对应用进行重构,此时应用架构设计就显得尤为重要。程序代码和资源越来越多,代码耦合度高,扩展、维护及测试困难。原创 2023-04-14 14:53:24 · 239 阅读 · 0 评论 -
一起看 I/O | Jetpack Compose 中的新特性
转载地址:https://mp.weixin.qq.com/s/jTEXk_58KxMUgOL33VOn4wJetpack Compose 1.0 正式版已经发布快一年的时间了,我们看到社区正以极大的热情采纳和使用 Compose: Kotlin 语法的简洁性以及使开发界面变得更快速、更简单的声明式开发方式得到了广大开发者们的赞赏。Compose 在社区中的反响我们看到许多公司已经在大规模采纳 Compose 为其应用开发最新、最具创造性的功能。例.原创 2022-05-19 13:37:45 · 324 阅读 · 0 评论 -
让你易上手的Jetpack Compose教程:帮你写出漂亮的小组件-Jetpack Glance
作者:HyejeanMOON转载地址:https://juejin.cn/post/7098975953199726606因为在iOS14中推出的小组件的功能,让大家重新开始关注起小组件了。虽然安卓是很久之前就有了小组件的功能,但是因为它的不美观和不实用,以及对开发者也不够友好,逐渐变成为废弃的状态。直到Android12,再一次更新了小组件的的相关功能,并且为了减少开发者的负担而推出了Jetpack Glance库。该库是基于Compose,是开发者利用Compose的命令快速上手进而减少开发成.原创 2022-05-18 22:02:29 · 680 阅读 · 0 评论 -
Android Jetpack-ViewModel
一、概述为什么需要ViewModel或者说ViewModel的优势是什么?如果Activity或者Fragment销毁或者重建,存储在其中的数据会丢失,对于简单的数据比如Activity可以使用onSaveInstanceState()方法来从onCreate()中恢复数据,但这个方法只适合可以序列化再反序列化的少量数据,而不适合较大的数据。另外一个问题是,界面经常需要异步操作,比如网络请求等,当界面销毁时,往往需要手动维护异步取消的动作,这无疑显得特别繁琐。并且把所有代码都写在界面中,会变得特别臃肿原创 2022-04-29 14:44:48 · 2588 阅读 · 0 评论 -
Compose 渲染性能到底怎么样?
作者:程序员江同学如何测量Compose的FPS所谓FPS也就是每秒显示的帧数,Android 设备的 FPS 一般是 60,也即每秒要刷新 60 帧,所以留给每一帧的绘制时间最多只有 1000/60 = 16.67ms 。一旦某一帧的绘制时间超过了限制,就会发生 掉帧,用户在连续两帧会看到同样的画面。监测Android应用的FPS,其实已经是相当成熟了,主要就是利用Choreographer.getInstance().postFrameCallback()方法,在这里就不缀述了。那么,我们该.转载 2022-04-27 15:11:52 · 219 阅读 · 0 评论 -
MVI到底是不是凑数的?通过案例与MVVM进行比较
前言最近看到不少介绍MVI架构,即Model-View-Intent的文章,有人留言说Google炒冷饭或者为了凑KPI“发明”了MVI这么一个词。和后端的朋友描述了一下,他们听了第一印象也是和MVVM好像区别不大。但是凭印象Google应该还没有到需要这样来凑数。去看了一下官网,发现完全没有提到MVI这个词。。但是推荐的架构图确实是更新了,用来演示MVI也确实很搭。想了想,决定总结一下自己的发现,和掘友们一起讨论学习。案例分享看过一些分析MVI的文章,里面实现的方法各种各样,细节也不尽相同。甚原创 2022-04-26 14:17:17 · 4674 阅读 · 0 评论