Programmatic native rendering of structured content
First Claim
Patent Images
1. A computing device, comprising:
- memory including an operating system implemented in a platform-specific language, native user interface (UI) components, and an application implemented in the platform-specific language, the application including a UI layout engine;
a display; and
one or more processors operatively coupled to the memory and the display, the one or more processors being configured to use the UI layout engine to;
build a UI layout tree using a UI layout description received from a remote platform responsive to a call by the application or the UI layout engine to the remote platform, the UI layout description specified in a UI layout description language that is different from the platform-specific language and corresponding to at least one of a particular content type or a data source;
bind data received by the computing device from one or more remote platforms to one or more elements of the UI layout tree, the data including or representing content;
determine a UI layout position for each of the one or more elements of the UI layout tree;
generate a native view using the UI layout tree, the data bound to the one or more elements of the UI layout tree, the UI layout position of each of the one or more elements of the UI layout tree, and the native UI components;
the one or more processors being configured to present the content using a UI corresponding to the native view on the display;
store the native view in a pool of recently used views;
responsive to determining a new layout, determine whether one or more views corresponding to the new layout are in the pool of recently used views; and
responsive to determining that the native view in the pool of recently used views corresponds to the new layout, use the native view to present content of the new layout.
6 Assignments
0 Petitions
Accused Products
Abstract
A user interface (UI) layout description language is described in which a UI may be specified for presentation by different versions of the same app running on different platforms. A layout engine written in a platform-specific language parses the UI layout description and transforms it to a native view using native UI components. The app on each platform has its own layout engine, but each can use the same layout description to generate a native view. Thus, a UI can be built once for all of the platforms. And because the UI layout engines are written in the language of their corresponding platforms, the UIs generated are high performing.
27 Citations
25 Claims
-
1. A computing device, comprising:
-
memory including an operating system implemented in a platform-specific language, native user interface (UI) components, and an application implemented in the platform-specific language, the application including a UI layout engine; a display; and one or more processors operatively coupled to the memory and the display, the one or more processors being configured to use the UI layout engine to; build a UI layout tree using a UI layout description received from a remote platform responsive to a call by the application or the UI layout engine to the remote platform, the UI layout description specified in a UI layout description language that is different from the platform-specific language and corresponding to at least one of a particular content type or a data source; bind data received by the computing device from one or more remote platforms to one or more elements of the UI layout tree, the data including or representing content; determine a UI layout position for each of the one or more elements of the UI layout tree; generate a native view using the UI layout tree, the data bound to the one or more elements of the UI layout tree, the UI layout position of each of the one or more elements of the UI layout tree, and the native UI components; the one or more processors being configured to present the content using a UI corresponding to the native view on the display; store the native view in a pool of recently used views; responsive to determining a new layout, determine whether one or more views corresponding to the new layout are in the pool of recently used views; and responsive to determining that the native view in the pool of recently used views corresponds to the new layout, use the native view to present content of the new layout. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer program product comprising one or more non-transitory computer-readable media having computer program instructions stored therein, the computer program instructions being in a platform-specific language of an operating system and being configured such that, when executed by one or more processors, the computer program instructions cause the one or more processors to:
-
build a user interface (UI) layout tree using a UI layout description received from a remote platform responsive to a search query transmitted to the remote platform, the UI layout description specified in a UI layout description language that is different from the platform-specific language and corresponding to at least one of a particular content type or a data source; process data received from one or more remote platforms responsive to the search query, the data including or representing one or more search results; bind the data to one or more elements of the UI layout tree; determine a UI layout position for each of the one or more elements of the UI layout tree; generate a native view of a UI using the UI layout tree, the data bound to the one or more elements of the UI layout tree, the UI layout position of each of the one or more elements of the UI layout tree, and native UI components associated with the operating system; present the one or more search results using the UI corresponding to the native view on a display; store the native view in a pool of recently used views; responsive to determining a new layout, determine whether one or more views corresponding to the new layout are in the pool of recently used views; and responsive to determining that the native view in the pool of recently used views corresponds to the new layout, use the native view to present one or more second search results of the new layout. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer-implemented method, comprising:
-
transmitting a search query to a remote platform; receiving a user interface (UI) layout description from the remote platform responsive to the search query, the UI layout description specified in a UI layout description language that is different from a platform-specific language and corresponding to at least one of a particular content type or a data source; building a UI layout tree using the UI layout description; process data received from one or more remote platforms responsive to the search query, the data including or representing one or more search results; binding the data to one or more elements of the UI layout tree; determining a UI layout position for each of the one or more elements of the UI layout tree; generating a native view of a UI using the UI layout tree, the data bound to the one or more elements of the UI layout tree, the UI layout position of each of the one or more elements of the UI layout tree, and native UI components associated with an operating system; presenting the one or more search results using the UI corresponding to the native view on a display; storing the native view in a pool of recently used views; responsive to determining a new layout, determining that one or more views corresponding to the new layout are in the pool of recently used views; and responsive to determining that the native view in the pool of recently used views corresponds to the new layout, using the native view to present one or more second search results of the new layout. - View Dependent Claims (20, 21, 22, 23, 24, 25)
-
Specification