Hacker News new | ask | show | jobs
by atombender 2631 days ago
iOS apps can use whatever rendering engine they want. The restriction is on JIT -- Apple doesn't allow apps to compile native code on the fly, which modern JavaScript engines like V8 do. The exception is Apple's own JavaScriptCore, which works with WebKit.

In theory you could have Firefox Quantum as a tenderer with JavaScriptCore as the JS engine, but that might be more work than it's worth.

2 comments

> iOS apps can use whatever rendering engine they want. The restriction is on JIT

Wrong.

> 4.7 HTML5 Games, Bots, etc.

> your app must use WebKit and JavaScript Core to run third party software and should not attempt to extend or expose native platform APIs to third party software

https://developer.apple.com/app-store/review/guidelines/

You're not contradicting me. The section you're quoting is not about this, by the way. You want section 2.5.2:

"Apps should be self-contained in their bundles, and may not read or write data outside the designated container area, nor may they download, install, or execute code which introduces or changes features or functionality of the app, including other apps."

Yeah, but if you read carefully, section 4.7 explicitly says that you must use WebKit and JSC to run third party software. Therefore, you can use your own engine to render your app (see games or Google's Flutter), but you cannot use it to render third-party content (thus making impossible to create a browser)
Oh interesting.
There is 2.5.6 > Apps that browse the web must use the appropriate WebKit framework and WebKit Javascript.

https://developer.apple.com/app-store/review/guidelines/