IP Library › Granted Patent US 12,020,045
Granted Patent B1
US 12,020,045 · App. 18/344,603 · Granted Jun 25, 2024

Architecture for building native graphical user interfaces

Inventors: Jesse Wilson (Kitchener, CA); Jacob Wharton (McMurray, PA); Eric Firestone (West Lake Hills, TX)
Assignee: Block, Inc.
G06F9/451
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 12,020,045
App. No.
18/344,603
Filed
Jun 29, 2023
Granted
Jun 25, 2024
Kind
B1
Art Unit
2145
USPC
715/762
Abstract

Systems and methods are disclosed for updating an application's user interface (UI) without updating the application. A system provides, for a client device, an application with host instructions having host memory and a guest environment having guest memory. The system receives guest instructions relating to an update to a UI element to be presented via the application's UI without the application being updated. The system selects, based on the client device's platform, a native UI type for the UI element, selected from possible UI types corresponding to different platforms. The system bridges an interaction between a function of the guest instructions and a function of the host instructions without the guest memory and the host memory sharing memory. The system causes the application to display, via the UI, the UI element according to the native UI type based on the bridging and without the application being updated.

Claims (48)

1. A method for updating a user interface of an application without requiring the application to be updated, the method comprising:

providing the application for use by a client device, the application including host instructions having a host memory and a guest environment having a guest memory that is separate from the host memory;

receiving guest instructions after providing the application, the guest instructions relating to an update to at least one user interface element that is to be presented via the user interface of the application without requiring the application to be updated, the guest instructions also including guest instruction logic identifying behavior of the application responsive to an interaction with the at least one user interface element;

selecting, based on a platform used by the client device, a native user interface type for the at least one user interface element associated with the guest instructions, the native user interface type being selected from a plurality of possible user interface types corresponding to different platforms, wherein the native user interface type influences an appearance of the at least one user interface element;

bridging, in response to the interaction with the at least one user interface element, at least one logic interaction between at least one function to be executed as part of the guest instructions according to the behavior indicated by the guest instruction logic and at least one function to be executed as part of the host instructions without sharing memory between the guest memory and the host memory; and

causing the application to display, via the user interface, the at least one user interface element associated with the guest instructions according to the appearance influenced by the native user interface type based on the bridging of the at least one logic interaction between the at least one function of the guest instructions and the at least one function of the host instructions and without requiring the application to be updated.

2. The method of claim 1 , wherein the different platforms include different operating systems, and wherein the platform used by the client device is an operating system used by the client device.

3. The method of claim 1 , wherein the different platforms includes a web page configured for viewing using a web browser.

4. The method of claim 1 , wherein the bridging of the at least one logic interaction includes:

receiving at least one value as an output of the at least one function of the host instructions, and

providing the at least one value as an input to the at least one function of the guest instructions.

5. The method of claim 1 , further comprising:

identifying an application-specific user interface attribute that is specific to the application; and

combining the native user interface type with the application-specific user interface attribute to generate a combined user interface type, wherein causing the application to display the at least one user interface element according to the native user interface type includes causing the application to display the at least one user interface element according to the combined user interface type.

6. A method for updating a user interface of an application without updating the application, the method comprising:

receiving guest instructions for the application to be run on a client device, the application including host instructions having a host memory and a guest environment having a guest memory that is separate from the host memory, the guest instructions relating to an update to at least one user interface element that is to be presented via the user interface of the application, the guest instructions also including guest instruction logic identifying behavior of the application responsive to an interaction with the at least one user interface element;

selecting, based on a platform used by the client device, a native user interface type for the at least one user interface element associated with the guest instructions, the native user interface type being selected from a plurality of possible user interface types corresponding to different platforms, wherein the native user interface type influences an appearance of the at least one user interface element;

bridging, in response to the interaction with the at least one user interface element, at least one logic interaction between at least one function to be executed as part of the guest instructions according to the behavior indicated by the guest instruction logic and at least one function to be executed as part of the host instructions without sharing memory between the guest memory and the host memory, and

causing the application to display, via the user interface, the at least one user interface element associated with the guest instructions according to the appearance influenced by the native user interface type.

7. The method of claim 6 , further comprising:

providing the application for use by the client device.

8. The method of claim 6 , wherein causing the application to display the at least one user interface element according to the native user interface type is based on the bridging of the at least one logic interaction between the at least one function of the guest instructions and the at least one function of the host instructions.

9. The method of claim 6 , wherein the bridging of the at least one logic interaction includes:

receiving at least one value as an output of the at least one function of the host instructions, and

providing the at least one value as an input to the at least one function of the guest instructions.

10. The method of claim 6 , wherein the different platforms include different operating systems, and wherein the platform used by the client device is an operating system used by the client device.

11. The method of claim 6 , wherein the different platforms includes a web page configured for viewing using a web browser.

12. The method of claim 6 , further comprising:

identifying an application-specific user interface attribute that is specific to the application; and

combining the native user interface type with the application-specific user interface attribute to generate a combined user interface type, wherein causing the application to display the at least one user interface element according to the native user interface type includes causing the application to display the at least one user interface element according to the combined user interface type.

13. A system for updating a user interface of an application without updating the application, the system comprising:

at least one memory; and

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

receive guest instructions for the application to be run on a client device, the application including host instructions having a host memory and a guest environment having a guest memory that is separate from the host memory, the guest instructions relating to an update to at least one user interface element that is to be presented via the user interface of the application, the guest instructions also including guest instruction logic identifying behavior of the application responsive to an interaction with the at least one user interface element;

select, based on a platform used by the client device, a native user interface type for the at least one user interface element associated with the guest instructions, the native user interface type being selected from a plurality of possible user interface types corresponding to different platforms, wherein the native user interface type influences an appearance of the at least one user interface element;

bridge, in response to the interaction with the at least one user interface element, at least one logic interaction between at least one function to be executed as part of the guest instructions according to the behavior indicated by the guest instruction logic and at least one function to be executed as part of the host instructions without sharing memory between the guest memory and the host memory; and

cause the application to display, via the user interface, the at least one user interface element associated with the guest instructions according to the appearance influenced by the native user interface type.

14. The system of claim 13 , wherein causing the application to display the at least one user interface element according to the native user interface type is based on the bridging of the at least one logic interaction between the at least one function of the guest instructions and the at least one function of the host instructions.

15. The system of claim 13 , wherein, to bridge the at least one logic interaction, the at least one processor is configured to:

receive at least one value as an output of the at least one function of the host instructions, and

provide the at least one value as an input to the at least one function of the guest instructions.

16. The system of claim 13 , wherein the different platforms include different operating systems, and wherein the platform used by the client device is an operating system used by the client device.

17. The system of claim 13 , wherein the different platforms includes a web page configured for viewing using a web browser.

18. The system of claim 13 , the at least one processor configured to:

identify an application-specific user interface attribute that is specific to the application; and

combine the native user interface type with the application-specific user interface attribute to generate a combined user interface type, wherein causing the application to display the at least one user interface element according to the native user interface type includes causing the application to display the at least one user interface element according to the combined user interface type.

19. The method of claim 6 , wherein the interaction with the at least one user interface element is associated with an input received at an input interface.

20. The system of claim 13 , wherein the interaction with the at least one user interface element is associated with an input received at an input interface.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 17, 2023
From: WILSON, JESSE; WHARTON, JACOB; FIRESTONE, ERIC
To: BLOCK, INC.
Reel/Frame 065249/0861 →
Continuity (1)
Provisional Application 63470577 · Jun 2, 2023
Cited By (5)
US 12,277,574 US 12,518,109 US 12,579,159 US 12,650,861 US 12,675,543