Watch: demo screenshots, wrapping reply chips, feed toolbar and inset fixes, README
Screenshots of Pair, Feed, Thread (finished, approval, question) and New thread, taken in the Series 12 46mm simulator in demo mode. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
bdfb79b891
commit
9731fd621f
10 files changed
+103
-3
No files matched your search
@@ -0,0 +1,41 @@
|
||||
# WristCode watch app
|
||||
|
||||
SwiftUI, watch only, Swift 6 with strict concurrency, and no dependencies. It talks to the gateway
|
||||
over HTTPS + JSON as described in [docs/api.md](../docs/api.md); `WristCode/API/Models.swift`
|
||||
mirrors [gateway/src/contract.ts](../gateway/src/contract.ts).
|
||||
|
||||
## Build and test
|
||||
|
||||
```sh
|
||||
cd watch
|
||||
xcodegen generate # the .xcodeproj is generated and gitignored
|
||||
xcodebuild -scheme WristCode -destination 'platform=watchOS Simulator,name=Apple Watch Series 12 (46mm)' build
|
||||
xcodebuild -scheme WristCode -destination 'platform=watchOS Simulator,name=Apple Watch Series 12 (46mm)' test
|
||||
```
|
||||
|
||||
## Demo mode
|
||||
|
||||
`DemoGateway` serves fixture data shaped like the docs/api.md examples, and it reacts to writes:
|
||||
Allow moves a thread to working, a reply restarts a finished thread. The SwiftUI previews use it,
|
||||
the pairing screen has a "Try the demo" button, and launch arguments open a screen directly:
|
||||
|
||||
```sh
|
||||
xcrun simctl launch <udid> org.gbrown.wristcode -demo # feed
|
||||
xcrun simctl launch <udid> org.gbrown.wristcode -demo -thread littleman/t-next # thread
|
||||
xcrun simctl launch <udid> org.gbrown.wristcode -demo -screen new # new thread
|
||||
```
|
||||
|
||||
`screenshots/` holds the screens captured this way.
|
||||
|
||||
## Layout
|
||||
|
||||
| Path | Job |
|
||||
| --- | --- |
|
||||
| `WristCodeApp.swift` | App entry, root navigation, `WKApplicationDelegate` for APNs registration |
|
||||
| `AppModel.swift` | Paired, demo or unpaired; navigation path; the feed; 401 sends you back to pairing |
|
||||
| `API/GatewayClient.swift` | `GatewayAPI` protocol and the URLSession client |
|
||||
| `API/Models.swift` | Codable mirror of the contract |
|
||||
| `Auth/DeviceStore.swift` | Device token and gateway URL in the Keychain |
|
||||
| `Demo/DemoGateway.swift` | In-memory gateway with fixtures |
|
||||
| `Views/` | Pair, Feed, Thread, New thread, and the mock B theme |
|
||||
| `Notifications/NotificationHandler.swift` | Categories `approval`, `finished`, `failed`, `input`, `host` and their actions |
|
||||
Reference in new issue
Block a user