A new company called Virtual is claiming that it can imitate nearly any Android or iOS device almost perfectly in software, on any platform, with nearly ‘native quality’ performance. It does this with a combination of virtualization and emulation technology and it could change the way that developers test apps.
Chris Wade started out hacking the iPhone in its earliest days, and contributed to some of the first jailbreak exploits. Since then, he’s dabbled in a variety of hardware and software hacking projects. Back in 2011, he launched his newest endeavor: an attempt to create an open-source iOS device emulator called iEmu.
Though Wade got the funding he needed via Kickstarter, he cancelled the project, fearing that getting public funding would make him a target for litigation. Emulation, after all, requires impersonating proprietary hardware, and though there are some precedents in place for duplicating out-of-date devices, the iPhone is very much still around.
That’s where Virtual comes in. It’s the spiritual successor to iEmu, but instead of just iOS, it also handles emulating Android devices.
“The idea was to move away from emulation and go to full-blown virtualization,” Wade says. Virtual allows a user to purchase a license to run a certain amount of iOS or Android devices with as close to real hardware capabilities as possible. Wade claims that Virtual has managed to virtualize the ARM core and emulate peripherals that allow it to double as almost any Apple TV, iPad or iPhone.
Virtual is currently working with HP to evaluate their Moonshot ARM servers, which will be available later in 2014. The servers allow Virtual’s proprietary hypervisor to manage virtual machines for both iOS and Android, markets that are dominated by ARM.
Wade says they’ve been seeing “really phenomenal” performance from the new HP servers.
The advantage to virtualization and emulation over simulation is manyfold. There are the performance gains, of course. Wade says that virtualization and emulation offer a significantly more accurate representation of the physical device at a low level, which means they offer a more accurate development and testing experience.
Apple famously states over and over in its programming and testing guidelines that developers should test on a real physical device, in order to get a feel for how their code will act in the real world. But even Apple provides a simulator (not an emulator) that allows developers to get some real-time feedback on how their apps are running.
The advantage to Virtual would be the ability to spin up dozens or hundreds of devices to run testing on — devices that work and feel almost exactly like the hardware that they’re pretending to be. That specificity is especially useful in certain arenas like security, malware testing and distributed apps.
Virtual also allows developers to spin up devices with any version of iOS they need at that moment. Currently, developers have to carefully preserve older versions of iOS for testing, as they can’t downgrade devices if they need to quash a bug or test performance on legacy code.
Bug hunting would also get a major upgrade with Virtual, as the platform allows users to record sessions, save them at a particular state, play them back and share them with others. A sort of Time Machine for debugging.
Virtual could also act as a replacement for services that offer real, physical devices for rent like Appurify, the company that was just acquired by Google in its ongoing battle with Apple over who can offer the most complete set of developer tools.
Another feature of Virtual is that it can be used to run iOS devices on OS X. This would mirror the announcement Google made at I/O about allowing Android apps to run on Chromebooks — but for both iOS and Android.
The service is in closed beta, but Virtual is selling licenses and has over 10,000 sign-ups for the beta. They’re for the on-site version, which runs on local hardware and becomes the responsibility of the purchaser.
“I also hired some of my friends in the iOS community to really focus on the developer experience,” says Wade.
One of the more notable of those hires is Nicholas Allegra, an iPhone hacker also known as @comex. Allegra was responsible for the JailbreakMe iPhone hacking tool, which was used to jailbreak millions of iPhones in 2011. Allegra was later hired as an intern at Apple, then left due to a paperwork snafu. He then moved on to intern at Google.
Wade says Virtual has been bootstrapped so far, but that they’re considering taking some funding to offset their hardware costs.
Of course, you can’t look at a system like Virtual and not wonder what the legal ramifications are of emulating Apple hardware and/or Google software so closely. Right now they’re in closed beta, so there is probably not a ton of risk, but if they decide to launch publicly, they’re going to have to have a solid strategy for fending off legal departments. If not, well, Virtual could still be acquisition fodder for either Google or Apple.
Also, there is the fact that I haven’t been able to vet any of Wade’s claims about the performance of Virtual’s VMs. He did take me through a demo of firing up an instance of an iOS device, complete with installed apps and access to pass-through hardware like Wi-Fi, and that seemed to work just fine. But until they’re ready to share benchmarks or performance data, it’s worth noting that they’re all just claims for now.
The concept is cool, though. They appear to have paying customers and it looks good demoed in a remote session. So now, let’s see if they can deliver. If they do, it could be an inflection point for device testing and debugging.