Yes, you're right that interpreters also allow users to run code. And we could argue that Apple is simply being inconsistent in how it applies its policies. I think realistically the difference is in how popular these newer vibe coding apps are, but also the fact that they have a much broader scope of what can be generated.
With Pythonista or a Lua-scripted game, the reviewer can assess what's possible: this app can do everything Python-with-this-API-surface can do, and nothing more.
With LLM-driven generation, the set of possible behaviors isn't fixed. The same Replit app can produce totally different behaviors next month than it can today, without ever being resubmitted, based on model or system prompt updates.
That's what I meant with "you can't review adaptive software".
I think the main "issue" is that Apple won't be able to properly take their beholden 30% or whatever their fee is nowadays. A "wrapper" app has no real value by itself so they can't put a serious cost on it, but once it's on a user's device it can be used to create unlimited things of high value. Apple definitely doesn't want to miss out on taxing that value in their ecosystem, so it's easier to just block it and force devs to stick to apps with a appraisable value.
The set of behaviors is certainly fixed or constrained with an LLM exactly the same way as an interpreter- if neither one has an escape from the pre-programmed APIs included in the app, they can’t escape regardless of what they do. Apple allows interpreters that run entered or downloaded code like programmable calculators and even more powerful environments. There’s nothing special about an LLM creating an app.
The argument in the post isn't that the enforcement is unfair, more that the rule might not make sense much longer now that software can write itself. Rule was written for a world where the artifact reviewed and the artifact running were the same thing. That assumption is breaking, and not just for vibe-coding apps.
The argument is silly, dev tools that allow you to run code were never allowed. There is no selective enforcement here and nothing has changed doesn’t matter if the code was written by a human or not.
Apple doesn't want software that can write itself available on its app store. I don't want software that can write itself running on my device. So for once Apple's priorities and the consumer's align.
I think ultimately GenUI can be integrated into apps more seamlessly, but even if today it's more in context of chat interfaces with prompts, I think it's clear that a wall of text isn't always the best UX/output and it's already a win.
You can make bank transfers out (HK / international) with a business account. For personal accounts you can spend with the card at the moment, but bank transfers are coming soon.
With Pythonista or a Lua-scripted game, the reviewer can assess what's possible: this app can do everything Python-with-this-API-surface can do, and nothing more.
With LLM-driven generation, the set of possible behaviors isn't fixed. The same Replit app can produce totally different behaviors next month than it can today, without ever being resubmitted, based on model or system prompt updates.
That's what I meant with "you can't review adaptive software".
reply