[GH-ISSUE #1] Create the native macOS project and menu-bar shell #3

Closed
opened 2026-10-23 18:09:13 +02:00 by jayanezj · 5 comments
Owner

Originally created by @jayanezj on GitHub (Oct 23, 2026).
Original GitHub issue: https://github.com/jayanezj/traccar-client-macos/issues/1

Originally assigned to: @jayanezj on GitHub.

Goal

Create a small native macOS application that can remain available from the menu bar without a permanent main window.

Scope

  • Use an Xcode project, Swift 6 language mode, SwiftUI and AppKit where needed; target macOS 15.0 and arm64, starting with M1.
  • Public name: Traccar Client for macOS. Product: Traccar Client macOS.app. Bundle identifier: com.codigojose.traccar-client-macos.
  • Use the installed stable Xcode 27.1 baseline. Keep build products, controlled caches and archives on the configured external development volume; do not commit machine-specific absolute paths.
  • Start with ad hoc signing. Verify the menu-bar/agent lifecycle, including reliable Settings presentation. Separate location, transport, storage and state responsibilities without adding mobile SDKs.
  • Provide Start/Pause, Send location now, Send SOS, Settings and Quit entry points. Unimplemented actions must be disabled or clearly unavailable; never simulate success.

Acceptance criteria

  • The arm64 app builds with deployment target 15.0 and launches in a paused state.

  • A menu-bar item and Settings window work without a permanent Dock icon in the chosen agent configuration.

  • Closing Settings leaves the process running; Quit terminates it.

  • About identifies the app as an independent, unofficial client and displays the version and Apache-2.0 license information.

  • No launch-time request sends positions or contacts the configured demo receiver.

  • A custom application icon is designed, reviewed and integrated into the Xcode app assets, with the source artwork retained for future revisions.

Validation

Record Xcode/SDK versions, build invocation and a launch/Settings/Quit smoke check. Early CI is delivered by PROTO-002 immediately after this buildable shell. Initial application icon development is included in this issue: a high-resolution PNG concept combining the supplied Traccar client and Apple marks with green #2d7930, followed by SVG preparation and derived app assets after review. Later interface polish remains in PROTO-015; product maps remain outside the MVP.

Originally created by @jayanezj on GitHub (Oct 23, 2026). Original GitHub issue: https://github.com/jayanezj/traccar-client-macos/issues/1 Originally assigned to: @jayanezj on GitHub. ## Goal Create a small native macOS application that can remain available from the menu bar without a permanent main window. ## Scope - Use an Xcode project, Swift 6 language mode, SwiftUI and AppKit where needed; target macOS 15.0 and arm64, starting with M1. - Public name: **Traccar Client for macOS**. Product: **Traccar Client macOS.app**. Bundle identifier: `com.codigojose.traccar-client-macos`. - Use the installed stable Xcode 27.1 baseline. Keep build products, controlled caches and archives on the configured external development volume; do not commit machine-specific absolute paths. - Start with ad hoc signing. Verify the menu-bar/agent lifecycle, including reliable Settings presentation. Separate location, transport, storage and state responsibilities without adding mobile SDKs. - Provide Start/Pause, Send location now, Send SOS, Settings and Quit entry points. Unimplemented actions must be disabled or clearly unavailable; never simulate success. ## Acceptance criteria - [x] The arm64 app builds with deployment target 15.0 and launches in a paused state. - [x] A menu-bar item and Settings window work without a permanent Dock icon in the chosen agent configuration. - [x] Closing Settings leaves the process running; Quit terminates it. - [x] About identifies the app as an independent, unofficial client and displays the version and Apache-2.0 license information. - [x] No launch-time request sends positions or contacts the configured demo receiver. - [x] A custom application icon is designed, reviewed and integrated into the Xcode app assets, with the source artwork retained for future revisions. ## Validation Record Xcode/SDK versions, build invocation and a launch/Settings/Quit smoke check. Early CI is delivered by [PROTO-002](https://github.com/jayanezj/traccar-client-macos/issues/2) immediately after this buildable shell. Initial application icon development is included in this issue: a high-resolution PNG concept combining the supplied Traccar client and Apple marks with green `#2d7930`, followed by SVG preparation and derived app assets after review. Later interface polish remains in [PROTO-015](https://github.com/jayanezj/traccar-client-macos/issues/15); product maps remain outside the MVP. <!-- planning-id: PROTO-001 -->
jayanezj added this to the M1 - Foundation and CI milestone 2026-10-23 18:09:13 +02:00
jayanezj added the type:featuretype:taskarea:uipriority:high labels 2026-10-23 18:09:13 +02:00
Author
Owner

@jayanezj commented on GitHub (Oct 23, 2026):

Started issue #1, assigned to @jayanezj.

Scope: native arm64/macOS 15 Xcode project, paused menu-bar shell, Settings/About/Quit, ad hoc signing and build/runtime smoke checks. Tracking, transport, persistent configuration and CI remain in their owning issues; unavailable actions will be disabled.

<!-- gh-comment-id:6357609105 --> @jayanezj commented on GitHub (Oct 23, 2026): Started issue #1, assigned to @jayanezj. Scope: native arm64/macOS 15 Xcode project, paused menu-bar shell, Settings/About/Quit, ad hoc signing and build/runtime smoke checks. Tracking, transport, persistent configuration and CI remain in their owning issues; unavailable actions will be disabled.
Author
Owner

@jayanezj commented on GitHub (Oct 23, 2026):

Local implementation and validation completed for issue #1; changes remain uncommitted on issue/1-native-shell.

Implemented:

  • Native SwiftUI menu-bar app with Settings, About and Quit; LSUIElement agent configuration.
  • Paused shell with tracking/manual location/SOS actions disabled. No location acquisition or receiver transport is implemented or started.
  • Shared Xcode scheme, Debug/Release configurations, arm64/macOS 15.0, Swift 6, agreed product/bundle identity, ad hoc signing, Apache-2.0 license and repeatable external-output build script.

Validation:

  • Debug and Release both built successfully with Xcode 27.1 (27A9275), SDK macOS 27.0, on macOS 27.0.1 arm64.
  • Both app signatures passed strict verification; binary build metadata records arm64 and minimum macOS 15.0.
  • Plists, scheme XML, shell syntax and public-file review passed.
  • Manually confirmed paused status, disabled actions, Settings open/close/reopen, About version/license and Quit, and left the app closed. A subsequent process check confirmed termination.

All five acceptance checks are now marked. Runtime on macOS 15, DMG/Gatekeeper, tracking/transport and CI remain in their owning issues.

<!-- gh-comment-id:6357710212 --> @jayanezj commented on GitHub (Oct 23, 2026): Local implementation and validation completed for issue #1; changes remain uncommitted on `issue/1-native-shell`. Implemented: - Native SwiftUI menu-bar app with Settings, About and Quit; `LSUIElement` agent configuration. - Paused shell with tracking/manual location/SOS actions disabled. No location acquisition or receiver transport is implemented or started. - Shared Xcode scheme, Debug/Release configurations, arm64/macOS 15.0, Swift 6, agreed product/bundle identity, ad hoc signing, Apache-2.0 license and repeatable external-output build script. Validation: - Debug and Release both built successfully with Xcode 27.1 (27A9275), SDK macOS 27.0, on macOS 27.0.1 arm64. - Both app signatures passed strict verification; binary build metadata records arm64 and minimum macOS 15.0. - Plists, scheme XML, shell syntax and public-file review passed. - Manually confirmed paused status, disabled actions, Settings open/close/reopen, About version/license and Quit, and left the app closed. A subsequent process check confirmed termination. All five acceptance checks are now marked. Runtime on macOS 15, DMG/Gatekeeper, tracking/transport and CI remain in their owning issues.
Author
Owner

@jayanezj commented on GitHub (Oct 23, 2026):

Expanded the acceptance criteria to include the application icon. Prepared an initial 1254 × 1254 PNG with transparency, combining Apple silhouette and Traccar transmission motif with the traccar client green palette (#2d7930).

<!-- gh-comment-id:6357929742 --> @jayanezj commented on GitHub (Oct 23, 2026): Expanded the acceptance criteria to include the application icon. Prepared an initial 1254 × 1254 PNG with transparency, combining Apple silhouette and Traccar transmission motif with the traccar client green palette (`#2d7930`).
Author
Owner

@jayanezj commented on GitHub (Oct 23, 2026):

Integrated SVG-based application artwork and native Xcode asset catalogs.

  • Application icon: all ten macOS slots, from 16 to 1024 pixels, rendered directly from the vector source.
  • Menu-bar icon: monochrome template at 1× and 2×, with native light/dark appearance rendering.
  • Preserved the transparent Apple cutout inside the Traccar dish and set the integrated artwork to solid #2d7930.
  • Retained the editable SVG and added a repeatable asset-generation script. Xcode builds use the checked-in PNGs without additional dependencies.

Debug and Release builds passed. Both signatures passed strict verification. Verified PNG dimensions, exact green color, transparent cutout, bundled AppIcon.icns and the compiled menu-bar resource. Visual verification of the running Release build remains pending.

<!-- gh-comment-id:6358429530 --> @jayanezj commented on GitHub (Oct 23, 2026): Integrated SVG-based application artwork and native Xcode asset catalogs. - Application icon: all ten macOS slots, from 16 to 1024 pixels, rendered directly from the vector source. - Menu-bar icon: monochrome template at 1× and 2×, with native light/dark appearance rendering. - Preserved the transparent Apple cutout inside the Traccar dish and set the integrated artwork to solid `#2d7930`. - Retained the editable SVG and added a repeatable asset-generation script. Xcode builds use the checked-in PNGs without additional dependencies. Debug and Release builds passed. Both signatures passed strict verification. Verified PNG dimensions, exact green color, transparent cutout, bundled `AppIcon.icns` and the compiled menu-bar resource. Visual verification of the running Release build remains pending.
Author
Owner

@jayanezj commented on GitHub (Oct 23, 2026):

Manually verified the integrated application icon in the running build. The application icon acceptance criterion is complete.

<!-- gh-comment-id:6358448785 --> @jayanezj commented on GitHub (Oct 23, 2026): Manually verified the integrated application icon in the running build. The application icon acceptance criterion is complete.
jayanezj added type:task and removed type:task labels 2026-10-30 18:01:08 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jayanezj/traccar-client-macos#3