back to article Is your iOS app piling on weight? Blame Xcode 8.3: We shed light on Apple's bloat riddle

Apple's iOS 10.3 this week brought with it minor storage space gains, thanks to the debut of the iGiant's revised storage scheme, the Apple File System. But among app developers, such efficiency gains, a gigabyte or two of extra capacity, were undone by binary bloat brought on by Apple's development suite Xcode, specifically …

  1. This post has been deleted by its author

  2. SuccessCase

    Hmm, I'm highly suspicious about this. Bit code would not inflate the size of the binary to anything like that extent, if at all. Much more likely is that this development team has simply, directly or indirectly, used some SWIFT. It may be one of the frameworks nearly every development project will use. It may even be an Apple supplied framework. Apple are using SWIFT with ever more frameworks, and as Apple's own frameworks are precompiled and the SWIFT use can be entirely behind any frameworks used by this company's app, Apple could easily have done this in a way that meant the developer didn't have to change any compiler settings that would have alerted him to the fact SWIFT is now being used.

    For now, while SWIFT is a young language, Apple want to ensure the language can be revised. A problem for many languages before SWIFT has been that the fundamental syntax and compiled code structure gets locked down before anyone has a chance to use the language, as it were, "in anger." To overcome this Apple are simply revising the language for a period of time and provide the migration tools to update existing swift code with any revisions. But this then poses a versioning problem. If structure of compiled code is revised, compiled code will be incompatbile with compiled frameworks if from different "versions" of the language. To overcome this, during a fixed initial period, when a developer uses SWIFT or a framework requiring SWIFT, a version of the entire SWIFT "runtime" compatible with the SWIFT version used in the App (it isn't actually strictly a runtime but the phrase will do here), is included with the App. This, understandably adds a large overhead. Once the SWIFT language reaches its final form, then apps will use common library code and there will be a significant reduction in App binary size.

    1. Dan 55 Silver badge

      Hmm, I'm highly suspicious about this. Bit code would not inflate the size of the binary to anything like that extent, if at all.

      The article suggests the final binary shouldn't be inflated but the extra bitcode means you might come up against your upload limit when trying to get it on the store if you compile with Xcode 8.3 whereas before you didn't with Xcode 8.2.

  3. Kristian Walsh Silver badge

    That does sound plausible, and it fits the general disarray and lack of planning that's surrounded Swift since its launch. ("well, we looked at the mess that is Python 2/3 and thought 'hey, we're Apple, our developers will totally follow us when WE break source-code compatibility!")

    As for even including bitcode in submissions in the first place, I can see two reasons: first, it's easier to screen the Intermediate Language inside those files than the optimised machine-code that actually gets run, so bitcode makes it easier to find unauthorised API calls, malware, or anything else that Apple doesn't want to accept. The second is that I'd imagine that Apple was simply leaving the door open for Intel-powered iThings, or ARM-powered macThings (or, heaven-forfend, a touch-enabled Mac that could run iOS apps?).

    Microsoft does this second bit already with its Universal Windows Platform: your submission is in CIL (the interpreted byte-code used by all .Net languages), which the Store backend compiles down to a native x86 or ARM binary as appropriate depending on your target platforms.

    (and, one small thing? Apple's contribution to the technology world having too many programming languages is called "Swift". It's not an acronym, it's just a word. "SWIFT", in capitals, is how banks transfer money between each other.)

  4. Anonymous Coward
    Anonymous Coward

    Do we know for sure app sizes didn't increase too?

    Several well known apps seem to have massively grown in size recently... Suspicious..

  5. Anonymous Coward
    Go

    I can't help thinking that one or more of Blockchain, DevOps, IOT, The Cloud, Trump, Article 50 and being able to tweet from your watch will somehow solve all of this.

    1. Anonymous Coward
      Anonymous Coward

      Trump will solve it

      He'll make bitcode great again!

  6. Daniel von Asmuth
    Facepalm

    Does iOS support AFS?

    The Andrew File System belongs to the class of network file systems and is popular in academic circles?

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Other stories you might like