IP Library › Granted Patent US 11,003,317
Granted Patent B2
US 11,003,317 · App. 16/221,075 · Granted May 11, 2021

Desktop and mobile graphical user interface unification

Inventors: Eric Jacobson (San Jose, CA); Michael Gonzalez (Danville, CA); Wayne Cho (San Mateo, CA); Adheip Varadarajan (Daly City, CA); Daniel McCall (San Rafael, CA); Victor Oliveros (San Francisco, CA); Annie Abrahamian (La Crescenta, CA); David Klein (San Francisco, CA); Nicholas Howland (Kansas City, MO); Kyle Haskins (Novato, CA); John Vollmer (Oakland, CA); Benjamin Snyder (Oakland, CA); Mike Rosenbaum (Alameda, CA)
Assignee: salesforce.com, inc.
G06F3/0482G06F3/0483G06F3/04845
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 11,003,317
App. No.
16/221,075
Granted
May 11, 2021
Kind
B2
Abstract

Disclosed herein are system, method, and computer program product embodiments for unifying graphical user interface (GUI) displays across different device types. In an embodiment, a unification system may convert various GUI view appearing on, for example, a desktop device into a GUI view on a mobile device. Both devices may be accessing the same application and/or may use a cloud computing platform to access the application. The unification system may aid in reproducing GUI modifications performed on one user device onto other user devices. In this manner, the unification system may maintain a consistent look-and-feel for a user across different computing device type.

Claims (72)

1. A computer-implemented method, comprising:

identifying a first graphical user interface (GUI) corresponding to a first device, wherein the first GUI includes a plurality of GUI widgets of an application in a first arrangement,

wherein the plurality of GUI widgets is configured to be manipulated by a user to interact with the application, and

wherein the plurality of GUI widgets comprises a first widget, a second widget, and a third widget;

sequentially assigning a value to each GUI widget of the plurality of GUI widgets based on locations of the plurality of GUI widgets in the first arrangement to generate a set of assigned values,

wherein the set of assigned values defines an order of the plurality of GUI widgets,

wherein the value assigned to the second widget exceeds the value assigned to the first widget, and

wherein the value assigned to the third widget exceeds the value assigned to the second widget;

storing the set of assigned values in a page definition for the application;

receiving a request to view the application on a second device;

in response to the receiving, retrieving the set of assigned values from the page definition for the application; and

transmitting a GUI command to the second device causing the second device to generate a second GUI, the second GUI including the plurality of GUI widgets in a second arrangement based on the order defined by the set of assigned values retrieved from the page definition.

2. The computer-implemented method of claim 1 , wherein the second arrangement includes the plurality of GUI widgets in a vertical column according to the order defined by the set of assigned values.

3. The computer-implemented method of claim 1 , wherein the plurality of GUI widgets is arranged horizontally in the first arrangement on the first GUI, and wherein the plurality of GUI widgets is arranged vertically in the second arrangement on the second GUI.

4. The computer-implemented method of claim 1 , wherein the first device is a desktop computing device and the second device is a mobile computing device.

5. The computer-implemented method of claim 1 , further comprising:

receiving, in response to the user modifying a location of a GUI widget of the plurality of GUI widgets within the second GUI, a reordering command from the second device;

updating the set of assigned values stored in the page definition such that the set of assigned values incorporates modification of the location of the GUI widget, the updated set of assigned values defining an updated order; and

transmitting a GUI command to the first device causing the first device to generate a third GUI, the third GUI including the plurality of GUI widgets arranged according to the updated order defined by the updated set of assigned values,

wherein the second GUI and the third GUI are different sizes.

6. The computer-implemented method of claim 1 , further comprising:

determining that a user has been granted permission to access the plurality of GUI widgets of the application; and

in response to the determining, transmitting a GUI command to the first device causing the first device to generate the first GUI.

7. The computer-implemented method of claim 1 , wherein the page definition is stored in a cloud computing database.

8. A system, comprising:

a memory; and

at least one processor coupled to the memory and configured to:

identify a first graphical user interface (GUI) corresponding to a first device, wherein the first GUI includes a plurality of GUI widgets of an application in a first arrangement,

wherein the plurality of GUI widgets is configured to be manipulated by a user to interact with the application, and

wherein the plurality of GUI widgets comprises a first widget, a second widget, and a third widget;

sequentially assign a value to each GUI widget of the plurality of GUI widgets based on locations of the plurality of GUI widgets in the first arrangement to generate a set of assigned values,

wherein the set of assigned values defines an order of the plurality of GUI widgets,

wherein the value assigned to the second widget exceeds the value assigned to the first widget, and

wherein the value assigned to the third widget exceeds the value assigned to the second widget;

store the set of assigned values in a page definition for the application;

receive a request to view the application on a second device;

in response to the receiving, retrieve the set of assigned values from the page definition for the application; and

transmit a GUI command to the second device causing the second device to generate a second GUI, the second GUI including the plurality of GUI widgets in a second arrangement based on the order defined by the set of assigned values retrieved from the page definition.

9. The system of claim 8 , wherein the second arrangement includes the plurality of GUI widgets in a vertical column according to the order defined by the set of assigned values.

10. The system of claim 8 , wherein the plurality of GUI widgets is arranged horizontally in the first arrangement on the first GUI, and wherein the plurality of GUI widgets is arranged vertically in the second arrangement on the second GUI.

11. The system of claim 8 , wherein the first device is a desktop computing device and the second device is a mobile computing device.

12. The system of claim 8 , wherein the at least one processor is further configured to:

receive, in response to the user modifying a location of a GUI widget of the plurality of GUI widgets within the second GUI, a reordering command from the second device;

update the set of assigned values stored in the page definition such that the set of assigned values incorporates modification of the location of the GUI component widget, the updated set of assigned values defining an updated order; and

transmit a GUI command to the first device causing the first device to generate a third GUI, the third GUI including the plurality of GUI widgets arranged according to the updated order defined by the updated set of assigned values,

wherein the second GUI and the third GUI are different sizes.

13. The system of claim 8 , wherein the at least one processor is further configured to:

determine that a user has been granted permission to access the plurality of GUI widgets of the application; and

in response to the determining, transmit a GUI command to the first device causing the first device to generate the first GUI.

14. The system of claim 8 , wherein the page definition is stored in a cloud computing database.

15. A non-transitory computer-readable device having instructions stored thereon that, when executed by at least one computing device, cause the at least one computing device to perform operations comprising:

identifying a first graphical user interface (GUI) corresponding to a first device, wherein the first GUI includes a plurality of GUI widgets of an application in a first arrangement, wherein the plurality of GUI widgets is configured to be manipulated by a user to interact with the application, and

wherein the plurality of GUI widgets comprises a first widget, a second widget, and a third widget;

sequentially assigning a value to each GUI widget of the plurality of GUI components widgets based on locations of the plurality of GUI widgets in the first arrangement to generate a set of assigned values,

wherein the set of assigned values defines an order of the plurality of GUI widgets,

wherein the value assigned to the second widget exceeds the value assigned to the first widget, and

wherein the value assigned to the third widget exceeds the value assigned to the second widget;

storing the set of assigned values in a page definition for the application;

receiving a request to view the application on a second device;

in response to the receiving, retrieving the set of assigned values from the page definition for the application; and

transmitting a GUI command to the second device causing the second device to generate a second GUI, the second GUI including the plurality of GUI widgets in a second arrangement based on the order defined by the set of assigned values retrieved from the page definition.

16. The non-transitory computer-readable device of claim 15 , wherein the second arrangement includes the plurality of GUI widgets arranged in a vertical column according to the order defined by the set of assigned values.

17. The non-transitory computer-readable device of claim 15 , wherein the plurality of GUI widgets is arranged horizontally in the first arrangement on the first GUI, and wherein the plurality of GUI widgets is arranged vertically on the second GUI.

18. The non-transitory computer-readable device of claim 15 , wherein the first device is a desktop computing device and the second device is a mobile computing device.

19. The non-transitory computer-readable device of claim 15 , the operations further comprising:

receiving, in response to the user modifying a location of a GUI widget of the plurality of GUI widgets within the second GUI, a reordering command from the second device;

updating the set of assigned values stored in the page definition such that the set of assigned values incorporates modification of the location of the GUI widget, the updated set of assigned values defining an updated order; and

transmitting a GUI command to the first device causing the first device to generate a third GUI, the third GUI including the plurality of GUI widgets arranged according to the updated order defined by the updated set of assigned values,

wherein the second GUI and the third GUI are different sizes.

20. The non-transitory computer-readable device of claim 15 , the operations further comprising:

determining that a user has been granted permission to access the plurality of GUI widgets of the application; and

in response to the determining, transmitting a GUI command to the first device causing the first device to generate the first GUI.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2019
From: JACOBSON, ERIC; GONZALEZ, MICHAEL; CHO, WAYNE; VARADARAJAN, ADHEIP; MCCALL, DANIEL; OLIVEROS, VICTOR; ABRAHAMIAN, ANNIE; KLEIN, DAVID; HOWLAND, NICHOLAS; HASKINS, KYLE; VOLLMER, JOHN; SNYDER, BENJAMIN; ROSENBAUM, MIKE
To: SALESFORCE.COM, INC.
Reel/Frame 050461/0458 →
Continuity (2)
Provisional Application 62735496 · Sep 24, 2018
Related Publication 20200097137A1 · Mar 26, 2020
Cited By (3)
US 12,632,442 US 12,645,674 US 12,670,151