Apple App Store: Difference between revisions
m wanted: JS; link Py & Lua to WP |
m rm JIT explanation, rely on WP links; linkify many terms |
||
| Line 120: | Line 120: | ||
==JIT== | ==JIT== | ||
[[wikipedia:Safari_(web_browser)|Safari]] is allowed to use [[wikipedia:Just-in-time compilation|JIT]] to compile code from any site, just like Apple's [https://apps.apple.com/app/swift-playgrounds/id908519492 Playgrounds] app on iPad. Playgrounds bundle Apple's [[wikipedia:Swift (programming language)|Swift]] compiler and share back-end code with the version of Playgrounds found in [[wikipedia:Xcode|Xcode]]. | |||
Third-party apps, such as Pythonista (a [[wikipedia:Python_(programming_language)|Python]] [[wikipedia:Integrated_development_environment|IDE]]), emulators like Delta and [[wikipedia:UTM_(software)|UTM]], and [[wikipedia:Terminal_emulator|terminal]] environments like iSH, are not allowed to use JIT; instead, they must [[wikipedia:Interpreter_(computing)|interpret]] code, which results in severe performance degradation and increased computational expense, potentially draining more battery. | |||
An example of apps being heavily affected by this restriction is UTM. UTM is a port of [[wikipedia:QEMU|QEMU]] for iOS, iPadOS, and macOS, allowing users to create [[wikipedia:Virtual_machine|VMs]] that can run various operating systems, such as Microsoft Windows. The iPhone's hardware is capable enough to emulate various modern OSes at full speed. Still, due to Apple's JIT limitation, the team behind UTM had to create UTM SE (slow edition), which doesn't require JIT but is nowhere near as fast as UTM with JIT, only being capable of running MS-DOS and derivatives at acceptable speeds. While methods that enable JIT for apps other than Safari and Playgrounds exist (some are currently working on iOS 18.5, like [https://apps.apple.com/us/app/stikdebug/id6744045754 StikDebug]), Apple does not allow the use of JIT in notarized apps, meaning that apps that support JIT will have to be sideloaded, which comes with its own set of restrictions. | An example of apps being heavily affected by this restriction is UTM. UTM is a port of [[wikipedia:QEMU|QEMU]] for iOS, iPadOS, and macOS, allowing users to create [[wikipedia:Virtual_machine|VMs]] that can run various operating systems, such as Microsoft Windows. The iPhone's hardware is capable enough to emulate various modern OSes at full speed. Still, due to Apple's JIT limitation, the team behind UTM had to create UTM SE (slow edition), which doesn't require JIT but is nowhere near as fast as UTM with JIT, only being capable of running MS-DOS and derivatives at acceptable speeds. While methods that enable JIT for apps other than Safari and Playgrounds exist (some are currently working on iOS 18.5, like [https://apps.apple.com/us/app/stikdebug/id6744045754 StikDebug]), Apple does not allow the use of JIT in notarized apps, meaning that apps that support JIT will have to be sideloaded, which comes with its own set of restrictions. | ||