1. A method performed by at least one computer processor of a mobile computing device executing computer program instructions stored on at least one non-transitory computer-readable medium, the non-transitory computer readable medium operatively connected to the at least one computer processor, wherein the computer program instructions are executable by the at least one computer processor to perform a method for using a mobile application on the mobile computing device, the method comprising: executing, by the mobile computing device, a mobile application received from a provisioning source, the mobile application, including at least programming code and at least one structured document that together describe at least a portion of functionality provided by the mobile application; populating, by an abstraction layer executing on the mobile computing device, a Document Object Model (“DOM”) structure, the DOM structure at least in part representing the running state of the mobile application consistent with the portion of the functionality provided by the mobile application described in the received at least one structured document and the received programming code; presenting, by the abstraction layer, a device-independent application user interface responsive to the DOM structure; receiving, by the mobile application, a user input from within the rendered device-independent application user interface; receiving, by the programming code referenced by the DOM structure, from the abstraction layer, the input event; reconfiguring, by the programming code referenced by the DOM structure, in response to the received input event, the DOM structure to update the running state of the mobile application based on a response, by the mobile application, to the input; and updating, by the abstraction layer, the device-independent application user interface, responsive to the reconfiguring of the DOM structure.