This is the type of research project that will probably have Steve Jobs turning in his grave. A team of engineers from Columbia University have developed Cycada, formerly Cider, a compatibility architecture that would let iOS apps run on Android without heavy virtual machines or convoluted compatibility layers.
When it comes to getting one OS’ software to run on another OS, virtualization is usually the answer to such situations. However, the mobile hardware and software architecture have not yet standardized the way PCs have, making such a solution difficult to implement, if not impossible. Then there is WINE, which is a backronym that means “WINE Is Not an Emulator”, that allows Windows apps to run on Linux to some extent. However, what WINE’s developers do is to practically reimplement the Windows API (application programming interface) in order to mimic a Windows system.
Cycada, on the other hand, takes a different approach. They have developed a new method called compile-time code adaptation, which lets them build code meant for other operating systems on Linux, which is Android’s base, without modification. They also use what they call diplomatic functions to replace iOS system functions, letting an app call equivalent Android system functions instead. They do not reimplement iOS API like WINE does but instead reuse those to keep things simple.
Computer science professor Jason Nieh, who leads the team composed of five Ph.D. candidates, hopes that Cycada will inspire more research into cross-platform standardization. On a practical level, however, this could open the flood gates of getting popular iOS exclusive apps, which are admittedly many, running on Android devices. The team has not revealed how easy, or difficult, that will be nor have they actually released Cycada for the general populace. There is also the matter of Apple chiming in on this effort, which might violate some policy or ToS or whatnot. At the very least, they will most likely not be happy about it.