原文地址:ViewModels and LiveData: Patterns + AntiPatterns 原文作者:Jose Alcérreca 译文出自:掘金翻译计划 本文永久链接:github.
LiveData 是一种可观察的数据存储器类。与常规的可观察类不同,LiveData 具有生命周期感知能力
这个系列我做了协程和Flow开发者的一系列文章的翻译,旨在了解当前协程、Flow、LiveData这样设计的原因,从设计者的角度,发现他们的问题,以及如何解决这些问题,pls enjoy it。
前半部分介绍响应式编程的一些思想,后半部分介绍我们如何基于LiveData实现数据流设计的落地实践。 "一切都是对象 ( Everything is an Object! )" 当使用面向对象(Object-Oriented)的思维去开发时,我们被教导:“一切都是对象 ( Everything is an Object! )”。 我们自顶向下地分解问题,将模块封装为交互(method) 和状态(property)的集合,通过不断将模块拆分成更细的维度,最后形成一个个具有明确定义的内聚性的类(Class)
本文是介绍 Android 协程系列中的第三部分,这篇文章通过发送一次性请求来介绍如何使用协程处理在实际编码过程中遇到的问题。在阅读本文之前,建议您先阅读本系列的前两篇文章,关于在 Android 开发中使用协程的背景介绍和上手指南。
前面四篇介绍了Jetpack 架构组件中的 基础组件 以及它们的综合应用:Jetpack MVVM 架构模式,到这里已经基本满足标准化开发了。但 Jetpack 架构组件 除了 Lifecycle、LivaData、ViewModel,还有:
Android Architecture Components 是一组库,可帮助您设计健壮、可测试和可维护的应用程序。包含以下几个组件模块:
Paging 库可以帮助您优雅地渐进加载大型数据集合,同时也可以减少网络的使用和系统资源的消耗。基于您的反馈我们得知,Paging 2.0 API 还不能满足开发者们的需求——开发者们希望以更简便的方式处理错误;以更灵活的方式实现列表数据的转换操作,例如 map 和 filter;以及支持分割符、页眉和页脚。基于以上反馈,我们推出了 Paging 3.0。这是一个完全使用 Kotlin 协程重写的库 (依然支持 Java 用户),它将为您提供您所要求的功能。
前面三篇介绍了Jetpack 架构组件中 最重要 的部分:生命周期组件-Lifecycle、感知生命周期的数据组件-LiveData、视图模型组件-ViewModel。 这篇,就来探索下目前android开发中 最优秀、讨论最多的架构模式—— MVVM 。
Android分页包能够更轻易地在RecyclerView里面缓慢且优雅地加载数据.
在Android开发领域,掌握Jetpack是一位专业Android开发者必备的技能。本文将围绕Android Jetpack展开,深度解析面试中可能涉及到的高级疑难问题,我将分享一些关于Android Jetpack的面试技巧,帮助你更好地准备面试。
原文链接:https://proandroiddev.com/using-livedata-flow-in-mvvm-part-i-a98fe06077a0
Google 为了帮助 Android 开发者更快更好地开发 App,推出了一系列组件,这些组件被打包成了一个整体,称作 Android Jetpack,它包含的组件如下图所示:
本文转载自我的好基友老梁老司机,一文带你领略AAC的魅力。 Google 为了帮助 Android 开发者更快更好地开发 App,推出了一系列组件,这些组件被打包成了一个整体,称作 Android Jetpack,它包含的组件如下图所示:
关于LiveData,在2022尾声的今天,从事 Android 开发的小伙伴一定不会陌生。相应的,关于 LiveData 解析与使用的文章更是数不胜数,其中不乏优秀的创作者,在众多的文章以及前辈面前,本篇也不敢妄谈能写的多么深入,易懂。
保持基本的手部和呼吸道卫生,坚持安全饮食习惯,并尽可能避免与任何表现出有呼吸道疾病症状(如咳嗽和打喷嚏等)的人密切接触。
在Kotlin中,transformations.map是用于将一个 LiveData 的数据进行转换的拓展函数,它属于 Android Architecture Components 中的 LiveData 转换部分。这个函数允许你在 LiveData 的数据发生变化时,自动地对数据进行某种转换,并返回一个新的 LiveData。
在 视图 View 与 数据模型 Model 通过 ViewModel 架构组件 进行绑定后 , 可以立即 将 ViewModel 中的数据设置到 UI 界面中 ,
LiveData 是Jetpack中的一个组件,是一个可被观察的数据存储器类, 具有感知组件生命周期的能力,LiveData 可以感知组件生命周期活跃状态发送数据更新,在组件销毁时移除观察者对象,大多结合具有生命周期的组件一起使用(如 Activity、Fragment 或 Service,或实现了 LifecycleOwner 接口的对象)。
ViewModel 甫一发布,便成为了 Jetpack 中的核心组件之一。我们在 2019 年做的一份开发者问卷显示,超过 40% 的 Android 开发者已经在自己的应用中使用了 ViewModel。ViewModel 可以将数据层与 UI 分离,而这种架构不仅可以简化 UI 的生命周期的控制,也能让代码获得更好的可测试性。如果想了解更多,可以参考 ViewModel: 简单介绍视频和官方文档。
在Android开发中,LiveData是一个非常有用的工具。它可以帮助我们在应用程序中实现响应式编程,并且还具有生命周期感知能力,可以帮助我们避免内存泄漏。本文将探讨LiveData的高阶使用和原理,并提供一些常见错误的解决方法。此外,我们还将介绍一些更高级的使用场景,以帮助你更好地使用LiveData。
Android Jetpack 是 Google 推出的一套强大且灵活的库集合,旨在帮助 Android 开发者构建高质量、稳定且易于维护的应用程序。其中最重要的组件之一是 Lifecycle,它提供了一种便捷的方式来管理 Android 应用程序组件的生命周期,使得开发者能够更加专注于应用逻辑的实现而不用过多关心生命周期管理。本篇文章将深入浅出地介绍 Android Jetpack Lifecycle 的使用原理,带你一步步走进它的核心机制,同时展示一些高级的使用方式,助你在 Android 开发的路上更进一步。
这篇文章介绍开发者用 31 天学习 Kotlin 的心得,深入浅出地介绍了 Kotlin 的一些基本特性以及高级用法,对处于不同阶段的 Kotlin 开发者来说,在提高开发效率和了解 Kotlin 提供一些参考,希望可以对大家有所帮助。 第一周 Day 1:可见性 在 Kotlin 中一切都是默认 public 的。并且 Kotlin 还有一套丰富的可见性修饰符,例如:private, protected, internal。它们每个都以不同的方式降低了可见性。 Day 2:Elvis 操作符 需要处理代
面对越来越复杂的 App 需求,Google 官方发布了Android 框架组件库(Android Architecture Components )。为开发者更好的开发 App 提供了非常好的样本。这个框架里的组件是配合 Android 组件生命周期的,所以它能够很好的规避组件生命周期管理的问题。今天我们就来看看这个库的使用。
Android Jetpack 是一系列助力您更容易打造优秀 Android 应用的工具和组件。这些组件能帮助您遵循最佳实践、免除编写繁复的样板代码并简化复杂任务,从而使您可以专注于最核心的代码逻辑。
private final Runnable mPostValueRunnable = new Runnable() {
在 Kotlin 中使用 Android 的 Java API 时,您会迅速意识到这样的做法失去了 Kotlin 语言简单有趣的特点。与其您亲自去编写这些 API 的 wrapper 和扩展函数,不如了解一下 Jetpack KTX 库。目前为止,已有超过 20 个库拥有对应的 KTX 版本,这些 KTX 库实现了常用的 Java 版本 API 的功能,包括 Android 平台 API、ViewModels、SQLite,甚至还有 Play Core。本文会介绍目前可用的 KTX API 并深入其中去分析它们是如何实现的。
Livedata 是 Google 推荐的 Android 架构组件之一,是一个存放可被观察的数据持有类,有生命周期感知功能,解决了android开发者需要去手动处理生命周期的痛点。 比如当我们使用 Retrofit+Rxjava处理接口回调数据时,需要考虑activity 或 fragment 生命周期,以解决 onStop 或 onDestory之后回调数据的问题。现在只需要 Retrofit+Livedata 就好,其他的 Livedata 帮你做了。
以前项目中虽然也使用MVVM架构,但由于整体框架不是我自己搭建的,导致我对于MVVM架构的整体还是很不熟悉,所以这次就自己搭建并实现一次MVVM架构。
ViewModel 旨在以生命周期感知的形式存储和管理 UI 控制器(Activity/Fragment 等)相关的数据,可以解决 UI 控制器中数据无法正确保留以及数据在其复杂的生命周期中难以维护的痛点,它的生命周期感知能力需要配合 Lifecycles 组件才能实现,本文聚焦于 ViewModel 所以先不讲 Lifecycles ,关于 Lifecycles 我会在其它文章详细介绍
DataBinding 是属于 Jetpack 的一个支持库,可以让你以在布局中声明属性的方式替代编码方式将布局中的 UI 组件和应用数据进行绑定
这是一篇自己从Android开发文档中翻译来的关于Room 的文档。哪里不对,欢迎纠错 Room 持久化库 Room持久性库提供了SQLite的抽象层,以便在充分利用SQLite的同时允许流畅的数据库访问。 该库可帮助你在设备上创建应用程序的缓存数据,这样不管设备是否联网都能看到数据。 摘自 Room Persistence Library 使用 Room 在本地保存数据 原文地址 https://developer.android.com/training/data-storage/room/index.
这是如何开发以太坊(安卓)钱包系列第3篇, 钱包账号资产信息展示,展示信息主要包括账号地址、eth余额及该账号所拥有的Token及余额。
Android高级工程师,6年以上开发经验,有丰富的代码重构和架构设计经验,负责京东商城我的京东的开发工作,热衷于学习和研究新技术。
LiveData 是基于 Lifecycle 框架实现的生命周期感知型数据容器,能够让数据观察者更加安全地应对宿主(Activity / Fragment 等)生命周期变化,核心概括为 2 点:
在Android应用开发中,我们经常需要以列表的方式来展示大量的数据,这些数据可能来自网路,也可以来自本地的数据库。为了避免一次性加载大量的数据,对数据进行分页就显得很有必要。分页加载可以根据需要对数据进行按需加载,在不影响用户体验的前提下,提升应用的性能。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
最近两年,MVVM的呼声越来越高,说实话,在经历了MVP的臃肿,MVP的繁琐,我有点怕了。但是这次Google官方带来的一系列为MVVM架构设计的武器—Jetpack,真的让我惊喜到了。
也就是说,LiveData使得 数据的更新 能以观察者模式 被observer感知,且此感知只发生在 LifecycleOwner的活跃生命周期状态。
Flow 是一种基于流的编程模型,本文我们将向大家介绍响应式编程以及其在 Android 开发中的实践,您将了解到如何将生命周期、旋转及切换到后台等状态绑定到 Flow 中,并且测试它们是否能按照预期执行。
从LiveData具有的特点,我们就能联想到它能够解决我们遇到的什么问题。LiveData具有以下优点:
ViewModel 甫一发布,便成为了 Jetpack 中的核心组件之一。我们在 2019 年做的一份开发者问卷显示,超过 40% 的 Android 开发者已经在自己的应用中使用了 ViewModel。ViewModel 可以将数据层与 UI 分离,而这种架构不仅可以简化 UI 的生命周期的控制,也能让代码获得更好的可测试性。
领取专属 10元无门槛券
手把手带您无忧上云