Live data from Hacker News

XTool – Cross-platform Xcode replacement

github.com

61–70 of 70 posts

Re: XTool – Cross-platform Xcode replacement

#61

Reminds me of Sweetpad ( https://sweetpad.hyzyla.dev/ ), which is a bit tedious to setup, XTool seems to provide a better DX, huge wish for this project to grow!

Also it shares something in common with XcodeGen (https://github.com/yonaskolb/XcodeGen), especially on using a yaml format to define the project's information

Re: XTool – Cross-platform Xcode replacement

#62

Earlier quoted context omitted.

I think you are mixing some different concepts here. It's not that this is a layer on top of Xcode/xcodebuild, it's just that Apple today happens to package everything iOS/Swift-related together with Xcode releases. So even if you couldn't care less about the Xcode IDE itself or the xcodebuild build system, you still need to have it because this is the only way for you to download / install those toolchains. Apple co…

xtool creator here, this is correct. it wouldn’t have been possible to support Linux if xtool was just a layer on top of Xcode, as Xcode doesn’t run on Linux. we only need Xcode to be installed on macOS since it bundles the iOS SDK (ie all the header files.) similarly, we ask the user to supply a copy of Xcode.xip during the setup process on Linux in order to extract the SDK. it definitely depends on your definition…

I've been developing a fairly popular macOS app for years. I consider myself in the community for that reason.

Apple has bundled everything together in a big mess.

- Only certain macOS versions can run certain XCode versions

- Only certain XCode versions contain certain SDK versions

- XCode embeds "Command line tools" which contains things like gcc, ruby, python, installed as a package, and conflicting with other versions on the machine

- Interface Builder is built into XCode and has its own compatibility story

It's a big messy blob and you can't pick-and-choose parts. You have to update your whole machine to move to the latest OS so they will let you run the latest XCode, so your app can compile on the latest platform for your users. It's not the best experience for sure. Many ecosystems have SDKs that you can download as you wish. I don't need to update my OS to download a version of the JDK for example.

That being all said, if you require users to download XCode, regardless of which part of it is necessary, i don't think you should mention "XCode free experience" or "XCode replacement".

I'm already developing a macOS app without launching the XCode GUI. I use the xcodebuild CLI that ships with XCode. My IDE is AppCode. I also use xcodebuild on CI to build the app headless. I would never call that a XCode free experience though, as i suffer from all the issues i mentionned above with version upgrades and XCode issues

Re: XTool – Cross-platform Xcode replacement

#63

Earlier quoted context omitted.

xtool creator here, this is correct. it wouldn’t have been possible to support Linux if xtool was just a layer on top of Xcode, as Xcode doesn’t run on Linux. we only need Xcode to be installed on macOS since it bundles the iOS SDK (ie all the header files.) similarly, we ask the user to supply a copy of Xcode.xip during the setup process on Linux in order to extract the SDK. it definitely depends on your definition…

I'm not too familiar with the xcode dev environment; could Theos be used instead of the huge xcode bundle? As far as I know, it provides the compilers and frameworks directly.

I’m also one of the maintainers of Theos :)

When you use Theos outside macOS, you have to install a toolchain and SDK. The toolchain is built from LLVM + cctools, and is in fact very similar to the one we use in xtool (I maintain both.) The SDK is hosted on GitHub and I could’ve decided to use this instead of getting the user to supply a copy of Xcode, but the copyright status is iffy; there’s an argument to be made in light of Google v. Oracle but I didn’t want to take any chances.

Re: XTool – Cross-platform Xcode replacement

#64
post #18

Earlier quoted context omitted.

Epic Games sure is proving to be a formidable opponent, but they might be getting a little optimistic with thinking that Fortnite will be allowed to return to the App Store; after all, while they have been squabbling over App Store policies, I don't think any of the rulings imply that Apple still can't keep specific titles banned from the App Store at their discretion. In that particular case I kinda feel like Apple…

IMHO it's a matter of principle, showing the bully he has limited power no matter how big his muscles are.

[deleted]

Re: XTool – Cross-platform Xcode replacement

#65
post #26

Earlier quoted context omitted.

You can't install XCode on non-Apple devices. Or use iMessage.

you can still install xcode - and also still use imessage if you configure your vm correctly, see kholia/OSX-KVM

I tried that, and I can't make it work. Sigh.

Re: XTool – Cross-platform Xcode replacement

#66
post #57

JetBrains used to develop AppCode: AppCode A smart IDE for iOS/macOS development AppCode is no longer available as a commercial product as of December 14, 2022. https://www.jetbrains.com/objc/

It likely doesn't help the ObjC part of that story, but they moved the Swift part out into a CLion plugin https://plugins.jetbrains.com/plugin/8240-swift Regrettably I didn't see that they did anything with the ObjC part, choosing to /dev/null it

Unfortunately, even that isn't supported any longer. I do a lot of server-side Swift development and would LOVE to be able to ditch Xcode for CLion and the Swift plugin.

Re: XTool – Cross-platform Xcode replacement

#67
post #25

Earlier quoted context omitted.

It seems that Fleet will support building XCode apps. It looks like a big regression from AppCode. As of today Fleet doesn't compile my macOS app. I try regularly on new updates. No alternatives, unfortunately

Fleet will also most likely get abandoned as people who pay for an IDE highly prefer the older one and people who want VSCode use VSCode I also think any revival of AppCode is also dead as JetBrains is all in on Kotlin everywhere. iOS multiplatform support hit stable recently.

JetBrains already announced it is no longer targeting Fleet as its iOS strategy for Kotlin Multiplatform. Instead it will be realizing its strategy through IntelliJ IDEA and Android Studio.

Re: XTool – Cross-platform Xcode replacement

#68
post #57

JetBrains used to develop AppCode: AppCode A smart IDE for iOS/macOS development AppCode is no longer available as a commercial product as of December 14, 2022. https://www.jetbrains.com/objc/

It likely doesn't help the ObjC part of that story, but they moved the Swift part out into a CLion plugin https://plugins.jetbrains.com/plugin/8240-swift Regrettably I didn't see that they did anything with the ObjC part, choosing to /dev/null it

Objective-C has been supported in Clion for years: https://www.jetbrains.com/help/clion/objective-c-c-support.h...

Re: XTool – Cross-platform Xcode replacement

#69

Earlier quoted context omitted.

I'm not too familiar with the xcode dev environment; could Theos be used instead of the huge xcode bundle? As far as I know, it provides the compilers and frameworks directly.

I’m also one of the maintainers of Theos :) When you use Theos outside macOS, you have to install a toolchain and SDK. The toolchain is built from LLVM + cctools, and is in fact very similar to the one we use in xtool (I maintain both.) The SDK is hosted on GitHub and I could’ve decided to use this instead of getting the user to supply a copy of Xcode, but the copyright status is iffy; there’s an argument to be made…

That makes sense, thanks!

I'm excited for the possibility of this being integrated with multiplatform frameworks like KMP. I wouldn't need to boot up my hackintosh anymore :)

Re: XTool – Cross-platform Xcode replacement

#70
post #45

Earlier quoted context omitted.

It sounds like this "cross-platform xcode replacement" isn't cross-platform, and ios app developers still need macos?

But that's wrong. You don't need macOS. That's why they say "cross-platform Xcode replacement". You just need the SDK, which can be used on every platform.

Thank you. I did not make it clear enough that I was asking for clarification there.
Post reply on HN