Dynamic assembly of mobile apps - the future is here
Mobile applications or “apps” are computer programs designed to run on computers such as smartphones, tablets, or other mobile computing devices. Mobile apps are typically developed and compiled by an experienced computer programmer who makes the app available to potential users via an online marketplace or application distribution platform such as an app store. Most mobile operating systems, including popular systems such as Android and iOS, facilitate the development of mobile applications through a software development kit (“SDK”). The SDK usually comprises a set of rules and information for a programmer interested in developing a mobile application for that particular operating system.
Despite having an app development kit available, the development of mobile applications is time-consuming and can require extensive programming experience and knowledge. Further, this results in a “one-size-fits-all” approach in which an app has the same feature(s) for everyone that downloads the app, regardless of the need or preferences of the user. Consumers respond by downloading additional mobile apps to fit their needs or preferences, thereby leading to a crowded mobile device workspace and wasted resources. Therefore there is a stated need for dynamic generation of mobile applications to fit the needs and preferences of the user for a variety of different contexts.
The disclosure is directed to inventive methods and systems for the dynamic generation of a mobile application by dynamically assembling one or more mobile app features at the app distribution platform and generating an installable mobile application for any given context. The app programmer develops and uploads to the distribution and/or generation platform only those artifacts required for one or more specific capabilities (such as executables, required prerequisite libraries, prerequisite non executable resources, etc.). The preferences and or needs of the user, which can be provided or characterized by the user’s profile, social behavior, or other sources, can be utilized as input for the dynamic assembly or generation of the mobile application.