alex566/DataScoutCompanion
Embeddable SwiftData Inspector
π¦ Installation
Add DataScoutCompanion to your project:
- In Xcode, choose File > Add Package Dependencies...
- Enter the repository URL:
https://github.com/alex566/DataScoutCompanion.git- Set the version requirement.
- Add the DataScoutCompanion package to your app target.
π― Usage
Everything you need to do is present DatabaseBrowser:
import SwiftUI
import DataScoutCompanion
struct YourRootView: View {
@State private var isBrowserPresented = false
var body: some View {
YourContentView()
.toolbar {
Button(action: { isBrowserPresented = true }) {
Image(systemName: "tablecells")
}
}
.sheet(isPresented: $isBrowserPresented) {
DatabaseBrowser()
}
}
}π Remote debugging
- Update Info.plist with the following keys:
<key>NSBonjourServices</key>
<array>
<string>_datascout-sync._tcp</string>
</array>
<key>NSLocalNetworkUsageDescription</key>
<string>To debug the database over the local network</string>- In your appβs startup code (e.g. in
AppDelegateorSceneDelegate), import the package and callstartAdvertising:
import DataScoutCompanion
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Option A: Pass an existing ModelContainer
let myModelContainer = /* your ModelContainer instance */
ConnectionService.shared.startAdvertising(container: myModelContainer)
// Option B: Pass a file URL to your database
let dbURL: URL = /* URL to your .sqlite3 file */
ConnectionService.shared.startAdvertising(url: dbURL)
return true
}3. Use the Built-In Database Browser (Alternative)
If youβd rather broadcast from within the companion UI in your app:
- Open the database you wish to debug.
- Go to the Network Debugging menu.
- Enable the Discovery checkbox for that database.
Package Metadata
Repository: alex566/DataScoutCompanion
Stars: 108
Forks: 4
Open issues: 0
Default branch: main
Primary language: swift
License: MIT
Topics: coredata, ios, sqlite, swiftdata, swiftui
README: README.md