listless

A simple list app for Apple platforms
Log | Files | Refs | README | LICENSE

ListlessWatchApp.swift (1283B)


      1 import SwiftUI
      2 
      3 @main
      4 struct 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 }