Android for All
Android is currently the biggest mobile platform in the world, but Apple's iOS remains an extremely ubiquitous platform with a huge install base. While competition between different mobile platforms is important, having two or three dominant mobile platforms isn't an ideal solution for developers or users. Our team wanted to bridge the gap between Android and iOS just to see what it would be like. Our initial vision was simple but ambitious: provide users with the ability to run Android apps on iOS.
Our eventual solution went a little bit further than apps: we built a full Android environment running inside your iPhone. We even used the newest version of Android possible, the L developer preview!
To build our solution, we looked at current cloud gaming solutions. Products like NVIDIA's GameStream and Onlive can achieve extremely low latency and a near-native experience. All the user needs is an internet connection. We asked ourselves: what if we replace the game with a mobile phone OS? The controller becomes the touch screen and the phone's sensors. We can bring this near-native experience to mobile platforms.
We did just that, and it works great.
We looked at existing solutions to this problem. There was an old port of Android for the iPhone 3G, but this required significant effort on the part of the user: jailbreaking and installing an alternative OS. This is unacceptably difficult for most people. There are ports of Android's Dalvik VM to iOS, but Android changes so rapidly that these apps would become obsolete within half a year. Apple's App Store policy also explicitly prohibits apps such as this, so you'd need to jailbreak your iPhone anyway.
- Having a "phone inside your phone" is extremely advantageous to developers. We plan to partner with app stores to allow users to try full versions of apps instantly with the push of a button instead of having to download a "lite" or free version.
- We can allow interested users to "buy" a virtual phone of their own, allowing them to download and run any Android app they want to get a full Android experience, even on iOS devices.
Limitations and solutions
- Currently, our solution runs as a native iOS app backed by a server. This may not be practical because of Apple's relatively strict app approval process, so we plan to work around this with a robust HTML5 web client. Later, we will bring Android for All to Windows Phone, desktop and even Android platforms, allowing you to have a phone "in the cloud" with full synchronization across all your devices.
- Many sensors (camera, microphone) don't work just yet. Adding support for more sensors is trivial given more time, but we wanted to push out a polished product in the 36 hours we were allocated. Adding support for telephone is another challenge, but it's certainly possible. Our solution has full support for data, however.
- Our app requires an internet connection. With the mass proliferation of data plans and WiFi hotspots and further development of LTE technology, we don't imagine this to be an issue for much longer.