1. A method comprising: storing, in a memory, one or more unmanaged applications each comprising a corresponding application bundle; retrieving metadata associated with the one or more unmanaged applications; displaying, via a user interface, one or more selectable objects, each of the one or more selectable objects corresponding to an unmanaged application of the one or more unmanaged applications, each displayed selectable object comprising the retrieved metadata associated with the corresponding unmanaged application; receiving, via the user interface, a selection of a first selectable object of the one or more selectable objects, the first selectable object associated with a first unmanaged application of the one or more unmanaged applications; retrieving, from the memory and based on the selection of the first selectable object, an application bundle corresponding to the first unmanaged application; decoding the retrieved application bundle corresponding to the first unmanaged application to generate a decoded application bundle corresponding to the first unmanaged application; modifying the decoded application bundle corresponding to the first unmanaged application, to generate a modified application bundle, by adding, to the decoded application bundle corresponding to the first unmanaged application: a set of one or more policy-based control instructions, a hook configured to call instructions in a library file, and the library file; compiling the modified application bundle to generate a first managed application, the first managed application configured to operate in accordance with the set of one or more policy-based control instructions; and providing the first managed application for installation on a mobile device.