SwiftDataSugar 🌯

.package(url: "https://github.com/mesqueeb/SwiftDataSugar", from: "0.1.0")

一个实用工具集合,旨在简化在 SwiftUI 环境中使用 SwiftData 的操作。

渲染后的文档可以在这里找到:swiftpackageindex.com/mesqueeb/SwiftDataSugar/documentation

示例项目:SwiftDataTodoList

一个关于如何在所有 Apple 平台上通过 SwiftData 实现 CRUD 的参考示例。

此概念验证的特点

  1. 写入操作使用后台线程(使用 @ModelActor 宏)。
  2. 读取操作使用 MainActor 线程(使用 SwiftUI 的 @Query 宏)。
  3. 包含单元测试的迁移设置。
  4. 完整的跨平台支持。

1. 写入数据

// example instantiating multiple collections in the `@main` swift file
@MainActor public let dbTodos = DbCollection<TodoItem>(modelContainer: modelContainer)
@MainActor public let dbUsers = DbCollection<User>(modelContainer: modelContainer)

2. 读取数据

DbQuery(predicate: activePredicate, sortBy: activeSort) { items in
  ForEach(items, id: \.id) { item in
    TodoListItemView(item: item)
      .id(item.id) // Use ID for List reordering and animations
    }
  }
}

3. 包含单元测试的迁移设置

4. 跨平台支持