Slashdot Mirror


Apple Admits iCloud Problem Has Killed iOS 9 'App Slicing'

Mark Wilson writes: One of the key features of iOS 9 — and one of the reasons 16GB iPhones were not killed — is app slicing. This innocuous-sounding feature reduces the amount of space apps take up on iPhones and iPads... or at least it does when it is working. At the moment Apple has a problem with iCloud which is preventing app slicing from working correctly. The feature works by only downloading the components of an app that are needed to perform specific tasks on a particular device, but at the moment regular, universal apps are delivered by default.

3 of 143 comments (clear)

  1. Re:Can anyone explain in actual meaningful terms? by DigiShaman · · Score: 5, Informative

    https://www.quora.com/What-is-...

    Hello,

    What Apple listed as one feature is actually three separate mechanisms, each playing its own part in reducing app size.

    The primary mechanism – App Slicing – is the one that does most of the work. Because apps need to run on a variety of devices, from the 3.5-inch iPhone 4 to the 5.5-inch iPhone 6 (or 10-inch iPad, for universal apps), they contain separate assets for each of those devices – most of which your device doesn’t need.

    With App Slices, developers tag assets by device, and when you download the app from iTunes, it will only download the assets your device needs. Apple has made this process pretty simple for developers, so it’s likely that many will support it.

    On-Demand Resources (ODR) is the second way to reduce app sizes. ArsTechnica gives the example of multi-level games, where you typically only need the level you are playing plus the next few levels up. ODR means you can download the game with the first few levels included. As your play progresses, the app downloads extra levels and purges the levels already completed.

    Finally, Bitcode. Instead of uploading pre-compiled binaries, developers upload what Apple calls an “intermediate representation” of the app. The App Store then automatically compiles the app just before downloading. This allows it to automatically implement part of App Slicing even if the developer hasn’t bothered to tag their code, downloading only the 32- or 64-bit code as required.

    -Bin Sand

    --
    Life is not for the lazy.
  2. Re:Oh dear god no ... by Sqr(twg) · · Score: 4, Informative

    Nope. That's not what this is. It's about not downloading stuff you don't need, like the iPad-size bitmaps when using an iPhone.

  3. Re:Can anyone explain in actual meaningful terms? by Rosyna · · Score: 4, Informative

    The description of bitcode’s purpose is just a bit wrong.

    Bitcode is designed to remove the requirement of needing multiple architecture slices for architectures that are just slightly different. For example, when the iPhone 5 came out it supported an “ARMv7s” ISA. This added a few new instructions to ARMv7 like integer divide to increase performance. However, in order for developers to take advantage of it, their app had to have executable code slices for both ARMv7 and ARMv7s, increasing binary sizes. Furthermore, it required every library ARMv7s code linked to also have an ARMv7s slice.

    This quickly became a pain in the ass and ARMv7s was dropped in Xcode 6.

    Bitcode would address this issue. A developer would compile their app to Bitcode (a specific type of LLVM IR) and then Apple would later compile it fully into the target ISA.

    This is especially relevant for ARMv8 as ARMv8.1 is the latest version with slight changes.