App scaffold & wizard shell #1

Closed
opened 2026-09-08 17:38:19 +01:00 by gronod · 0 comments
Owner

Summary

Xcode project ICCery, bundle id com.gronod.iccery2, SwiftUI App lifecycle, macOS 14.0, universal arm64+x86_64. Dark tokens from v0.8.5: bg #1e1e1e, panel #252526, text #d4d4d4, accent #007acc, border #333. Window 1280×800, min 1100×700 (#61).

Spec refs

docs/01-overview.md, 02-architecture.md, 21-ui-reference.md, 23-assets.md.

Scope

In: project, entitlements, window, sidebar, stepper, banner slot, logo + app icon set from vendored SVG.
Out: live presets, live Calibrate Printer, WebView workarounds, hidden-until-paint (not required without WKWebView).

Implementation notes

  • App Sandbox OFF. Hardened Runtime ON. File ICCery.entitlements: com.apple.security.app-sandbox = false; com.apple.security.device.usb = true; later Apple Events for open -a "ColorSync Utility".
  • Sidebar 270px: original ICCery-logo.svg (do not redraw), Settings, About, disabled preset select, disabled Calibrate Printer + cal chip, stepper stages 1–5 only. Stage 0 is not a stepper stop.
  • Main: notification banner + one visible stage container. Only Stage 1 enabled.
  • Native dark NSAppearance. First paint may be visible.
  • Targets: app ICCery + library ICCeryCore (empty-ish). Do not create ICCeryPrintKit yet.
  • Swift 5.10+ / 6 as the Xcode on the self-hosted runner supports; pin in the pbxproj. Enable complete concurrency checking.

Rewrite invariants

#61 window size. #225 — do not port WKWebView dark-paint / hidden-until-first-paint / WebGL-at-boot workarounds.

Dependencies

None.

Test

  • CI/mock: xcodebuild build -scheme ICCery -destination 'platform=macOS'; min-size; stepper only Stage 1 enabled; entitlements plist sandbox false.
  • Hardware: N/A.

Acceptance criteria

  • Launches dark-themed on 14.0+.
  • Stepper renders 5 stages; only Stage 1 enabled.
  • Logo matches vendored SVG.
  • Calibrate Printer and preset select disabled.
  • Sandbox disabled in entitlements.
## Summary Xcode project `ICCery`, bundle id `com.gronod.iccery2`, SwiftUI App lifecycle, macOS 14.0, universal arm64+x86_64. Dark tokens from v0.8.5: bg `#1e1e1e`, panel `#252526`, text `#d4d4d4`, accent `#007acc`, border `#333`. Window 1280×800, min 1100×700 (#61). ## Spec refs docs/01-overview.md, 02-architecture.md, 21-ui-reference.md, 23-assets.md. ## Scope In: project, entitlements, window, sidebar, stepper, banner slot, logo + app icon set from vendored SVG. Out: live presets, live Calibrate Printer, WebView workarounds, hidden-until-paint (not required without WKWebView). ## Implementation notes - App Sandbox OFF. Hardened Runtime ON. File `ICCery.entitlements`: `com.apple.security.app-sandbox` = false; `com.apple.security.device.usb` = true; later Apple Events for `open -a "ColorSync Utility"`. - Sidebar 270px: original `ICCery-logo.svg` (do not redraw), Settings, About, **disabled** preset select, **disabled** Calibrate Printer + cal chip, stepper stages 1–5 only. Stage 0 is not a stepper stop. - Main: notification banner + one visible stage container. Only Stage 1 enabled. - Native dark `NSAppearance`. First paint may be visible. - Targets: app `ICCery` + library `ICCeryCore` (empty-ish). Do not create `ICCeryPrintKit` yet. - Swift 5.10+ / 6 as the Xcode on the self-hosted runner supports; pin in the pbxproj. Enable complete concurrency checking. ## Rewrite invariants #61 window size. #225 — do not port WKWebView dark-paint / hidden-until-first-paint / WebGL-at-boot workarounds. ## Dependencies None. ## Test - CI/mock: `xcodebuild build -scheme ICCery -destination 'platform=macOS'`; min-size; stepper only Stage 1 enabled; entitlements plist sandbox false. - Hardware: N/A. ## Acceptance criteria - [ ] Launches dark-themed on 14.0+. - [ ] Stepper renders 5 stages; only Stage 1 enabled. - [ ] Logo matches vendored SVG. - [ ] Calibrate Printer and preset select disabled. - [ ] Sandbox disabled in entitlements.
gronod added this to the M1 — Foundation & process core milestone 2026-09-08 17:38:19 +01:00
gronod added the
Priority
Critical
1
Project/ICCery-v2Feature/ArchitectureFeature/UI
labels 2026-09-08 17:38:19 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gronod/iccery-v2-mac#1