Skip to content

Consolidated Xcode Workspace #9435

@i2h3

Description

@i2h3

This is a developer experience issue of no priority as of yet. It is more a reminder and note for @i2h3 for a mid-term goal. I will try to achieve this along the journey as part of my daily work and it should not impact regular operations notably.

Situation

  • For macOS, we have several subprojects in this repository. Swift packages (in example NextcloudFileProviderKit), command line tools (in example Mac Crafter), the Xcode project for the macOS extensions (NextcloudIntegration) and other little utilities (the "NextcloudDev" target in the NextcloudIntegration project to increase convenience).
  • The NextcloudIntegration.xcodeproj does not grasp the whole project. Many of the relevant Objective-C++ source code files in the Qt main app are poorly handled or not even visible to the Intelligence features. This makes work without an additional tool like Visual Studio Code inconvenient.
  • The NextcloudIntegration.xcodeproj also was originally intended for the extensions only.
  • Sometimes the build and KDE Craft fails because the paths used for the build working directory are too long.

Goals

  • Get to the conventional Apple platform developer experience of having one Xcode project (or in this case: workspace) file in the root of the repository.
  • Enable the "open project → hit run → client runs" workflow.
  • Have a single workspace and overview on everything relevant for development on macOS without the need to leave Xcode.
  • Lower the entry barrier for project contributors.
  • Enable Xcode and AI tools to see the full scope.

Progress

See branch i2h3/feature/9435-xcode-workspace

To Do

  • Update the build argument for mac-crafter to use /.mac-crafter in the repository root as its build directory.
  • Update the .gitignore.
  • Add documentation on the development workflow with this workspace on macOS with Xcode.

Metadata

Metadata

Assignees

Labels

No fields configured for Enhancement.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions