Xamarin is encouraging developers to begin adding 64-bit support to their iOS apps. The request comes only two months before Apple’s February deadline for new app submissions to be built against the iOS 8 SDK with support for the 64-bit architecture.
Xamarin’s mobile development platform makes it possible to develop native cross-platform mobile apps using C#. The company has utilised the open-source Mono toolchain to create compatible runtimes for iOS and Android. On iOS an AOT (Ahead-of-Time) compiler compiles C# applications to native ARM assembly code. On Android C# is compiled to an intermediate language, which in turn is Just-in-Time (JIT) compiled on the device. Developers can therefore write their application once and execute it on iOS, Android and Windows Phone.
As a first step in enabling support for 64-bit iOS applications Xamarin announced a new unified API for iOS and Mac in August. The key difference between the unified and old APIs was the use of architecture-specific data types, that are always 32-bits on 32-bit platforms and 64-bits on 64 bit platforms. For example, Xamarin have replaced the usage of the int data type in favour of a new System.nint type, where the ’n’ prefix stands for native e.g. native int. The nint type matches the behaviour of Apple’s NSInteger data type, which is 32-bits on 32-bit platforms and 64-bits on 64-bit platforms. Similarly 64-bit compatible data types have been introduced for unsigned ints (System.nuint) and floats (System.nfloat).
Xamarin’s unified API for iOS and Mac remains in beta and is available via the company’s alpha channel. In last week’s announcement Xamarin indicated that the first non-beta release will be available on the 5th January 2015. Developers of libraries and plugins for the Xamarin platform are encouraged to begin the migration to the new APIs immediately. Mobile app developers are recommended to await the first non-beta release in January, at which point 64-bit compatible releases of their dependent libraries and plugins should be available.
In October Apple announced that developer’s will be required to support both 32 and 64-bit architectures in any new apps submitted to the store from February 1st 2015. This was followed by an announcement on the 17th December, which stated that all updates to existing apps must be 64-bit compatible from June 1st 2015.