A method of presenting an application on both an auxiliary device (206; 404) and a primary device (202; 402), the primary device having a processor and a primary computing environment, the method comprising: executing, on the processor, instructions that cause the primary device (202; 402) to: present the application as a set of user interface elements on the primary device (202; 402) within the primary computing environment; responsive to a user request to partition the application between the primary device (202; 402) and the auxiliary device (206; 404): distributing the set of user interface elements over a primary application portion presented on the primary device (202; 402) and an auxiliary application portion presented by the auxiliary device (206; 404) by rearranging the set of user interface elements into a first user interface element collection presented on the primary device (202; 402) and a second user interface element collection presented on the auxiliary device (206; 404), further comprising: establishing a connection with the auxiliary device (206; 404); detecting the device property of the auxiliary device (206; 404); generating an auxiliary computing environment adapted from the primary computing environment according to the device property of the auxiliary device (206; 406), within which auxiliary computing environment the auxiliary application portion is presented; transmitting the auxiliary computing environment to the auxiliary device (206; 406), and adapting the provision of the auxiliary computing environment in order to provide an adequate user experience on the auxiliary device by estimating a maximum quality of the application that the primary device is capable of driving without compromising the quality of the presentation and constraining the application to a resource limit that maintains the presentation quality of the application on the primary device and the auxiliary device. present the application as a set of user interface elements on the primary device (202; 402) within the primary computing environment; responsive to a user request to partition the application between the primary device (202; 402) and the auxiliary device (206; 404): distributing the set of user interface elements over a primary application portion presented on the primary device (202; 402) and an auxiliary application portion presented by the auxiliary device (206; 404) by rearranging the set of user interface elements into a first user interface element collection presented on the primary device (202; 402) and a second user interface element collection presented on the auxiliary device (206; 404), further comprising: establishing a connection with the auxiliary device (206; 404); detecting the device property of the auxiliary device (206; 404); generating an auxiliary computing environment adapted from the primary computing environment according to the device property of the auxiliary device (206; 406), within which auxiliary computing environment the auxiliary application portion is presented; transmitting the auxiliary computing environment to the auxiliary device (206; 406), and adapting the provision of the auxiliary computing environment in order to provide an adequate user experience on the auxiliary device by estimating a maximum quality of the application that the primary device is capable of driving without compromising the quality of the presentation and constraining the application to a resource limit that maintains the presentation quality of the application on the primary device and the auxiliary device. establishing a connection with the auxiliary device (206; 404); detecting the device property of the auxiliary device (206; 404); generating an auxiliary computing environment adapted from the primary computing environment according to the device property of the auxiliary device (206; 406), within which auxiliary computing environment the auxiliary application portion is presented; transmitting the auxiliary computing environment to the auxiliary device (206; 406), and adapting the provision of the auxiliary computing environment in order to provide an adequate user experience on the auxiliary device by estimating a maximum quality of the application that the primary device is capable of driving without compromising the quality of the presentation and constraining the application to a resource limit that maintains the presentation quality of the application on the primary device and the auxiliary device.