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, metal shader debugger, ...).
- 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 / rust-xcode-langspec, 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.
There is a bunch of Rust tools out there that ease access to (parts of) Xcode:
cargo-xcodecargo-dinghycargo-mobilecargo-mobile2crossbundle/crossbowdx serve --platform ioscargo-bundle/tauri-bundlerxbuildtuggercargo-instrumentscargo-lipocargo-cocoapodsfruitbasketapple-platform-rs,apple-bundleBut 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:
Info.plist).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/rust-xcode-langspec, a Source Editor Extension andcargo-xcode? Ideally, we'd want full LSP-like support, and probably eventually some kind ofIBAction/IBOutletsupport, 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.