Open madsmtm opened 1 year ago
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.
Swift has something called Package Plugins, specifically the "build tool plugin" may allow us to easily invoke Cargo from Xcode
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
?
rustc
issuesVarious issues that would benefit Xcode integration:
ld
/ld64
is fairly good at reporting problems, and we want to surface those)Paths are weird:
Rpaths are weirder:
There is a bunch of Rust tools out there that ease access to (parts of) Xcode:
cargo-xcode
cargo-dinghy
cargo-mobile
/cargo-mobile2
crossbundle
/crossbow
cargo-bundle
/tauri-bundler
xbuild
tugger
cargo-instruments
cargo-lipo
cargo-cocoapods
fruitbasket
apple-platform-rs
,apple-bundle
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 (https://github.com/madsmtm/objc2/issues/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
, a Source Editor Extension andcargo-xcode
? Ideally, we'd want full LSP-like support, and probably eventually some kind ofIBAction
/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.