How are the blatant anti-competitive practices of Apple just…allowed? How is this even possible?
For example:
You MUST use Apple’s own apps (iMessage, Phone, etc.) as well as Apple’s own App Store
To be fair, the EU is doing work to solve this particular issue…but most of the reforms are only for EU customers
You have to use WebKit when developing a browser for macOS iOS and iPadOS, you can’t use Gecko or Blink
iOS apps must be developed using XCode IF YOU WANT TO PUBLISH IT ON THE APP STORE, which is only available on MacOS…
That last one is weird. Why can’t you compile Swift outside of MacOS (i.e. third party IDEs)? Why can only XCode do it?
edit: Gecko and Blink based browsers are available on macOS. I learnt something new today. Not for iOS or iPadOS though. Also, Xcode is only a requirement for publishing in the App Store. You are able to compile Swift in any OS. You'll just need to distribute the app via sideloading and/or third-party app stores (in the EU)
Why wouldn’t they be able to? Acceptance to their App Store requires that apps be built with a trusted tool chain. Their reasoning is that it’s harder to built malicious apps that might make it past review if you’re using their tools.
You don't really; a cross compilation with a compiler that can generate the ARM instructions for Apple's ARM CPUs should largely just work.
However, it's impossible to test the produced app without using an iPhone or MacOS's tools to simulate running on an iPhone. You also are just going to have way less of an uphill battle using Apple's tools and you're likely to get better optimized binaries.
You also don't have to build iOS apps with Swift; C++ and things like Qt can be used.
Also the iOS SDK isn't freely available, so you'd have to copy that out of an Xcode installation... but given enough time and effort, you could almost certainly hack together a cross-compilation config for Clang that compiles an unsigned iOS app on Linux. Signing it might in fact be the bigger issue, since I'm not aware of any tools that sign Mach-O binaries on Linux.
Something to implement signing given the key to sign with could almost certainly be created.
I think the biggest reason this stuff hasn't really happened is ... there's not much motivation and Apple will likely respond to such efforts unkindly so you might need to be a bit of a curious masochist (or at least in strange circumstances) to attempt such an effort 😅
I don't use iOS anymore but users don't complain about the walled garden, or they would buy an Android. They want their phone to work reliably like a washing machine with a few buttons, and it's an acceptable personal choice.
Edit: now you're downvoting the fact that people have different preferences than you. Pathetic.
I’m not a software hobbyist anymore. I don’t want to spend hours doing research and trying to de-enshittify my new phone. I know Apple is ripping me off, but if one believes that time is money, it’s actually tolerable. Then there’s the UI, which I believe is the best in the market.
I’m not a fan of Apple’s walled garden, but for me, it’s the lesser evil. If someone goes with Samsung or something, though, I’d be a dick if I was a snob about it. Use what you like!