ListlessWatch/ListlessWatchApp.swift (1283B)
1import SwiftUI
2
3@main
4struct ListlessWatchApp: App {
5 private let persistenceController: PersistenceController
6 private let keyValueSyncBridge = KeyValueSyncBridge(keys: ["listName", "colorTheme"])
7
8 init() {
9 let args = ProcessInfo.processInfo.arguments
10 let isUITesting = args.contains("UI_TESTING")
11 persistenceController = isUITesting ? PersistenceController(inMemory: true) : .shared
12 keyValueSyncBridge.start()
13
14 if isUITesting, args.contains("SCREENSHOT_SEED") {
15 let store = ItemStore(persistenceController: persistenceController)
16 try? store.createItem(title: "Make smartband", sortOrder: 1000)
17 try? store.createItem(title: "Add custom faces", sortOrder: 2000)
18 let item = try? store.createItem(title: "Focus on fitness", sortOrder: 3000)
19 if let item { try? store.complete(itemID: item.id) }
20 try? store.save()
21 }
22 }
23
24 var body: some Scene {
25 WindowGroup {
26 ItemListView(
27 store: ItemStore(persistenceController: persistenceController),
28 syncMonitor: persistenceController.syncMonitor
29 )
30 .environment(\.managedObjectContext, persistenceController.viewContext)
31 }
32 }
33}