WO2012094482A1 - Methods and apparatuses for imparting functionality to a mobile computing device - Google Patents
Methods and apparatuses for imparting functionality to a mobile computing device Download PDFInfo
- Publication number
- WO2012094482A1 WO2012094482A1 PCT/US2012/020313 US2012020313W WO2012094482A1 WO 2012094482 A1 WO2012094482 A1 WO 2012094482A1 US 2012020313 W US2012020313 W US 2012020313W WO 2012094482 A1 WO2012094482 A1 WO 2012094482A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- mobile device
- configuration
- shell
- storage
- functionality
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Definitions
- Embodiments of the present invention comprise a client application (“shell”) that is installed on the mobile device.
- the shell is developed in such a way as to allow it to read certain configuration files ("configuration files").
- configuration files contain all information necessary for the shell to create, present, or display a mobile application "on-the-fly” simply by reading the configuration file.
- this method allows applications to quickly be updated or reconfigured without recompiling and updating native code.
- such applications can easily be shared and interact with other applications developed on this platform.
- This sharing of configuration files with a shell also allows repurposing of applications and a new delivery mechanism for advertising and promotional content.
- the shell code is static and is known when the original application was released.
- Configuration files are defined using the Appliciti platform to define and manage applications and configuration files. Configuration files can also be shared across applications running on multiple mobile operating systems, allowing the design, development and management of a similar user experience across multiple operating systems.
- a mobile application can be defined by a set of features and a user interface ("Ul").
- Ul user interface
- a system to define those features and their Ul is defined in a configuration file that can be used to create the application. Changes to the configuration file can be downloaded to the application from a network server to dynamically reconfigure the application features and its Ul.
- This system can have tiered or otherwise cooperative configurations that can be linked and delivered dynamically. The system can be used to deliver promotions on the mobile device.
- Embodiments of the present invention provide a method of imparting functionality to a mobile device, comprising: (a) loading a shell application into storage on the mobile device; (b) loading a configuration definition into storage on the mobile device; (c) Initiating operation of the shell application according to the definitions in the configuration definition.
- the shell application comprises software configured to access native functionality in the mobile device and to render user interface features according to definitions in a configuration definition.
- the configuration definition comprises information stored in storage on the mobile device, which information specifies user interface style, data sources, resources, and actions.
- the specification of the user interface style comprises specification of one or more of: layout of user interface elements, background display, sorting of user interface elements, grouping of user interface elements, displayed fonts, or a combination thereof.
- actions specify an operation of the mobile that device that initiate one or more of: (1) a physical occurrence outside the device; (2) a transfer of information into or away from the mobile device; (3) creation of data and storage of said data on the device.
- actions specify an operation that is specific to the native functionality provided by the type of device on which the shell application is operating.
- the shell is responsive to events, and initiates one or more actions in response to an event, wherein the actions initiated are determined from the event, the state of the user interface, and the configuration definition.
- the configuration definition includes identification of one or more additional configurations, and conditions under which the shell will cause an additional configuration to be loaded and used as the configuration in step (c).
- the configuration definition includes identification of methods to access one or more additional configurations, and conditions under which the shell will cause an additional configuration to be loaded and used as the configuration in step (c).
- the configuration definition comprises definition of one or more actions that collect analytics and store them on the device, communicate analytics from the device to a remote system, or a combination thereof.
- Embodiments of the present invention provide a method of supplying new functionality to a mobile device having resident in storage one or more configuration definitions configured to impart functionality to the mobile device when operated in combination with a shell application on the mobile device, comprising (a) communicating a command from a remote system to the device, (b) at a time when the shell application is active, and when a configuration determined from the command is active, storing information determined from the command in storage on the mobile device in association with the determined configuration definition. Some embodiments further comprise verifying the command before step (b).
- the mobile device has resident in storage a second shell application, and further comprises (c) at a time when the second shell application is active, and when a second configuration determined from the command is active, storing information determined from the command in storage on the mobile device in association with the second determined configuration.
- Embodiments of the present invention provide a method of supplying new functionality to a plurality of mobile devices, each having resident in storage one or more configuration definitions configured to impart functionality to the mobile device when operated in combination with a shell application on the mobile device, comprising selecting the plurality of devices based on characteristics of the mobile device (e.g., enough memory, appropriate hardware or software version), a user of the mobile device (e.g., gender of the user or owner, age of the user or owner, registration status relative to other services such as subscriptions), current conditions of the present device (e.g., current location, power status such as plugged in or not, communication status such as whether connected to a wifi network), past or present use of the mobile device (e.g., accessed certain web sites, made online purchases), or a combination thereof; and communicating to each device according to the methods described herein.
- characteristics of the mobile device e.g., enough memory, appropriate hardware or software version
- a user of the mobile device e.g., gender of the user or owner, age of the
- Embodiments of the present invention provide a method of supplying new functionality to a mobile device having resident in storage one or more configuration definitions configured to impart functionality to the mobile device when operated in combination with a shell application on the mobile device, comprising: (a) using the shell application to determine whether an update to a configuration definition is available, (b) using the shell application to receive the update and storing the update in storage on the mobile device in association with the configuration definition.
- Fig. 1 is a schematic illustration of an embodiment of the present invention.
- Fig. 2 is a schematic illustration of an embodiment of the present invention.
- Fig. 3 is a schematic illustration of an embodiment of the present invention.
- FIG. 4 is a schematic illustration of an embodiment of the present invention.
- FIG. 5 is a schematic illustration of an embodiment of the present invention.
- An application can be defined in a configuration file by first defining a feature such as the top navigation feature, e.g., a tab navigation controller, image navigation controller, or list navigation controller.
- a feature such as the top navigation feature, e.g., a tab navigation controller, image navigation controller, or list navigation controller.
- a configuration file can contain many types of features, such as lists to display data, maps to show pin locations on a map, collections of images that can be viewed and manipulated, videos that can be played in a video player, Facebook wall that displays comments from a Facebook account, etc.
- features provide for presentation of data in various ways.
- This can be represented by a controller or set of controllers, or other ways to implement native user interface elements such as windows, toolbars, text, etc.
- a collection feature presents homogeneous data in a list controller and details of the data in an item view controller.
- a collection feature can also be used to display many types of data, e.g. products, search results, images, etc.
- Features can also be defined to have properties specific to that feature, for example, list or item controllers can have interactive action bars, search bars, buttons on the navigation bar, etc.
- a map feature has properties to show a map in standard, satellite or hybrid view.
- controllers are combined together to create commonly used features, such as Facebook wall, Twitter feed, YouTube channel, RSS feed, etc.
- Other features may contain foreground and background image properties. These properties can be used to design unique Ul to enhance the "look and feel" of applications.
- Foreground images can be linked to actions that navigate to other features or configurations.
- actions operate to connect features and allow the user to interact with data in a feature.
- a navigation action can be defined that links a street address to a map feature.
- the action defines how to take an address from one feature and show a map feature and drop a pin on the map.
- actions can perform various functionality, e.g. dial a phone, send e-mail, send a Tweet, write a comment on a Facebook wall, launch another configuration, etc.
- Actions are logged for analytic data. Events, such as an application start, wake, sleep are also logged as analytic data.
- User gestures such as tabs, swipes, and shakes can also be event with associated actions.
- This analytic data can be grouped and uploaded from the mobile device to a server to be used for analytic data analysis as shown in FIG. 2.
- Styles define the look and feel of features within the Ul.
- a style defines the font size and color, border colors, background colors, placement of text or images, e.g. top, bottom, left, right, center, etc.
- Styles are created and applied to features to create the Ul. Styles can be applied at different levels of a feature and use inheritance from a global level down to each data element within a feature.
- Data sources define where data comes from and the format of the data. According to embodiments of the present invention, various data formats are supported, such as xml, json, plist, url, etc.
- an xml data source may be used to identify a particular url for data retrieval.
- the xml data source can also define the data fields and types of data that are returned, and how to retrieve specific fields from the data, using xpath for example.
- Data sources also support a caching mechanism that determines when data should be refreshed, e.g. download once, by date or time, never cached, etc.
- Resources are data that can be used by features.
- resources can be images, videos, other configuration files, or user-entered data.
- resources can be stored on the device, on external devices connected to the device, in the
- a shell can utilize more than one configuration file.
- Embodiments of the present invention incorporate a versioning mechanism so that the shell can determine if a 'newer' configuration file is available from a server and if the configuration file is compatible with the current shell.
- configuration files can be delivered to a shell via various mechanisms including: 1) bundled with the application, 2) discovered by an API on the server, 3) delivered by Push Notification as shown in FIGS. 3 and 4, 4) downloaded via a standard hyperlink in an email message, Twitter tweet, QR code, etc.
- configuration files can be used to create a template for reuse.
- Configuration files created from a configuration template will contain the exact same functionality as the original configuration file.
- the new configuration file can then be modified to add additional functionality.
- configuration files can be "tiered” to utilize other configuration files.
- an application always designates an active configuration file.
- the active configuration file is what the user sees and interacts with when the application is launched.
- the then-active configuration file is restored when the application starts or wakes.
- a configuration file is launched from another configuration file and the application is closed, the launched configuration file remains active until the configuration file restores the calling configuration file.
- the active configuration file can be replaced at any time by mechanisms previously noted, thereby modifying the behavior of the application.
- Multiple configuration files can also be active, for example one configuration file can be active for each display in a system having multiple displays.
- the present invention can also be embedded in other applications that provide desirable functionality, such as SDK libraries.
- Example Embodiment The shell application is an Apple IOS application created using the normal Apple tools and submitted to the Apple AppStore for distribution using normal methods.
- Configurations are created by users with web-based creation and management software deployed on a webserver (configuration server).
- the configuration server also permits creation and management of notifications/commands that can be delivered to and retrieved by those configurations.
- the shell application based on information included in a particular configuration, uses HTTP webservice APIs to communicate with the configuration server for that configuration to receive updated configuration definitions, notifications, additional data associated with notifications, and to deliver analytics.
- updated configuration definitions can be stored in the cloud using a commercial service such as Amazon S3 or Dropbox.
- analytics from a configuration can be stored using such services.
- the capabilities of the present invention can be provided as a library and SDK for other developers to incorporate in their products.
- the shell application functionality can be packaged in such a way that a mobile application developer can include it in a native application of their own design.
- Configuration creation and management can be provided by a configuration server as above, a 3rd party service, or custom- designed and deployed by the app developer themselves.
- Example Embodiment. The present invention can be used to provide a "Showcase" function, providing a shell application and configuration that defines and modifies configurations on the device itself.
- a configuration is provided that can create, modify, and manage other configurations using standard configuration features or by other means, such as a configuration server described above that has a Ul formatted for display in a mobile browser. This can also be accomplished with an embodiment that does not use a configuration server at all.
- Configurations can be delivered via Bluetooth and similar technologies; the same or different shell applications on different devices can share configurations in this way with no need for a configuration server.
- Configurations can be delivered to Apple IOS applications using In-App Purchase, a service provided by Apple to facilitate various kinds of business models.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Embodiments of the present invention comprise a client application ("shell") that is installed on the mobile device. The shell is developed in such a way as to allow it to read certain configuration files ("configuration files"). As discussed in greater detail below, the configuration files contain all information necessary for the shell to create, present, or display a mobile application "on-the-fly" simply by reading the configuration file. Advantageously, this method allows applications to quickly be updated or reconfigured without recompiling and updating native code. In addition, such applications can easily be shared and interact with other applications developed on this platform. This sharing of configuration files with a shell also allows repurposing of applications and a new delivery mechanism for advertising and promotional content.
Description
M ETHODS AND APPARATUSES FOR IMPARTING FUNCTIONALITY TO A MOBILE COMPUTING DEVICE [0001] BACKGROUND ART
[0002] This application is related to US provisional application 61/429,960 filed 1/5/2011, which is incorporated herein by reference.
[0003] To date, mobile applications that utilize a mobile operating system's native functionality (such as Apple iOS and Google Android) must be developed and recompiled to add new native functionality to the application. The process of redeveloping and recoding new functionality into the application can be time consuming and expensive. Therefore, a need exists in the art to allow rapid development and deployment of new functionality and features into mobile applications and that can be shared with applications across multiple operating systems.
[0004] DISCLOSURE OF INVENTION
[0005] Embodiments of the present invention comprise a client application ("shell") that is installed on the mobile device. The shell is developed in such a way as to allow it to read certain configuration files ("configuration files"). As discussed in greater detail below, the configuration files contain all information necessary for the shell to create, present, or display a mobile application "on-the-fly" simply by reading the configuration file. Advantageously, this method allows applications to quickly be updated or reconfigured without recompiling and updating native code. In addition, such applications can easily be shared and interact with other applications developed on this platform. This sharing of configuration files with a shell also allows repurposing of applications and a new delivery mechanism for advertising and promotional content. Furthermore, since the shell is not interpreting a language to build the mobile application, the shell code is static and is known when the original application was released.
Configuration files are defined using the Appliciti platform to define and manage applications and configuration files. Configuration files can also be shared across applications running on multiple mobile operating systems, allowing the design, development and management of a similar user experience across multiple operating systems.
[0006] A mobile application can be defined by a set of features and a user interface ("Ul"). A system to define those features and their Ul is defined in a configuration file that can be used to create the application. Changes to the configuration file can be downloaded to the application from a network server to dynamically reconfigure the application features and its Ul. This system can have tiered or otherwise cooperative configurations that can be linked and delivered dynamically. The system can be used to deliver promotions on the mobile device.
[0007] Embodiments of the present invention provide a method of imparting functionality to a mobile device, comprising: (a) loading a shell application into storage on the mobile device; (b) loading a configuration definition into storage on the mobile device; (c) Initiating operation of the shell application according to the definitions in the configuration definition.
[0008] In some embodiments, the shell application comprises software configured to access native functionality in the mobile device and to render user interface features according to definitions in a configuration definition.
[0009] In some embodiments, the configuration definition comprises information stored in storage on the mobile device, which information specifies user interface style, data sources, resources, and actions.
[0010] In some embodiments, the specification of the user interface style comprises specification of one or more of: layout of user interface elements, background display, sorting of user interface elements, grouping of user interface elements, displayed fonts, or a combination thereof.
[0011] In some embodiments, actions specify an operation of the mobile that device that initiate one or more of: (1) a physical occurrence outside the device; (2) a transfer of information into or away from the mobile device; (3) creation of data and storage of said data on the device.
[0012] In some embodiments, actions specify an operation that is specific to the native functionality provided by the type of device on which the shell application is operating.
[0013] In some embodiments, the shell is responsive to events, and initiates one or more actions in response to an event, wherein the actions initiated are determined from the event, the state of the user interface, and the configuration definition.
In some embodiments, the configuration definition includes identification of one or more additional configurations, and conditions under which the shell will cause an additional configuration to be loaded and used as the configuration in step (c).
[0014] In some embodiments, the configuration definition includes identification of methods to access one or more additional configurations, and conditions under which the shell will cause an additional configuration to be loaded and used as the configuration in step (c).
[0015] In some embodiments, the configuration definition comprises definition of one or more actions that collect analytics and store them on the device, communicate analytics from the device to a remote system, or a combination thereof.
[0016] Some embodiments further comprise verifying the authority of the remote system to receive the analytics prior to communicating analytics to the remote system.
[0017] Embodiments of the present invention provide a method of supplying new functionality to a mobile device having resident in storage one or more configuration definitions configured to impart functionality to the mobile device when operated in combination with a shell application on the mobile device, comprising (a) communicating a command from a remote system to the device, (b) at a time when the shell application is active, and when a configuration determined from the command is active, storing information determined from the command in storage on the mobile device in association with the determined configuration definition. Some embodiments further comprise verifying the command before step (b).
[0018] In some embodiments, the mobile device has resident in storage a second shell application, and further comprises (c) at a time when the second shell application is active, and when a second configuration determined from the command is active, storing information determined from the command in storage on the mobile device in association with the second determined configuration.
[0019] Embodiments of the present invention provide a method of supplying new functionality to a plurality of mobile devices, each having resident in storage one or more configuration definitions configured to impart functionality to the mobile device when operated in combination with a shell application on the mobile device, comprising selecting the plurality of devices based on characteristics of the mobile device (e.g., enough memory, appropriate hardware or software version), a user of the mobile device (e.g., gender of the user or owner, age of the user or owner, registration status relative to other services such as subscriptions), current conditions of the present device (e.g., current location, power status such as plugged in or not, communication status such as whether connected to a wifi network), past or present use of the mobile device (e.g., accessed certain web sites, made online purchases), or a combination thereof; and communicating to each device according to the methods described herein.
[0020] Embodiments of the present invention provide a method of supplying new functionality to a mobile device having resident in storage one or more configuration definitions configured to impart functionality to the mobile device when operated in combination with a shell application on the mobile device, comprising: (a) using the shell application to determine whether an update to a configuration definition is available, (b) using the shell application to receive the update and storing the update in storage on the mobile device in association with the configuration definition.
[0021] BRIEF DESCRIPTION OF DRAWINGS
[0022] Fig. 1 is a schematic illustration of an embodiment of the present invention.
[0023] Fig. 2 is a schematic illustration of an embodiment of the present invention.
[0024] Fig. 3 is a schematic illustration of an embodiment of the present invention.
[0025] Fig. 4 is a schematic illustration of an embodiment of the present invention.
[0026] Fig. 5 is a schematic illustration of an embodiment of the present invention.
[0027] MODES FOR CARRYING OUT THE INVENTION AND INDUSTRIAL APPLICABILITY
[0028] According to embodiments of the present invention and referring to Fig. 1, a configuration creatordefines a configuration file by defining, without limitation: (1) features, (2) actions that manipulate those features, (3) styles that define the look-and-feel of the features, (4) data sources that define the data feeds for the features, (5) resources that define various images, video, and data.
[0029] An application can be defined in a configuration file by first defining a feature such as the top navigation feature, e.g., a tab navigation controller, image navigation controller, or list navigation controller.
[0030] Features
[0031] A configuration file can contain many types of features, such as lists to display data, maps to show pin locations on a map, collections of images that can be viewed and manipulated, videos that can be played in a video player, Facebook wall that displays comments from a Facebook account, etc.
[0032] According to an embodiment of the present invention, features provide for presentation of data in various ways. This can be represented by a controller or set of controllers, or other ways to implement native user interface elements such as windows, toolbars, text, etc. For example, a collection feature presents homogeneous data in a list controller and details of the data in an item view controller. A collection feature can also be used to display many types of data, e.g. products, search results, images, etc. Features can also be defined to have properties specific to that feature, for example, list or item controllers can have interactive action bars, search bars, buttons on the navigation bar, etc. A map feature has properties to show a map in standard, satellite or hybrid view. Some controllers are combined together to create commonly used features, such as Facebook wall, Twitter feed, YouTube channel, RSS feed, etc. Other features may contain foreground and background image properties. These properties can be used to design unique Ul to enhance the "look and feel" of applications. Foreground images can be linked to actions that navigate to other features or configurations.
[0033] Actions
[0034] According to embodiments of the present invention, actions operate to connect features and allow the user to interact with data in a feature. For example, a navigation action can be defined that links a street address to a map feature. The action defines how to take an address from one feature and show a map feature and drop a pin on the map. According to embodiments of the present invention,
actions can perform various functionality, e.g. dial a phone, send e-mail, send a Tweet, write a comment on a Facebook wall, launch another configuration, etc. Actions are logged for analytic data. Events, such as an application start, wake, sleep are also logged as analytic data. User gestures such as tabs, swipes, and shakes can also be event with associated actions. This analytic data can be grouped and uploaded from the mobile device to a server to be used for analytic data analysis as shown in FIG. 2.
[0035] Styles
[0036] Styles define the look and feel of features within the Ul. A style defines the font size and color, border colors, background colors, placement of text or images, e.g. top, bottom, left, right, center, etc. Styles are created and applied to features to create the Ul. Styles can be applied at different levels of a feature and use inheritance from a global level down to each data element within a feature.
[0037] Data Sources
[0038] Data sources define where data comes from and the format of the data. According to embodiments of the present invention, various data formats are supported, such as xml, json, plist, url, etc. For example, an xml data source may be used to identify a particular url for data retrieval. The xml data source can also define the data fields and types of data that are returned, and how to retrieve specific fields from the data, using xpath for example. Data sources also support a caching mechanism that determines when data should be refreshed, e.g. download once, by date or time, never cached, etc.
[0039] Resources
[0040] Resources are data that can be used by features. According to embodiments of the present invention, resources can be images, videos, other configuration files, or user-entered data. As examples, resources can be stored on the device, on external devices connected to the device, in the
cloud/Internet, or a combination thereof.
[0041] Deployment
[0042] A shell can utilize more than one configuration file. Embodiments of the present invention incorporate a versioning mechanism so that the shell can determine if a 'newer' configuration file is available from a server and if the configuration file is compatible with the current shell.
[0043] One having ordinary skill in the art will recognize that configuration files can be delivered to a shell via various mechanisms including: 1) bundled with the application, 2) discovered by an API on the server, 3) delivered by Push Notification as shown in FIGS. 3 and 4, 4) downloaded via a standard hyperlink in an email message, Twitter tweet, QR code, etc.
[0044] According to embodiments of the present invention and referring to FIG. 5, configuration files can be used to create a template for reuse. Configuration files created from a configuration template
will contain the exact same functionality as the original configuration file. The new configuration file can then be modified to add additional functionality. In addition, configuration files can be "tiered" to utilize other configuration files. This modular approach allows developers to essentially "assemble" applications from pre-defined configuration files or create configuration files for template or reuse purposes. In this way, developers can quickly and easily create applications based on changing needs or use patterns.
[0045] According to embodiments of the present invention, an application always designates an active configuration file. The active configuration file is what the user sees and interacts with when the application is launched. When an application sleeps or is closed, the then-active configuration file is restored when the application starts or wakes. If a configuration file is launched from another configuration file and the application is closed, the launched configuration file remains active until the configuration file restores the calling configuration file. The active configuration file can be replaced at any time by mechanisms previously noted, thereby modifying the behavior of the application. Multiple configuration files can also be active, for example one configuration file can be active for each display in a system having multiple displays.
[0046] The present invention can also be embedded in other applications that provide desirable functionality, such as SDK libraries.
[0047] Example Embodiment. The shell application is an Apple IOS application created using the normal Apple tools and submitted to the Apple AppStore for distribution using normal methods.
[0048] Configurations are created by users with web-based creation and management software deployed on a webserver (configuration server). The configuration server also permits creation and management of notifications/commands that can be delivered to and retrieved by those configurations. The shell application, based on information included in a particular configuration, uses HTTP webservice APIs to communicate with the configuration server for that configuration to receive updated configuration definitions, notifications, additional data associated with notifications, and to deliver analytics.
[0049] Alternatively, updated configuration definitions can be stored in the cloud using a commercial service such as Amazon S3 or Dropbox. Similarly, analytics from a configuration can be stored using such services. These details are defined in the configuration file and can be modified at any time.
[0050] Example Embodiment. The capabilities of the present invention can be provided as a library and SDK for other developers to incorporate in their products.
[0051] The shell application functionality can be packaged in such a way that a mobile application developer can include it in a native application of their own design. Configuration creation and management can be provided by a configuration server as above, a 3rd party service, or custom- designed and deployed by the app developer themselves.
[0052] Example Embodiment. The present invention can be used to provide a "Showcase" function, providing a shell application and configuration that defines and modifies configurations on the device itself.
[0053] A configuration is provided that can create, modify, and manage other configurations using standard configuration features or by other means, such as a configuration server described above that has a Ul formatted for display in a mobile browser. This can also be accomplished with an embodiment that does not use a configuration server at all. Configurations can be delivered via Bluetooth and similar technologies; the same or different shell applications on different devices can share configurations in this way with no need for a configuration server. Configurations can be delivered to Apple IOS applications using In-App Purchase, a service provided by Apple to facilitate various kinds of business models.
[0054] The present invention has been described as set forth herein in relation to various example embodiments and design considerations. It will be understood that the above description is merely illustrative of the applications of the principles of the present invention, the scope of which is to be determined by the claims viewed in light of the specification. Other variants and modifications of the invention will be apparent to those of skill in the art.
Claims
1. A method of imparting functionality to a mobile device, comprising:
(a) loading a shell application into storage on the mobile device;
(b) loading a configuration definition into storage on the mobile device;
(c) initiating operation of the shell application according to the definitions in the configuration definition.
2. A method as in claim 1, wherein the shell application comprises software configured to access native functionality in the mobile device and to render user interface features according to definitions in a configuration definition.
3. A method as in claim 1, wherein the configuration definition comprises information stored in
storage on the mobile device, which information specifies user interface style, data sources, resources, and actions.
4. A method as in claim 3, wherein the specification of the user interface style comprises specification of look and feel including one or more of: layout and grouping of user interface elements, background and foreground display, sorting and organization of data, color of user interface elements, displayed fonts, or a combination thereof.
5. A method as in claim 3, wherein actions specify an operation of the mobile device that initiates one or more of: (1) a physical occurrence outside the device; (2) a transfer of information into or away from the mobile device; (3) creation of data and storage of said data on the device.
6. A method as in claim 3, wherein actions specify an operation that is specific to the native
functionality provided by the type of device on which the shell application is operating.
7. A method as in claim 3,wherein the shell is responsive to events, wherein an event can be initiated by the mobile device, by the user of the mobile device, and by a remote system; and wherein the shell initiates one or more actions in response to an event, wherein the actions initiated are determined from the event, the state of the user interface, and the configuration definition.
8. A method as in claim 1, wherein the configuration definition includes identification of one or more additional configurations, and conditions under which the shell will cause an additional
configuration to be loaded and used as the configuration in step (c).
9. A method as in claim 1, wherein the configuration definition includes identification of methods to access one or more additional configurations, and conditions under which the shell will cause an additional configuration to be loaded and used as the configuration in step (c).
10. A method as in claim 1, wherein the configuration definition comprises definition of one or more actions that collect analytics and store them on the device, communicate analytics from the device to a remote system, or a combination thereof.
11. A method as in claim 10, further comprising verifying the authority of the remote system to receive the analytics prior to communicating analytics to the remote system.
12. A method of supplying new functionality to a mobile device having resident in storage one or more configuration definitions configured to impart functionality to the mobile device when operated in combination with a shell application on the mobile device, comprising (a) communicating a command from a remote system to the device, (b) at a time when the shell application is active, and when a configuration determined from the command is active, storing information determined from the command in storage on the mobile device in association with the determined configuration definition.
13. A method as in claim 12, further comprising verifying the command before step (b).
14. A method as in claim 12, wherein the mobile device has resident in storage a second shell
application, and further comprising (c) at a time when the second shell application is active, and when a second configuration determined from the command is active, storing information determined from the command in storage on the mobile device in association with the second determined configuration.
15. A method of supplying new functionality to a plurality of mobile devices, each having resident in storage one or more configuration definitions configured to impart functionality to the mobile device when operated in combination with a shell application on the mobile device, comprising selecting the plurality of devices based on characteristics of the mobile device, a user of the mobile device, current conditions of the present device, past or present use of the mobile device, or a com bination thereof; and communicating to each device according to the method of claim 12.
16. A method of supplying new functionality to a mobile device having resident in storage one or more configuration definitions configured to impart functionality to the mobile device when operated in com bination with a shell application on the mobile device, comprising: (a) using the shell application to determine whether an update to a configuration definition is available, (b) using the shell application to receive the update and storing the update in storage on the mobile device in association with the configuration definition.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/978,021 US9413815B2 (en) | 2011-01-05 | 2012-01-05 | Methods and apparatuses for imparting functionality to a mobile computing device |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161429960P | 2011-01-05 | 2011-01-05 | |
US61/429,960 | 2011-01-05 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012094482A1 true WO2012094482A1 (en) | 2012-07-12 |
Family
ID=46457710
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2012/020313 WO2012094482A1 (en) | 2011-01-05 | 2012-01-05 | Methods and apparatuses for imparting functionality to a mobile computing device |
Country Status (2)
Country | Link |
---|---|
US (1) | US9413815B2 (en) |
WO (1) | WO2012094482A1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014035376A2 (en) * | 2012-08-28 | 2014-03-06 | Hewlett-Packard Development Company, L.P. | Automatic mobile application updates |
EP2887703A1 (en) * | 2013-12-20 | 2015-06-24 | Sap Se | Application protection in a mobile telecommunication device |
US9413815B2 (en) | 2011-01-05 | 2016-08-09 | Appcitylife, Inc. | Methods and apparatuses for imparting functionality to a mobile computing device |
WO2020019524A1 (en) * | 2018-07-27 | 2020-01-30 | 平安科技(深圳)有限公司 | Data processing method and device |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10678602B2 (en) * | 2011-02-09 | 2020-06-09 | Cisco Technology, Inc. | Apparatus, systems and methods for dynamic adaptive metrics based application deployment on distributed infrastructures |
WO2013028438A1 (en) * | 2011-08-22 | 2013-02-28 | Decoteau Don | System and method for dynamically assembling an application on a client device |
US9374275B2 (en) * | 2013-12-11 | 2016-06-21 | Dropbox, Inc. | Rapid application development using a content management system |
EP3012744B1 (en) * | 2014-03-19 | 2022-12-21 | Huawei Device Co., Ltd. | Method and device for synchronizing application data |
CN104035783A (en) * | 2014-06-27 | 2014-09-10 | 北京金和软件股份有限公司 | Platform integrating method and platform integrating system matched with third party web page in application program |
US20160026366A1 (en) * | 2014-07-22 | 2016-01-28 | Runfeng LUAN | Method and system for customizing mobile terminal application |
US10754518B1 (en) * | 2016-01-21 | 2020-08-25 | Amazon Technologies, Inc. | Techniques for providing customized user interface components in a push notification |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6986135B2 (en) * | 2001-09-06 | 2006-01-10 | Cognos Incorporated | Deployment manager for organizing and deploying an application in a distributed computing environment |
US20090144631A1 (en) * | 2002-03-06 | 2009-06-04 | Fox Interactive Media | User Controllable Computer Presentation of Interfaces and Information Selectively Provided via a Network |
US7779085B2 (en) * | 2006-07-17 | 2010-08-17 | Research In Motion Limited | Automatic mobile device configuration |
US20100281475A1 (en) * | 2009-05-04 | 2010-11-04 | Mobile On Services, Inc. | System and method for mobile smartphone application development and delivery |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7519575B1 (en) * | 2001-08-31 | 2009-04-14 | Novell, Inc. | Method and apparatus for presenting, searching, and viewing directories |
US7493592B2 (en) * | 2003-10-24 | 2009-02-17 | Microsoft Corporation | Programming interface for a computer platform |
US7426734B2 (en) * | 2003-10-24 | 2008-09-16 | Microsoft Corporation | Facilitating presentation functionality through a programming interface media namespace |
US20050193104A1 (en) * | 2004-02-27 | 2005-09-01 | Wyse Technology Inc. | User interface for remote computing devices |
US20060089147A1 (en) * | 2004-10-21 | 2006-04-27 | Beaty Robert M | Mobile network infrastructure for applications, personalized user interfaces, and services |
US20090133014A1 (en) * | 2007-11-16 | 2009-05-21 | Nokia Corporation | Methods, apparatuses and computer program product for automatic download of software dependencies on installation |
WO2010024820A2 (en) * | 2008-08-29 | 2010-03-04 | Hewlett-Packard Development Company, L.P. | Combining interfaces of shell applications and sub-applications |
US9672022B2 (en) * | 2010-06-23 | 2017-06-06 | Microsoft Technology Licensing, Llc | Applications including multiple experience modules |
US9413815B2 (en) | 2011-01-05 | 2016-08-09 | Appcitylife, Inc. | Methods and apparatuses for imparting functionality to a mobile computing device |
-
2012
- 2012-01-05 US US13/978,021 patent/US9413815B2/en not_active Expired - Fee Related
- 2012-01-05 WO PCT/US2012/020313 patent/WO2012094482A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6986135B2 (en) * | 2001-09-06 | 2006-01-10 | Cognos Incorporated | Deployment manager for organizing and deploying an application in a distributed computing environment |
US20090144631A1 (en) * | 2002-03-06 | 2009-06-04 | Fox Interactive Media | User Controllable Computer Presentation of Interfaces and Information Selectively Provided via a Network |
US7779085B2 (en) * | 2006-07-17 | 2010-08-17 | Research In Motion Limited | Automatic mobile device configuration |
US20100281475A1 (en) * | 2009-05-04 | 2010-11-04 | Mobile On Services, Inc. | System and method for mobile smartphone application development and delivery |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9413815B2 (en) | 2011-01-05 | 2016-08-09 | Appcitylife, Inc. | Methods and apparatuses for imparting functionality to a mobile computing device |
WO2014035376A2 (en) * | 2012-08-28 | 2014-03-06 | Hewlett-Packard Development Company, L.P. | Automatic mobile application updates |
WO2014035376A3 (en) * | 2012-08-28 | 2014-07-31 | Hewlett-Packard Development Company, L.P. | Automatic mobile application updates |
EP2887703A1 (en) * | 2013-12-20 | 2015-06-24 | Sap Se | Application protection in a mobile telecommunication device |
US9390239B2 (en) | 2013-12-20 | 2016-07-12 | Sap Se | Software system template protection |
WO2020019524A1 (en) * | 2018-07-27 | 2020-01-30 | 平安科技(深圳)有限公司 | Data processing method and device |
Also Published As
Publication number | Publication date |
---|---|
US20130332519A1 (en) | 2013-12-12 |
US9413815B2 (en) | 2016-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9413815B2 (en) | Methods and apparatuses for imparting functionality to a mobile computing device | |
CN107820701B (en) | Developer exchange system | |
CN102971688B (en) | Cross-platform program frame | |
US11902377B2 (en) | Methods, systems, and computer program products for implementing cross-platform mixed-reality applications with a scripting framework | |
US20210117059A1 (en) | Application interface management method and apparatus | |
Steele et al. | The Android developer's cookbook: building applications with the Android SDK | |
CN104781785B (en) | For application native code is generated from intermediate language code | |
KR101523607B1 (en) | Apparatus and methods for widget intercommunication in a wireless communication environment | |
Jackson et al. | Android apps for absolute beginners | |
US9189132B2 (en) | Dynamic configurable menu using self-describing applications | |
US9058193B2 (en) | Methods and systems for providing compatibility of applications with multiple versions of an operating system | |
KR101700080B1 (en) | Selective enablement of runtime-based application behaviors | |
KR20180027031A (en) | Server, apparatus and method for authoring app of supporting multiple platform | |
CN106257418A (en) | For by using assistance application to evaluate the technology of application | |
Krajci et al. | History and Evolution of the Android OS | |
KR101892699B1 (en) | Apparatus and method for authoring app of providing itergrated development environment | |
CN113792208B (en) | Picture interaction method, device, equipment, medium and program product based on webpage | |
Helal et al. | Mobile platforms and development environments | |
US20130117132A1 (en) | System for inserting services in a software application | |
CN105518618A (en) | Input object configured to route input for a visual element to a graphic framework | |
KR20160076347A (en) | Device for Providing Accessary Information Based UI and Method Thereof | |
McClure et al. | Professional Android Programming with Mono for Android and. NET/C | |
CN113608737A (en) | Page generation method, device, equipment and medium | |
Brockschmidt | Programming Windows Store Apps with HTML, CSS, and JavaScript | |
Bedyński | Andood–an Android application |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 12731896 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 13978021 Country of ref document: US |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 12731896 Country of ref document: EP Kind code of ref document: A1 |