Students get iOS apps running on an Android device
A group of Columbia University students have demonstrated a proof-of-concept implementation of iOS apps running on an Android device. The compatibility layer, dubbed "Cider" (get it? Apple? Cider?) isn't an emulator or virtual machine as you might expect — no, it's a compatibility layer designed to allow natively-coded Objective C apps to run on Android. In this case, they're demoing it on a last-generation Nexus 7.
This is very much a proof-of-concept at this time. The iOS apps like Yelp and Apple Remote open and function, but they're all absurdly slow and exhibit substantial lag.
How does Cider do this? We'll let Columbia explain it for you:
Cider enhances the domestic operating system, Android, of a device with kernel-managed, per-thread personas to mimic the application binary interface of a foreign operating system, iOS, enabling it to run unmodified foreign binaries. 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.
Riiiight. In case you didn't track what that means (we'll admit, it's a lot over our heads too), here's a video showing off Cider in action on that Nexus 7: