The wall between operating systems may be nonexistent soon. Computer science students from Columbia University have developed an operating system compatibility architecture to run applications built for different mobile ecosystems like Android or iOS on the same device.
Cider, an operating system compatibility layer, currently allows iOS apps to natively run on Android.
(Related: Native Visual Studio on Android, too)
“Apple has done a great job creating some polished apps, and it’s been historically faster and easier for developers to monetize an app using iOS,” said Jeremy Andrus, Ph.D. student at Columbia University. “A lot of these apps don’t have corresponding Android apps, and some apps like iTunes or iMessage will never be available on Android. Due to Apple’s strict approval process for iOS apps, there also tends to be fewer viruses or malware. Cider can bring those apps to Android users.”
The way Cider works is it runs domestic binaries and foreign binaries on the same device by using a combination of binary compatibility techniques such as compile-time code adaptation and diplomatic functions. Instead of using a traditional virtual machine or re-implementing the iOS libraries and frameworks, Cider copies the libraries and frameworks and convinces all that code that it’s running on XNU (Apple’s OS kernel) instead of the Android Linux kernel, according to Andrus.
However, there are some limitations. Currently Cider doesn’t support iOS apps that depend on devices such as GPS, cameras, cell phone radio, Bluetooth and more. Other limitations include incorrect “fence” synchronization primitive support, partial support of the iOS WebKit framework, and the inability to map iOS security to Android security. The team plans to fix these limitations in the future.
“Cider is definitely a work in progress, and we plan to continue research on the project,” Andrus said. “For now, our hope is that developers and researchers can benefit from the new mechanisms.”
More information about Cider can be found here.