Apple makes app development hard.

James North
• September 9, 2023 • 25
I’m trying to write an app with React Native because that’s the only sane way to write most cross-platform apps these days. You write it once and it works on iOS and Android, in the same way most modern Graphical Toolkits work on all desktops. But you can’t compile an app for iOS without macOS. And that's not all. This article details all the ways Apple makes app development hard.

(Image by Pexels from Pixabay)

I’m trying to write an app with React Native because that’s the only sane way to write most cross-platform apps these days. You write it once and it works on iOS and Android, in the same way most modern Graphical Toolkits work on all desktops.

But you can’t compile an app for iOS without macOS. Specifically, you can’t compile it without XCode.

That's not all. You can’t run Xcode on "non-Apple branded hardware", which means:

  1. you can't run XCode in a macOS VM, which is itself illegal anyway.
  2. you can't run XCode on Darling (a macOS➜Linux translator) unless you’re using Darling on an "Apple-branded" computer running a GNU/Linux distribution.

Additionally, if you have a Mac computer that isn’t supported by the last major update but is still supported for 2 years of security updates, you can’t install the latest version of XCode, which allows you to compile apps for the latest version of iOS. This makes it functionally useless—your app will only be guaranteed to be supported by phones older than the newest version.

Finally, you need to pay Apple $99 a year to be a developer.

I already own a macOS computer; an Intel iMac. As I’m sure anyone in the space well understands, Intel Mac computers are being retired soon. Sometime in 2025, or maybe 2026, Apple will stop producing a build of the newest macOS version that works on x86 Intel CPUs.

This means I can’t even force my Mac computer to run the latest version of macOS with Open Core Legacy Patcher. There is no viable way to bridge the gap between my x86 Mac and Apple’s new ARM Macs.

There are three more methods I could try:

  1. Macincloud offers macOS computers you can access remotely in order to compile your app. It costs $28 a month (minimum) at the time of writing. In about 3 years, it will cost more than owning a Mac Mini, and that’s not factoring in the latency, code signing, etc. I’m sure Apple gets a cut of this somehow too due to some obscure licensing rule. This is not viable for me.

  2. I could install a GNU/Linux distribution on my iMac, and then compile Darling, and then run XCode. This is legal because I’m using “Apple-branded” hardware to run XCode. However, Darling does not seem to be able to run the latest version of XCode, putting me in the same spot, and it’s still not very reliable. It’s a very cool project, though, and maybe it will be a viable option in two years.

  3. I could use Expo. Expo is heavily-pushed in the official documentation for React Native, and in almost every unofficial tutorial for React Native. That’s because it’s really, really easy to get started with React Native when you use Expo compared to setting up the toolchain yourself. You can even build an iOS and Android app using Expo’s servers…for free. No need to have Android Studio or XCode installed.

    You can even publish your app with Expo. And you still don’t need to pay them any money for the first 30 production builds (a maximum of 15 for iOS) a month. It also has some constraints on the size of the app, but that’s almost certainly enough for most small developers. Even if you need to pay, it’s only $1-4 per build, which is fairly reasonable. Sounds like an amazing deal, right?

    Yeah, it does. There are a few things to watch out for. The biggest one is that it’s painful to add third-party libraries Expo doesn’t already support to an Expo Go app. It’s possible, but not fun. You also end up depending on quite a lot of Expo-specific features not in React Native, and it may not support as many features as React Native. Flatlogic’s article from 2020 provides some more detailed ideas of what to consider. It's possible not all of this criticism still applies, but most of it still seems to.

    Paying for the service isn’t an issue (especially at those prices), but I want to maintain a smaller dependency tree if possible, use third-party libraries when necessary, and I’m wary of other disadvantages. Depending on hundreds of libraries I haven't examined is worrying—Flatlogic talks about how Facebook's libraries were being kept active for Expo projects until 2017, meaning it's possible user's data was being collected. That worries me. I realise I'm already inviting that sort of concern by using React Native in the first place, but I don't want to make it worse. For now, I don’t want to use Expo.

So, none of those options are viable for me.

To continue maintaining the app, I would need to buy a Mac Mini (Apple’s cheapest computer costs $999), probably at the start of 2025. That’s really my only option.

Here’s how it looks on Android:

You can run Android Studio on Windows, macOS, Linux, and ChromeOS. As long as you have Java 11 (we’re on Java 21 now), you’re good. It's even possible to run it unofficially on FreeBSD. You can compile Android apps and run an Android emulator easily. You pay $25 one time to become a developer forever.

That’s it. That’s the deal.

If I don't want to pay Google $25 for the privilege of making my apps available in the Google Play store either, I can release a .apk file on my website that anyone on an Android-based operating system can install, for free. Users could manage updates with Obtainium.

On GNU/Linux operating systems like Ubuntu Touch and Mobian, it's the same deal.

On iOS, you can install them from the App Store and that's it.

On desktop operating systems, you don't need anyone's permission to write software that anyone can install. Not on Microsoft Windows, macOS, FreeBSD, or any GNU/Linux distribution. You just write the code, produce a binary, and the user can install it. Sure, Microsoft and Apple try to stiff you on "protection fees" by forcing you to pay for signatures that show you are an authorised vendor and the software is unlikely to be malware, but that's optional. You might have your customers running scared if you don't pay the cartel, but it isn't a requirement.

iOS is not like this. Users are not free to use whatever software, from whatever vendor, in whichever way they please. It's the Apple App Store, or nothin'. iOS is the only consumer-facing platform which prevents you from even compiling software for it without specical hardware.

Apple makes app development hard. The hard part should be writing the program, but Apple has added friction to every part that comes afterward. And they do it by choice.

Looking to dive into Desktop Linux?

A Guide to Desktop Linux in 2025, available for purchase as an eBook and in Print, is just the handbook you need to orient you on this journey.

Whether you're worried Windows no longer has your best interests at heart, or you're just plain curious, this guide will help you get up and running while avoiding all of the usual potholes and footguns along the way.

If you tried Linux a long time ago, you'll be glad to know all aspects of the desktop have only gotten better over time. You might not even recognise it!

It's not 1998 anymore. It's been over 30 years since Linux was first released, and the Linux Desktop has undergone seismic shifts in usability and capability over the years. This book is designed for the modern age and helps you take advantage of all the latest technology available for desktop Linux. Even if you've used Linux before, things have changed a lot in just the last few years.

That's not to say the Linux Desktop isn't as quirky as it has ever been, but the jankiness has been sanded off in many areas. There's plenty you can do on Linux, and yet it would be a lie to say there isn't a cost to that freedom most of your penguin friends aren't forthcoming about. This guide acknowledges the limitations of the Linux world and doesn't try to hide them from you.

In this book, you'll find chapters about:

  • getting your new Linux distribution setup on your computer
  • providing step-by-step guidance for installation, software compatibility,
  • gaming, and productivity
  • exploring the history of desktop Linux
  • the bright yet uncertain future of Linux

Buy this book now and dip your toes into the weird and wonderful world of Desktop Linux. Just don’t blame me when your house starts filling up with penguin plushies and red hats.

View Desktop Linux Book

J

Written by

James North

Project Manager and Company Director at Evolvepreneur.

Part-time system administrator for Evolve Systems Group.

Part-time writer and author of A Guide to Desktop Linux in 2025.

Visual novel fanatic.

Symfony developer.

Comments (0)

No comments yet. Be the first to comment!

Comments are disabled for this post.

You Might Also Like