Mobile app developers have searched long and hard for the “Holy Grail” of app development: code an app once and have it run on every mobile platform. While some cross-platform development tools do exist (ie Xamarin, Phonegap, Appcelerator), none of these technologies are one-size-fits-all. Recently, a group of students at Columbia University have lessened the need to develop for multiple platforms. They have successfully bridged the gap between the two most popular mobile platforms with a tool called Cycada (formerly Cider). Cycada is an operating system compatibility architecture that allows you to run applications built for different mobile ecosystems (iOS and Android) together on the same device.
The students’ professor Jason Nieh goes on to describe how they have achieved this: “This is accomplished using a novel combination of binary compatibility techniques including two new mechanisms: compile-time code adaptation, and diplomatic functions. Compile-time code adaptation enables existing unmodified foreign source code to be reused in the domestic kernel, reducing implementation effort required to support multiple binary interfaces for executing domestic and foreign applications. Diplomatic functions leverage per-thread personas, and allow foreign applications to use domestic libraries to access proprietary software and hardware interfaces.”
Videos of Cycada demonstrate that they were able to run the Yelp, Apple Remote, iBooks, and Stocks iOS apps on a Google Nexus 7 Android device alongside Android applications. Some of the apps did show some noticeable lag, but there was no visible performance degradation in their demonstration of a 3D game the leverages the OpenGL framework.
Cross-platform mobile development may have just taken a huge leap forward with Cycada. This is exciting news for any mobile developer, or any fan of smartphones in general.