Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve Xcode support #459

Open
madsmtm opened this issue Jun 15, 2023 · 5 comments
Open

Improve Xcode support #459

madsmtm opened this issue Jun 15, 2023 · 5 comments
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@madsmtm
Copy link
Owner

madsmtm commented Jun 15, 2023

There is a bunch of Rust tools out there that ease access to (parts of) Xcode:

But all of them currently feel quite clunky, or are missing a lot of functionality.

If we actually desire at least somewhat competitiveness with Swift (#429), it needs to be easy to:

  • Use storyboards/nib files.
  • Use assets.
  • Configure application information (Info.plist).
  • Use advanced debugging utilities (main thread checker, UI hierarchy viewer, ...).
  • Bundle, sign and publish to the app store.

All of these are certainly possible to do outside of Xcode, and we should strive towards that eventually, but it's going to take a lot of time for the ecosystem to get there! So instead, we should start by making it easier to work with Rust projects inside Xcode!

Perhaps a path forward would be some combination of rust-xcode-plugin, a Source Editor Extension and cargo-xcode? Ideally, we'd want full LSP-like support, and probably eventually some kind of IBAction/IBOutlet support, but having a solid way to run Rust applications from inside Xcode would be a huge step!

Let's also remember that Rust is not the only ecosystem that has this problem, perhaps we can learn from what others are doing? Mentioning XcodeGen here.

@madsmtm madsmtm added enhancement New feature or request help wanted Extra attention is needed labels Jun 15, 2023
@madsmtm
Copy link
Owner Author

madsmtm commented Jun 15, 2023

Whether or not we (as in, this project) end up solving these problems, we need to curate and link users to the current best solutions.

@madsmtm
Copy link
Owner Author

madsmtm commented Sep 13, 2023

Related: RalfJung/cargo-careful#22

@madsmtm
Copy link
Owner Author

madsmtm commented Dec 7, 2023

Swift has something called Package Plugins, specifically the "build tool plugin" may allow us to easily invoke Cargo from Xcode

@madsmtm
Copy link
Owner Author

madsmtm commented Dec 12, 2023

For interface builder support, this removed document detailing the legacy IB plug-ins might reveal some more information on how these links work?

Maybe it utilizes NSKeyValueBindingCreation?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

1 participant