1. A method comprising: receiving, at a first device having stored thereon (i) a plurality of mobile operating systems comprising a first mobile operating system and (ii) a first application, an identification indicating a second device is within a proximity threshold of the first device, wherein the second device is running a second application on a second mobile operating system; receiving, at the first device, a first indication that the second mobile operating system El has an ability to execute a specific software library, and (ii) uses a specific theme of a windowing environment; identifying the first mobile operating system stored at the first device as (i) having the ability to execute the specific software library, and (ii) using the specific theme, wherein the first mobile operating system and the second mobile operating system are of one of different operating system types or different operating system versions; launching, at the first device, a virtual instance of the first mobile operating system such that the first device and the second device run different mobile operating systems from each other; receiving, at the first device, a second indication that the second application requires access to the specific software library; identifying the first application stored at the first device as requiring access to the specific software library; launching, at the first device, the first application on the virtual instance of the first mobile operating system; receiving, at the first device, a configuration setting of the second application; based on the configuration setting, synchronizing a state of the first application with the second application; and synchronizing one or more states of the first device and the second device.