IP Library › Granted Patent US 9,558,014
Granted Patent B2
US 9,558,014 · App. 14/013,665 · Granted Jan 31, 2017

System, method and apparatus for transparently enabling software applications with adaptive user interfaces

Inventors: Joseph William Ligman (Wilton, CT); Marco Pistoia (Amawalk, NY); John Ponzo (Yorktown Heights, NY); Gegi Thomas (Piermont, NY)
Assignee: International Business Machines Corporation
G06F9/4445G06F8/33G06F8/40G06F8/41
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,558,014
App. No.
14/013,665
Granted
Jan 31, 2017
Kind
B2
Abstract

A method includes receiving, by a library instrumented into an application executable by a computing device, a message indicating modification(s) that should be performed to user interface component(s) able to be rendered by the application on a display of the computing device. The user interface component(s) are modified to create modified user interface component(s). The modified user interface component(s) are caused to be rendered on the display. Another method includes accessing a description of user interface component(s) for an application executable on a computing device, wherein the user interface component(s) are able to be rendered by the application on a display of the computing device. A developer is allowed to modify information concerning the user interface component(s). Message(s) are formed to allow modification(s) and corresponding user interface component(s) to be determined and the message(s) are sent to computing device(s) having the application. Apparatus, software, and computer program products are disclosed.

Claims (33)

1. A method, comprising:

receiving, by an adaptive user interface library instrumented into an application executable by a computing device, a message from a developer indicating one or more modifications should be performed to one or more user interface components of the application able to be rendered on a display of the computing device, wherein the one or more user interface components comprise one or more objects and wherein the message is formed in a tree structure wherein views created by the application are higher in the tree structure than are objects in the views and closer to a root of the tree structure, wherein the objects in the views are higher in the tree structure than are attributes of the objects, and wherein the attributes are leaves of the tree structure,

wherein the adaptive user interface library is transparent to the developer, and

wherein the adaptive user interface library is injectable into the application at a post-compile time;

wherein the adaptive user interface library is written using native Application Programming Interface (APIs) provided by the developer;

modifying, by the adaptive user interface library, the one or more user interface components according to the one or more modifications to create one or more modified user interface components; and

causing, by the adaptive user interface library, the one or more modified user interface components to be rendered on the display of the computing device.

2. The method of claim 1 , wherein modifying further comprises:

intercepting, by one or more overriding objects, one or more calls to one or more Original objects, wherein the one or more overriding objects override corresponding ones of the one or more Original objects;

causing by the one more overriding objects the one or more user interface components to be modified according to the one or more modifications; and

calling by the one or more overriding objects the one or more Original objects.

3. The method of claim 2 , wherein the one more overriding objects can cause the one or more user interface components to be modified because the one or more overriding objects control one or more attributes that indicate the corresponding one or more modifications to one or more subsystems that realize modification of the one or more user interface components.

4. The method of claim 1 , further comprising performing a discovery phase comprising building a description of user interface components, including layout information for those user interface components, for the application and sending one or more indications of the description to a server.

5. The method of claim 1 , wherein modifying is performed in accordance with one or more policies.

6. The method of claim 5 , wherein a policy comprises implementing the one or more modifications.

7. The method of claim 5 , wherein a policy comprises one of preventing a user from performing an action using the one or more user interface components or allowing the user to perform an action using the one or more user interface components.

8. The method of claim 5 , wherein the modifying is performed based on the one or more policies and responsive to one or more criteria being met.

9. The method of claim 8 , wherein the one or more criteria comprise one or more of: the one or more policies being temporary; the one or more policies occurring within one or more time limits; the one or more policies occurring within one or more times of a day; the one or more policies occurring at one or more locations; the one or more policies depending on one or more thresholds to user action; and the one or more policies depending on sensor data.

10. The method of claim 8 , wherein the modifying is performed in response to a first of the one or more criteria being met and further comprising removing the one or more modifications from the one or more modified user interface components to restore the one or more modified user interface components to Original states in response to a second of the one or more criteria being met.

11. The method of claim 1 , wherein the modifying further comprises causing a pop up message to be created on the display.

12. The method of claim 1 , wherein the modifying further comprises one of removing at least one of the one or more user interface components or adding one or more new user interface components.

13. The method of claim 1 , wherein the one or more modifications are to a feature provided by the one or more user interface components for the application.

14. The method of claim 1 , wherein the one or more modifications are to an appearance of the one or more user interface components.

15. A method, comprising:

accessing a description of a plurality of user interface components for an application executable on a computing device, wherein the plurality of user interface components are able to be rendered by the application on a display of the computing device, wherein the application is transparent to a developer using native Application Programming Interface (APIs) provided by the developer;

allowing the developer to modify information concerning one or more of the plurality of user interface components;

forming, responsive to one or more modifications by the developer to the information, one or more messages to allow the one or more modifications and the corresponding one or more user interface components to be determined, wherein the one or more messages are formed in a tree structure wherein views created by the application are higher in the tree structure than are objects in the views and closer to a root of the tree structure, wherein the objects in the views are higher in the tree structure than are attributes of the objects, and wherein the attributes are leaves of the tree structure; and

sending the one or more messages to one or more computing devices having the application.

16. The method of claim 15 , wherein allowing further comprises sending one or more representations of the one or more user interface components to the developer using at least one network.

17. The method of claim 16 , wherein forming is performed at least using a data-interchange format.

18. The method of claim 15 , wherein allowing further comprises allowing the developer to modify one or more policies corresponding to the one or more user interface components and forming further comprises forming the one or more messages to allow the one or more policies corresponding to the one or more user interface components to be determined.

19. The method of claim 18 , wherein allowing further comprises allowing the developer to modify one or more criteria corresponding to the one or more policies and forming further comprises forming the one or more messages to allow the one or more policies and the one or more criteria corresponding to the one or more user interface components to be determined.

20. The method of claim 19 , wherein the one or more criteria comprise one or more of: the one or more policies being temporary; the one or more policies occurring within one or more time limits; the one or more policies occurring within one or more times of a day; the one or more policies occurring at one or more locations; the one or more policies depending on one or more thresholds to user action; and the one or more policies depending on sensor data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2013
From: LIGMAN, JOSEPH WILLIAM; PISTOIA, MARCO; PONZO, JOHN; THOMAS, GEGI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 031123/0451 →
Continuity (1)
Related Publication 20150067664A1 · Mar 5, 2015