As of February 1st, Apple is insisting that all new app submissions must support the firm’s 64-bit processors, and, come June 1st, updates to existing apps also need to support 64-bit.
Just as mobile developers must race to comply with these new requirements, so too must tools providers such as Marmalade ensure that their products help studios in this matter.
Marmalade is currently working hard to add 64-bit support to all of its software, removing the hassle for developers by automatically compiling apps in a way that meet Apple’s needs.
The firm’s head of SDK, Tony Waters, sheds a little more light on what this change involves, and why it’s necessary.
“The 64-bit processors – found in the iPhone 5s, iPad Air, iPad Mini 2 and 3, iPad Air 2, iPhone 6 and 6 Plus – include twice as many integer and floating point registers as the earlier processors,” he says. “This means a 64-bit app can work with more data at once for improved performance.
“There should be a performance gain just by recompiling for 64-bit, but apps that make use of extensive 64-bit maths or custom inline assembly routines using the new AArch64 instruction set will see greater improvements. Generally, 64-bit apps run more quickly than their 32-bit equivalents.”
Waters adds that there’s another, more subtle reason for Apple’s switch over to 64-bit: “When both 32-bit and 64-bit apps run, there are separate 32-bit and 64-bit versions of the iOS system frameworks. If all apps are 64-bit, iOS won’t load the 32-bit versions, so it uses less memory and launches apps more quickly.
“Even if your app doesn’t gain much performance from switching to 64-bit, if all other apps the user has are 64-bit, you will gain from the memory efficiency of not loading the 32-bit system libraries.”
It might sound complicated, but Waters assures developers that the conversion process is “relatively straightforward” – although there are a couple of things that studios need to consider.
“Many built-in data types have increased sizes or have stricter memory alignment rules, so developers will need to review their code, especially if they have 32-bit assumptions,” says Waters.
“Also the 64-bit ARM instruction set is significantly different from the 32-bit ARM architecture, so inline assembly routines will need suitable AArch64 versions for when running on a 64-bit device.
“From a Marmalade developer perspective, we have made supporting 64-bit apps as easy as possible with new options in Visual Studio or Xcode for building 64-bit binaries.”
In fact, Marmalade’s tools make it easy for developers to support both architectures. It’s key to remember that there are still many non-64-bit devices on the market, so it’s worth continuing to maintain 32-bit support within apps.
The company has a dedicated section on 64-bit support on its Marmalade Answers web page, while Plus and Pro customers can contact Marmalade Professional Support.
Marmalade is also looking to add 64-bit support for Android apps in the near future, given the number of 64-bit processors added to Android and Nexus devices.