Skip to content
项目

groue/GRDBQuery has 314 GitHub stars and 29 forks. Star changes are not measured yet. Last checked 2026-11-14 12:26 UTC. Last push 2026-11-09.

这些数字如何统计

实测星标增长

24小时
正在收集历史
7天
正在收集历史
15天
正在收集历史
1个月
正在收集历史

各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。

关于

The SwiftUI companion for GRDB

数据

README.md

原文

GRDBQuery

Latest release: March 15, 2025 • version 0.11.0 • CHANGELOG

Requirements: iOS 14.0+ / macOS 11+ / tvOS 14.0+ / watchOS 7.0+ • Swift 6+ / Xcode 16+

📖 Documentation


GRDBQuery helps SwiftUI applications access a local SQLite database through GRDB and the SwiftUI environment.

It comes in two flavors:

  • The @Query property wrapper allows SwiftUI views to directly read and observe the database:

    /// Displays an always up-to-date list of database players.
    struct PlayerList: View {
        @Query(PlayersRequest()) var players: [Player]
        
        var body: some View {
            List(players) { player in Text(player.name) }
        }
    }
    
  • The @EnvironmentStateObject property wrapper helps build ObservableObject models from the SwiftUI environment:

    /// Displays an always up-to-date list of database players.
    struct PlayerList: View {
        @EnvironmentStateObject var model: PlayerListModel
        
        init() {
            _model = EnvironmentStateObject { env in
                PlayerListModel(databaseContext: env.databaseContext)
            }
        }
        
        var body: some View {
            List(model.players) { player in Text(player.name) }
        }
    }
    

Both techniques can be used in a single application, so that developers can run quick experiments, build versatile previews, and also apply strict patterns and conventions. Pick @Query, or @EnvironmentStateObject, depending on your needs!

Documentation

Learn how to use @Query and @EnvironmentStateObject in the Documentation.

Check out the GRDBQuery demo apps, and the GRDB demo apps for various examples.

Thanks

🙌 @Query was greatly inspired by Core Data and SwiftUI by @davedelong, with a critical improvement contributed by @steipete, and enhancements inspired by conversations with @stephencelis. Many thanks to all of you!

探索相关项目