Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

sebaslogen/resaca

说明与用途

**项目简介**
sebaslogen/resaca 是一个基于 Jetpack Compose Multiplatform 的库,能够在 Composable 范围内为 ViewModel 提供作用域,并在配置变化(如屏幕旋转)和页面导航时保持实例不被销毁。

**价值**

  • **持久化与状态管理**:自动把 ViewModel 与 Composable 绑定,避免手动编写跨页面、跨配置的状态保存代码。
  • **提升开发效率**:省去大量自定义 plumbing,让团队可以更专注于业务逻辑和 UI 实现。
  • **跨平台支持**:同一套代码可在 Android、Desktop、Web(via Kotlin/JS)等平台使用,降低多平台维护成本。

**典型接入方式**

  1. **在项目中添加依赖**(示例 Gradle Kotlin DSL):
   dependencies {
       implementation("io.github.sebaslogen:resaca:<latest-version>")
   }
  1. **在根 Composable 中声明作用域**:
   @Composable
   fun MyApp() {
       ResacaScope {
           // 这里的所有子 composable 都可以通过 rememberResacaViewModel() 获取同一个 ViewModel 实例
           HomeScreen()
       }
   }
  1. **获取 ViewModel**:
   @Composable
   fun HomeScreen(viewModel: MyViewModel = rememberResacaViewModel()) {
       // 使用 viewModel 正常工作,配置变化或导航后仍保持同一实例
   }
  1. **可选**:在需要持久化的 ViewModel 中使用 SavedStateHandle 或自行实现 ResacaPersistable 接口,以实现更细粒度的状态保存。

**生产可用性**

  • **成熟度**:已有 636 ⭐、16 🍴,最近一次提交在 2026‑05‑12,活跃度尚可。
  • **适用场景**:非常适合内部工具、原型以及需要快速交付的多平台项目;在对稳定性要求极高的核心业务系统中使用前,建议进行充分的集成测试。
  • **风险与注意事项**:
  • 文档主要集中在 README,完整的集成指南相对有限,建议先在小型 PoC 中验证配置流程。
  • 依赖于 Kotlin Multiplatform 与 Compose 生态,确保项目的 Compose 版本与库兼容。
  • 关注后续维护频率和社区响应,以防止出现长期未更新的情况。

**结论**:resaca 为 Compose Multiplatform 项目提供了轻量级、开箱即用的 ViewModel 作用域管理,能够显著减少状态持久化的样板代码。对原型或内部业务系统可直接投入使用;若用于生产环境,建议在正式上线前完成完整的兼容性和回归测试。

实际用途

sebaslogen/resaca helps teams persist, query, and move data with less custom plumbing.

  • manage persistence
  • speed up data access
  • prototype database-backed apps

限制与审查说明

Medium: useful for prototypes or internal workflows, with dependency and maintenance checks before production.

  • 来源: github
  • 语言: Kotlin
  • 记录日期: 2026-09-05T17:32:04.546Z
原始来源