1. A method comprising: in response to initiating a preview of a new IoT device, determining whether a corresponding IoT device exists and, if not, then generating a virtual IoT device; associating the virtual or real IoT device with a set of device attributes and presentation definitions; establishing a communication channel with a mobile app; in response to detecting changes to the attributes and/or presentation definitions, transmitting updates to the mobile app, the mobile app dynamically updating the attributes and presentation definitions.