US20160359654A1 - Mobile client application for managing user interface components - Google Patents
Mobile client application for managing user interface components Download PDFInfo
- Publication number
- US20160359654A1 US20160359654A1 US13/590,920 US201213590920A US2016359654A1 US 20160359654 A1 US20160359654 A1 US 20160359654A1 US 201213590920 A US201213590920 A US 201213590920A US 2016359654 A1 US2016359654 A1 US 2016359654A1
- Authority
- US
- United States
- Prior art keywords
- user interface
- mobile device
- interface components
- screen
- canvas
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 230000009471 action Effects 0.000 claims abstract description 21
- 238000000034 method Methods 0.000 claims description 27
- 230000004044 response Effects 0.000 claims 3
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000003973 paint Substances 0.000 description 2
- 208000018747 cerebellar ataxia with neuropathy and bilateral vestibular areflexia syndrome Diseases 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- VJYFKVYYMZPMAB-UHFFFAOYSA-N ethoprophos Chemical compound CCCSP(=O)(OCC)SCCC VJYFKVYYMZPMAB-UHFFFAOYSA-N 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L27/00—Modulated-carrier systems
- H04L27/26—Systems using multi-frequency codes
- H04L27/2601—Multicarrier modulation systems
- H04L27/2626—Arrangements specific to the transmitter only
- H04L27/2627—Modulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0485—Scrolling or panning
Definitions
- the present invention relates generally to mobile client applications.
- the present invention is a mobile client application for managing user interface components that display content from a mobile content provider.
- Mobile computing services As mobile computing services as well as powerful mobile computing devices have proliferated, people increasingly view their cell phones and other mobile devices as their communication medium of choice.
- Mobile based services are wide ranging and include not only basic telecommunications and text messaging services but also web browsing and information retrieval, games, music, and even movie and television viewing. Many people are choosing to use mobile devices and services over traditional desktop devices and wire services.
- Designing user interfaces for mobile devices is more complex than designing for desktops. In addition to much smaller screens, limited input capabilities, and limited memory, the number of devices that a mobile based content provider must support to reach potential customers is substantial.
- Various mobile client platforms have been developed and adopted by different device manufacturers such that a client application conforming to the platform standards can operate on multiple devices. The mobile platform executes on the mobile operating system for the device but, typically provides only basic, common functionality for device communication and interaction. Some platforms may provide more than basic features and functionality but they do not nor are they intended to provide all of the features and functionality found in most mobile client applications.
- each manufacturer may implement the industry standard in a different way such that an application compatible with one implementation of the standard must be modified in some way to operate on a different implementation of the standard.
- Developing a client application that conforms to a wide variety of mobile platforms and that provides a wide range of features and functionality is challenging. It can be particularly difficult for mobile content services that provide a graphic-rich user interface as well as a substantial amount of content.
- a developer that creates a mobile application must “port” that application to each and every device on which the developer would like the application to run. The developer is dependent on each manufacturer's implementation of industry standards and related requirements. For instance, a mobile service provider may require a developer's application to work on a minimum number of phones. The minimum number may be substantial. Currently, one mobile service provider requires support of 34 phones.
- the mobile service provider may further define this minimum set of phones by manufacturer and model so the developer knows what phones must be supported (and therefore, requires porting of the application) in order to use the service provider's network. If the developer completes the ports to each phone, the cost may be managed but the developer needs to know and understand the nuances the manufacturer implemented around the industry supported specifications and then make adjustments in the code base to accommodate the manufacturer's implementations on that specific phone. Many developers use external third parties for the porting process because porting is a time-consuming activity and may not be the developer's specialty. Additionally, many mobile service providers require the developer to have each port “certified” (e.g., using National Software Testing Labs mobile certification) in order to be allowed on the network. This requirement is also time-consuming and costly.
- each port “certified” e.g., using National Software Testing Labs mobile certification
- a common goal for mobile applications is complete device independence. Device independence, however, often requires tradeoffs with respect to performance as well as features and functionality.
- a mobile client application that supports a graphic intensive content service that offers substantial device independence to allow it to operate on many different mobile devices, and that has acceptable performance characteristics on the mobile devices where it executes.
- a mobile client application that abstracts the user interface from the device and places the logic for the device specifics and the end result interface on a server.
- the present invention is a mobile client application for managing user interface components. It supports graphic intensive content and is device independent so that it can operate on a variety of different mobile devices.
- Mobile device screen user interface components are defined using XML documents stored at a server. Each XML document defines one or more user interface components with associated actions or behavior including draw when displayed and drawing aspect when selected.
- a main canvas memory is initialized at the device to manage all images, text, and widgets generated using the XML schema.
- An XML parser at the device pushes the user interface components to the main canvas as they are being parsed and retrieved from the server via HTTP or HTTPS. Drawing does not occur while the components are parsed and retrieved. Instead, drawing occurs after all components have been parsed and created in the main canvas memory.
- the entire canvas is drawn in the main canvas memory but only a portion of the canvas is displayed on the mobile device screen at any time.
- Scrolling of user interface component elements is managed by tracking the selected items on the screen, and offsetting the main canvas by the number of pixels required to draw the selected element on the screen.
- FIG. 1 is a create parser object flow diagram for an example embodiment.
- FIG. 2 is a parsing tags flow diagram for an example embodiment.
- FIG. 3 is a component creation flow diagram for an example embodiment.
- FIG. 4 is a drawing flow diagram for an example embodiment.
- FIG. 5 is a key events, selectivity, and action control flow diagram for an example embodiment.
- FIG. 6 is an action tag flow diagram for an example embodiment.
- FIGS. 7 and 8 are sample mobile client user interface screens according to an example embodiment.
- FIG. 1 illustrates the main processing unit for the client application (i.e., SUITE).
- client application i.e., SUITE
- SUITE creates a parser object 100
- initializes the mobile screen display 102 and sets the default URL value 104 .
- the default URL value contains none or several parameters that are passed to a server-based infrastructure to determine the contents of the first screen (e.g., Login).
- a server-based infrastructure to determine the contents of the first screen (e.g., Login).
- FIG. 2 a parsing tags flow diagram for an example embodiment is shown.
- a set of internal components are created according to a matching tag or tags in the XML document.
- FIG. 2 depicts the logic associated with this process.
- an HTTP or HTTPS link is created to request a URL 112 .
- This URL may be a default URL (e.g., Login) or any URL contained in any of the XML data retrieved from the server.
- the value is pushed to a “Global Stack,” 114 which is then used for navigation within the mobile client application.
- One of the main components is the main canvas memory (MainCanvas).
- the MainCanvas is initialized 116 to paint all images, text, and widgets generated thru the XML schema. Table 1 shows a sample XML page which is used by the mobile client application.
- User interface components that may be supported include: Input Text Box; String; Image; Button; Action Button; and Radio Button.
- the mobile client application Upon retrieval of the XML-defined page, the mobile client application examines each tag 118 , checks for an end of document token 120 , and creates associated user interface components 122 until the end of document token is found. Most of the visualized components are derived from the uiComponent class which defines the basic action or behavior per component, including draw when displayed and drawing aspect when selected. All components are pushed to the mainCanvas 124 as they are being parsed and retrieved from the server via HTTP or HTTPS. Drawing does not occur here.
- FIG. 3A illustrates generic component creation without action 130 .
- properties from the XML document include component position data (X and Y coordinates), title, name, and size 132 .
- a component When a component is created 134 , it may or may not be part of an embedded tag (e.g., button that contains text in which text is its own item).
- a simple flag is used with a pull parser to determine if the information being parsed from the XML document belongs to a new component or if it is part of a different component 136 . This is also the case when a component has an associated action.
- An action does not display anything on the screen but allows the component to execute a task (e.g., Go to a server, Obtain GPS information). The action is then associated to that particular component, as shown in FIG. 3B . The new component is then added to the MainCanvas object 138 .
- a task e.g., Go to a server, Obtain GPS information.
- the action is then associated to that particular component, as shown in FIG. 3B .
- the new component is then added to the MainCanvas object 138 .
- FIG. 3B a component creation with an Action Tag flow diagram for an example embodiment is shown.
- FIG. 3B illustrates generic component creation with action 140 .
- properties from the XML page include component position data (X and Y coordinates), title, name, and size 142 .
- the object is created 144 followed by the Action Tag 146 .
- drawing flow diagram for an example embodiment is shown. Once all components have been parsed and created, drawing occurs by traversing a vector or array of uiComponent elements 152 that are part of the mainCanvas object 150 . A different drawing algorithm 156 , 158 may be used to draw the component when selected 154 . A counter for the number of components in the object is incremented 160 and process continues for all components of the object 152 .
- “Selectivity” is defined in FIG. 5 as a function of the key events received by the midlet or application. The entire Canvas is drawn. What is displayed, however, is only a fraction of the total memory used when the MainCanvas object was created. In general, the X amounts of screens can be drawn, and it is clear from the diagram that main canvas could also be an array of canvases in which a URL could be used as a key element to cache multiple screens when retrieving data. In other words, parsing creates objects not only for one XML page but for several pages. Additionally, in FIG. 3A and 3B , when images are retrieved from a server, those images are spawned into threads used to download contents of the widget in use. If the widget contents are found in the Record Management System, this process is not performed and instead locally stored files are used.
- FIG. 5 a key events, selectivity, and action control flow diagram for an example embodiment is shown.
- FIG. 5 illustrates the process of selecting components and drawing them. Once a key event is generated and a change is detected 170 , a new paint method is called in such a form that the main canvas is updated. Scrolling of user interface component elements is handled by keeping track of the selected components on the screen, and offsetting the main canvas by the number of pixels required to draw the selected component on the screen.
- a key UP event 172 simply decreases the value of the uiComponent being selected 174 , and a key DOWN 176 increases it by one 178 .
- a key DOWN 176 increases it by one 178 .
- the same logic is then used to manage “OK” or “FIRE” (accept) key on the handset 180 . If the component was created with an Action 182 , this Action is executed 184 ; if not, this is ignored. Similarly, special handling is required for an EditBox item 186 , for which key input events are forwarded to the EditBox component 188 .
- an action tag flow diagram for an example embodiment is shown.
- a FIRE key triggers the process 190 shown in FIG. 6 in which a new Parser is created and a new URL is pushed to the stack with the contents of the Action URL.
- the ActionTag traverses all uiComponents 194 looking for elements which might need to be posted back to the server (e.g., EditBox), parses the name and value entered on the screen 196 , and could either append the item to a HTTP GET URL or create a POST to the server 198 .
- FIGS. 7 and 8 sample mobile client user interface screens according to an example embodiment are shown.
- FIGS. 7 and 8 illustrate the types of user interface components and elements that may be used to create many screens that support user interaction with a remote site.
- each screen may comprise a plurality of components and elements.
- Top portions of the screen 200 , 202 may be used to identify a service (Sensei) and sub-service (Activity) for a remote application. Both text and graphics may be displayed in each portion 200 , 202 .
- a third portion of the screen may comprise text 206 and a widget 204 that supports user interaction.
- Another portion of the screen may comprise text boxes 210 and labels 208 that support entry of user data.
- the bottom portions of the screen may comprise additional text 214 , 216 as well as widgets 212 .
- FIG. 8 also illustrates the placement of user interface components and elements on a mobile device screen according to the present invention.
- the top portions of the screen 220 , 222 may be used to identify a service (Sensei) and sub-service (My Day) as well as to display a message 224 .
- Additional portions of the screen may have text and widgets to allow a user to complete certain activities such as to view messages 226 or to view details related to different activities 228 .
- the bottom portion may have additional text and widgets for navigating the client application 230 .
- Display details related to the position, size, etc. for each component shown in FIGS. 7 and 8 may vary for different mobile devices so that the resulting display generated by the mobile client application at each device is similar across different devices.
- the ability of the mobile client application to accept user interface component and display data from a content service and to render appropriate screen displays allows the content service to support many devices and furthermore, to support new mobile devices as they are developed.
- the present invention is a mobile client application that abstracts the user interface from the device and places the logic for the device specifics and the end result interface on a server. It allows a single client application to operate on a variety of mobile devices, even if the mobile devices use different implementations of known industry standards.
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- User Interface Of Digital Computer (AREA)
- Information Transfer Between Computers (AREA)
Abstract
A mobile client application for managing user interface components. Mobile device screen user interface components are defined using XML documents stored at a server. Each user interface component has associated actions including draw when displayed and drawing aspect when selected. A main canvas is initialized to manage all images, text, and widgets. An XML parser pushes the user interface components to the main canvas as they are parsed and retrieved from the server. Drawing occurs after all components have been parsed and created in the main canvas. The entire canvas is drawn but only a portion of the canvas is displayed at any time. Scrolling of user interface component elements is managed by tracking selected items on the screen, and offsetting the main canvas by the number of pixels required to draw the selected element on the screen.
Description
- This application claims priority to U.S. patent application Ser. No. 12/264,624, filed Nov. 4, 2008, titled MOBILE CLIENT APPLICATION FOR MANAGING USER INTERFACE COMPONENTS, now U.S. Pat. No. 8,250,477, issued Aug. 21, 2012, the contents of which are incorporated herein by reference.
- The present invention relates generally to mobile client applications. In particular, the present invention is a mobile client application for managing user interface components that display content from a mobile content provider.
- As mobile computing services as well as powerful mobile computing devices have proliferated, people increasingly view their cell phones and other mobile devices as their communication medium of choice. Mobile based services are wide ranging and include not only basic telecommunications and text messaging services but also web browsing and information retrieval, games, music, and even movie and television viewing. Many people are choosing to use mobile devices and services over traditional desktop devices and wire services.
- Designing user interfaces for mobile devices, however, is more complex than designing for desktops. In addition to much smaller screens, limited input capabilities, and limited memory, the number of devices that a mobile based content provider must support to reach potential customers is substantial. Various mobile client platforms have been developed and adopted by different device manufacturers such that a client application conforming to the platform standards can operate on multiple devices. The mobile platform executes on the mobile operating system for the device but, typically provides only basic, common functionality for device communication and interaction. Some platforms may provide more than basic features and functionality but they do not nor are they intended to provide all of the features and functionality found in most mobile client applications. Furthermore, each manufacturer may implement the industry standard in a different way such that an application compatible with one implementation of the standard must be modified in some way to operate on a different implementation of the standard.
- Developing a client application that conforms to a wide variety of mobile platforms and that provides a wide range of features and functionality is challenging. It can be particularly difficult for mobile content services that provide a graphic-rich user interface as well as a substantial amount of content. Even with the advent of industry standards for mobile devises, a developer that creates a mobile application must “port” that application to each and every device on which the developer would like the application to run. The developer is dependent on each manufacturer's implementation of industry standards and related requirements. For instance, a mobile service provider may require a developer's application to work on a minimum number of phones. The minimum number may be substantial. Currently, one mobile service provider requires support of 34 phones. The mobile service provider may further define this minimum set of phones by manufacturer and model so the developer knows what phones must be supported (and therefore, requires porting of the application) in order to use the service provider's network. If the developer completes the ports to each phone, the cost may be managed but the developer needs to know and understand the nuances the manufacturer implemented around the industry supported specifications and then make adjustments in the code base to accommodate the manufacturer's implementations on that specific phone. Many developers use external third parties for the porting process because porting is a time-consuming activity and may not be the developer's specialty. Additionally, many mobile service providers require the developer to have each port “certified” (e.g., using National Software Testing Labs mobile certification) in order to be allowed on the network. This requirement is also time-consuming and costly.
- A common goal for mobile applications is complete device independence. Device independence, however, often requires tradeoffs with respect to performance as well as features and functionality. There is a need for a mobile client application that supports a graphic intensive content service that offers substantial device independence to allow it to operate on many different mobile devices, and that has acceptable performance characteristics on the mobile devices where it executes. There is a need for a mobile client application that abstracts the user interface from the device and places the logic for the device specifics and the end result interface on a server.
- The present invention is a mobile client application for managing user interface components. It supports graphic intensive content and is device independent so that it can operate on a variety of different mobile devices. Mobile device screen user interface components are defined using XML documents stored at a server. Each XML document defines one or more user interface components with associated actions or behavior including draw when displayed and drawing aspect when selected. A main canvas memory is initialized at the device to manage all images, text, and widgets generated using the XML schema. An XML parser at the device pushes the user interface components to the main canvas as they are being parsed and retrieved from the server via HTTP or HTTPS. Drawing does not occur while the components are parsed and retrieved. Instead, drawing occurs after all components have been parsed and created in the main canvas memory. The entire canvas is drawn in the main canvas memory but only a portion of the canvas is displayed on the mobile device screen at any time. Scrolling of user interface component elements is managed by tracking the selected items on the screen, and offsetting the main canvas by the number of pixels required to draw the selected element on the screen.
-
FIG. 1 is a create parser object flow diagram for an example embodiment. -
FIG. 2 is a parsing tags flow diagram for an example embodiment. -
FIG. 3 is a component creation flow diagram for an example embodiment. -
FIG. 4 is a drawing flow diagram for an example embodiment. -
FIG. 5 is a key events, selectivity, and action control flow diagram for an example embodiment. -
FIG. 6 is an action tag flow diagram for an example embodiment. -
FIGS. 7 and 8 are sample mobile client user interface screens according to an example embodiment. - Referring to
FIG. 1 , a create parser object flow diagram for an example embodiment is shown.FIG. 1 illustrates the main processing unit for the client application (i.e., SUITE). Upon initialization SUITE creates aparser object 100, initializes themobile screen display 102, and sets thedefault URL value 104. The default URL value contains none or several parameters that are passed to a server-based infrastructure to determine the contents of the first screen (e.g., Login). Once the parser is launched 106 and completed, images or data stored in a device-based Record Management System which have already expired are then deleted 108. - Referring to
FIG. 2 , a parsing tags flow diagram for an example embodiment is shown. Upon creation of the XML Parser 110 which processes all tags contained by a server-generated content, a set of internal components are created according to a matching tag or tags in the XML document.FIG. 2 depicts the logic associated with this process. As a first step, an HTTP or HTTPS link is created to request aURL 112. This URL may be a default URL (e.g., Login) or any URL contained in any of the XML data retrieved from the server. Once this URL is known, the value is pushed to a “Global Stack,” 114 which is then used for navigation within the mobile client application. One of the main components is the main canvas memory (MainCanvas). The MainCanvas is initialized 116 to paint all images, text, and widgets generated thru the XML schema. Table 1 shows a sample XML page which is used by the mobile client application. -
TABLE 1 Sample XML Page <Screen> <next>SenseiScreen1</next> <name>SenseiScreen</name> <image> <name> image001 </name> <x>10</x> <y>10</y> <version>1.0</version> <url> http://www.sensei.com/AppMainLogo.png </url> </image> <text> <name> text001 </name> <x> 10 </x> <y> 100 </y> <color> #BBDDAA </color> <style>BOLD</style> <size>LARGE</large> <data>SENSEI INC </data> </text> </screen> - User interface components that may be supported include: Input Text Box; String; Image; Button; Action Button; and Radio Button.
- Upon retrieval of the XML-defined page, the mobile client application examines each
tag 118, checks for an end ofdocument token 120, and creates associateduser interface components 122 until the end of document token is found. Most of the visualized components are derived from the uiComponent class which defines the basic action or behavior per component, including draw when displayed and drawing aspect when selected. All components are pushed to themainCanvas 124 as they are being parsed and retrieved from the server via HTTP or HTTPS. Drawing does not occur here. - Referring to
FIG. 3A , a component creation flow diagram for an example embodiment is shown.FIG. 3A illustrates generic component creation withoutaction 130. When components are created they follow a basic logic, defined inFIG. 3A . In an example embodiment, properties from the XML document include component position data (X and Y coordinates), title, name, andsize 132. When a component is created 134, it may or may not be part of an embedded tag (e.g., button that contains text in which text is its own item). A simple flag is used with a pull parser to determine if the information being parsed from the XML document belongs to a new component or if it is part of adifferent component 136. This is also the case when a component has an associated action. An action does not display anything on the screen but allows the component to execute a task (e.g., Go to a server, Obtain GPS information). The action is then associated to that particular component, as shown inFIG. 3B . The new component is then added to theMainCanvas object 138. - Referring to
FIG. 3B , a component creation with an Action Tag flow diagram for an example embodiment is shown.FIG. 3B illustrates generic component creation withaction 140. In the example shown, properties from the XML page include component position data (X and Y coordinates), title, name, andsize 142. The object is created 144 followed by theAction Tag 146. - Referring to
FIG. 4 , a drawing flow diagram for an example embodiment is shown. Once all components have been parsed and created, drawing occurs by traversing a vector or array ofuiComponent elements 152 that are part of themainCanvas object 150. Adifferent drawing algorithm object 152. - “Selectivity” is defined in
FIG. 5 as a function of the key events received by the midlet or application. The entire Canvas is drawn. What is displayed, however, is only a fraction of the total memory used when the MainCanvas object was created. In general, the X amounts of screens can be drawn, and it is clear from the diagram that main canvas could also be an array of canvases in which a URL could be used as a key element to cache multiple screens when retrieving data. In other words, parsing creates objects not only for one XML page but for several pages. Additionally, inFIG. 3A and 3B , when images are retrieved from a server, those images are spawned into threads used to download contents of the widget in use. If the widget contents are found in the Record Management System, this process is not performed and instead locally stored files are used. - Referring to
FIG. 5 , a key events, selectivity, and action control flow diagram for an example embodiment is shown.FIG. 5 illustrates the process of selecting components and drawing them. Once a key event is generated and a change is detected 170, a new paint method is called in such a form that the main canvas is updated. Scrolling of user interface component elements is handled by keeping track of the selected components on the screen, and offsetting the main canvas by the number of pixels required to draw the selected component on the screen. - Therefore, a
key UP event 172 simply decreases the value of the uiComponent being selected 174, and akey DOWN 176 increases it by one 178. By default, only a few elements are selectable, but all of them could be selectable. The same logic is then used to manage “OK” or “FIRE” (accept) key on thehandset 180. If the component was created with anAction 182, this Action is executed 184; if not, this is ignored. Similarly, special handling is required for anEditBox item 186, for which key input events are forwarded to theEditBox component 188. - Referring to
FIG. 6 , an action tag flow diagram for an example embodiment is shown. For example, a FIRE key triggers theprocess 190 shown inFIG. 6 in which a new Parser is created and a new URL is pushed to the stack with the contents of the Action URL. Additionally, if the type of method is not “GET,” the ActionTag traverses alluiComponents 194 looking for elements which might need to be posted back to the server (e.g., EditBox), parses the name and value entered on thescreen 196, and could either append the item to a HTTP GET URL or create a POST to theserver 198. - Referring to
FIGS. 7 and 8 , sample mobile client user interface screens according to an example embodiment are shown.FIGS. 7 and 8 illustrate the types of user interface components and elements that may be used to create many screens that support user interaction with a remote site. Referring toFIG. 7 , each screen may comprise a plurality of components and elements. Top portions of thescreen portion text 206 and awidget 204 that supports user interaction. Another portion of the screen may comprisetext boxes 210 andlabels 208 that support entry of user data. The bottom portions of the screen may compriseadditional text widgets 212. -
FIG. 8 also illustrates the placement of user interface components and elements on a mobile device screen according to the present invention. The top portions of thescreen message 224. Additional portions of the screen may have text and widgets to allow a user to complete certain activities such as to viewmessages 226 or to view details related todifferent activities 228. Finally, the bottom portion may have additional text and widgets for navigating theclient application 230. - Display details related to the position, size, etc. for each component shown in
FIGS. 7 and 8 may vary for different mobile devices so that the resulting display generated by the mobile client application at each device is similar across different devices. The ability of the mobile client application to accept user interface component and display data from a content service and to render appropriate screen displays allows the content service to support many devices and furthermore, to support new mobile devices as they are developed. - The present invention is a mobile client application that abstracts the user interface from the device and places the logic for the device specifics and the end result interface on a server. It allows a single client application to operate on a variety of mobile devices, even if the mobile devices use different implementations of known industry standards.
- It will be recognized by those of skill in the art that various modifications, alternative implementations, and equivalents may be used without departing from the spirit of the invention. Accordingly, the above description does not limit the scope of the invention, which is defined in the following claims.
Claims (18)
1. A method for displaying on a mobile device a user interface with a plurality of user interface components comprising:
(a) receiving at said mobile device at least one XML document defining a plurality of user interface components for a screen on said mobile device;
(b) initializing at said mobile device a canvas object for holding said plurality of user interface components at said mobile device;
(c) parsing at said mobile device said XML documents defining user interface components wherein parsing a XML document comprises:
i. extracting a token from said XML document;
ii. creating at said mobile device in said canvas object a user interface component based on said token;
iii. adding properties for said user interface component to said canvas object including a number of pixels for said user interface component; and
iv. repeating steps i-iii until an end for said XML document is reached;
(d) drawing all of said user interface components of said canvas object in a canvas memory;
(e) receiving at said device a key event;
(f) using said key event, selecting a subset of user interface components from said canvas memory for display on a screen on the mobile device;
(g) displaying said subset of user interface components on said screen for said mobile device; and
(h) updating said screen on said mobile device by:
i. selecting a new user interface component from said canvas object; and
ii. drawing said new user interface component on said screen according to said number of pixels for said new user interface component.
2. The method of claim 1 wherein said user interface components are selected from the group consisting of an input text box, an edit box, a string, an image, a button, an action button, and a radio button.
3. The method of claim 1 wherein said key event is selected from the group consisting of key up, key down, and accept.
4. The method of claim 1 further comprising:
(i) receiving an accept key event;
(j) determining a selected user interface component on said screen in response to said key event;
(k) selecting a new subset of user interface components from said canvas memory; and
(l) updating said screen with said new user interface components from said canvas memory.
5. The method of claim 1 wherein properties for said user interface component comprises position data, title, name, and size.
6. The method of claim 5 wherein position data for said user interface component comprises X and Y coordinates.
7. A method for providing user interface components of a user interface to a mobile device comprising:
(a) creating a plurality of XML documents defining user interface components for a screen on said mobile device;
(b) transferring from a server to said mobile device a client application for execution at said mobile device, said client application adapted to receive and parse said XML documents;
(c) transferring from said server to said mobile device a URL for accessing said XML documents defining said user interface components;
(d) receiving from said mobile device at said server a request for at least one of said XML documents associated with said URL;
(e) transferring from said server to said mobile device said at least one XML document wherein said client application responds by:
(1) initializing at said mobile device a canvas object for holding a plurality of user interface components at said mobile device;
(2) parsing at said mobile device said XML document to:
(i) extract a token from said XML document;
(ii) create at said mobile device in said canvas object a user interface component based on said token;
(iii) add properties for said user interface component to said canvas object including a number of pixels for said user interface component; and
(iv) repeating steps i-iii until an end for said XML document is reached;
(3) drawing all of said user interface components of said canvas object in a canvas memory;
(4) receiving at said mobile device a key event;
(5) using said key event, selecting a subset of user interface components from said canvas memory; and
(6) displaying said subset of user interface components on said screen for said mobile device; and
(7) updating said screen on said mobile device by:
(i) selecting a new user interface component from said canvas object; and
(ii) drawing said new user interface component on said screen according to said number of pixels for said new user interface component.
8. The method of claim 7 wherein said user interface components are selected from the group consisting of an input text box, an edit box, a string, an image, a button, an action button, and a radio button.
9. The method of claim 7 wherein said key event is selected from the group consisting of key up, key down, and accept.
10. The method of claim 7 wherein step (e) further comprises:
(8) receiving an accept key event;
(9) determining a selected user interface component on said screen in response to said key event;
(10) selecting a new subset of user interface components from said canvas memory; and
(11) updating said screen with said new user interface components from said canvas memory.
11. The method of claim 7 wherein properties for said user interface component comprising position data, title, name, and size.
12. The method of claim 11 wherein position data for said user interface component comprises X and Y coordinates.
13. A method for displaying user interface components on a mobile device comprising:
(a) receiving at a mobile device a URL for accessing at least one XML document defining a plurality of user interface components;
(b) initializing at said mobile device a canvas object for holding said plurality of user interface components at said mobile device;
(c) adding said user interface components from said XML document to said canvas object until an end for said XML document is reached;
(d) drawing all of said user interface components of said canvas object in a canvas memory;
(e) receiving at said device a key event;
(f) using said key event to select a subset of user interface components from said canvas memory for display on a screen on the mobile device;
(g) displaying said subset of user interface components on said screen for said mobile device; and
(h) updating said screen on said mobile device by:
(i) selecting a new user interface component from said canvas object; and
(ii) drawing said new user interface component on said screen according to a number of pixels for said new user interface component.
14. The method of claim 13 wherein said user interface components are selected from the group consisting of an input text box, an edit box, a string, an image, a button, an action button, and a radio button.
15. The method of claim 13 wherein said key event is selected from the group consisting of key up, key down, and accept.
16. The method of claim 13 further comprising:
(i) receiving an accept key event;
(j) determining a selected user interface component on said screen in response to said key event;
(k) selecting a new subset of user interface components from said canvas memory; and
(l) updating said screen with said new user interface components from said canvas memory.
17. The method of claim 13 wherein properties for said user interface component comprises position data, title, name, and size.
18. The method of claim 17 wherein position data for said user interface component comprises X and Y coordinates.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/590,920 US20160359654A1 (en) | 2008-11-04 | 2012-08-21 | Mobile client application for managing user interface components |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/264,624 US8250477B1 (en) | 2008-11-04 | 2008-11-04 | Mobile client application for managing user interface components |
US13/590,920 US20160359654A1 (en) | 2008-11-04 | 2012-08-21 | Mobile client application for managing user interface components |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/264,624 Continuation US8250477B1 (en) | 2008-05-08 | 2008-11-04 | Mobile client application for managing user interface components |
Publications (1)
Publication Number | Publication Date |
---|---|
US20160359654A1 true US20160359654A1 (en) | 2016-12-08 |
Family
ID=46641719
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/264,624 Active 2031-04-27 US8250477B1 (en) | 2008-05-08 | 2008-11-04 | Mobile client application for managing user interface components |
US13/590,920 Abandoned US20160359654A1 (en) | 2008-11-04 | 2012-08-21 | Mobile client application for managing user interface components |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/264,624 Active 2031-04-27 US8250477B1 (en) | 2008-05-08 | 2008-11-04 | Mobile client application for managing user interface components |
Country Status (1)
Country | Link |
---|---|
US (2) | US8250477B1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291476A (en) * | 2017-06-27 | 2017-10-24 | 北京微影时代科技有限公司 | Canvas code generating methods, device, electronic equipment and storage medium |
CN107450906A (en) * | 2017-06-12 | 2017-12-08 | 积成电子股份有限公司 | A kind of method for drafting with energy information acquisition system distribution wiring diagram |
CN111124412A (en) * | 2020-01-02 | 2020-05-08 | 腾讯科技(深圳)有限公司 | Game page drawing method, device, equipment and storage medium |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8612610B2 (en) * | 2009-02-10 | 2013-12-17 | Telefonaktiebolaget Lm Ericsson (Publ) | IP multimedia service provision |
US9411639B2 (en) | 2012-06-08 | 2016-08-09 | Alcatel Lucent | System and method for managing network navigation |
US9846682B1 (en) * | 2013-11-25 | 2017-12-19 | Amazon Technologies, Inc. | Cross-platform presentation of digital content |
US10394579B2 (en) * | 2014-03-27 | 2019-08-27 | International Business Machines Corporation | Automatically fixing inaccessible widgets during mobile application execution |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173316B1 (en) * | 1998-04-08 | 2001-01-09 | Geoworks Corporation | Wireless communication device with markup language based man-machine interface |
US20020006511A1 (en) * | 2000-05-01 | 2002-01-17 | Clere Thomas M. | Highly delaminated hexagonal boron nitride powders, process for making, and uses thereof |
US20020016079A1 (en) * | 1999-12-14 | 2002-02-07 | Dykstra Jerald P. | Enhanced etching/smoothing of dielectric surfaces |
US20030006089A1 (en) * | 2001-07-04 | 2003-01-09 | National Aerospace Laboratory Of Japan | Fine jet control-type sound absorption system |
US20070266316A1 (en) * | 2004-02-19 | 2007-11-15 | Butlin Stefan G | Display of Menu Items In a User Interface |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6717593B1 (en) * | 2000-09-12 | 2004-04-06 | Avaya Technology Corp. | Mark-up language implementation of graphical or non-graphical user interfaces |
US20070089048A1 (en) * | 2005-10-14 | 2007-04-19 | Lacey Jon-David K | Displaying using graphics display language and native UI objects |
-
2008
- 2008-11-04 US US12/264,624 patent/US8250477B1/en active Active
-
2012
- 2012-08-21 US US13/590,920 patent/US20160359654A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173316B1 (en) * | 1998-04-08 | 2001-01-09 | Geoworks Corporation | Wireless communication device with markup language based man-machine interface |
US20020016079A1 (en) * | 1999-12-14 | 2002-02-07 | Dykstra Jerald P. | Enhanced etching/smoothing of dielectric surfaces |
US20020006511A1 (en) * | 2000-05-01 | 2002-01-17 | Clere Thomas M. | Highly delaminated hexagonal boron nitride powders, process for making, and uses thereof |
US20030006089A1 (en) * | 2001-07-04 | 2003-01-09 | National Aerospace Laboratory Of Japan | Fine jet control-type sound absorption system |
US20070266316A1 (en) * | 2004-02-19 | 2007-11-15 | Butlin Stefan G | Display of Menu Items In a User Interface |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107450906A (en) * | 2017-06-12 | 2017-12-08 | 积成电子股份有限公司 | A kind of method for drafting with energy information acquisition system distribution wiring diagram |
CN107291476A (en) * | 2017-06-27 | 2017-10-24 | 北京微影时代科技有限公司 | Canvas code generating methods, device, electronic equipment and storage medium |
CN111124412A (en) * | 2020-01-02 | 2020-05-08 | 腾讯科技(深圳)有限公司 | Game page drawing method, device, equipment and storage medium |
Also Published As
Publication number | Publication date |
---|---|
US8250477B1 (en) | 2012-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20160359654A1 (en) | Mobile client application for managing user interface components | |
US8060556B2 (en) | Service enabled tagged user interfaces | |
US8970500B2 (en) | System and method for extracting content from a data item to separately display portions of such data | |
US10228935B2 (en) | Rebuildable service-oriented applications | |
US9223750B2 (en) | Dynamic tag generating apparatus and dynamic tag generating method thereof for use in display apparatus | |
US20120229473A1 (en) | Dynamic Animation in a Mobile Device | |
US20140096014A1 (en) | Method for enabling dynamic client user interfaces on multiple platforms from a common server application via metadata | |
US20110078600A1 (en) | Modification Free Tagging of Business Application User Interfaces | |
CN107391134B (en) | Method and device for automatically generating and dynamically transforming universal mobile application interactive interface | |
US20130339924A1 (en) | Gateway data distribution engine | |
KR20040060806A (en) | Template-based customization of a user interface for a messaging application program | |
CN107391119B (en) | Method and device for realizing horizontal and vertical screens | |
US20150088974A1 (en) | Method and System of Application Development for Multiple Device Client Platforms | |
US8209324B2 (en) | Method and system for providing information in virtual space | |
US20200068039A1 (en) | Integrating a plurality of third party service interactions into a portal system | |
US9442745B2 (en) | Business-to-consumer extendable base application | |
US9552123B1 (en) | Integrating applications in a portal | |
US9858246B1 (en) | Determining and generating a number of images meeting particular size ranges and selecting an image for display in a placeholder of a network document | |
CN105915615A (en) | Method for displaying application information in mobile equipment and device thereof | |
US10884833B2 (en) | Enhanced notifications | |
US20130246977A1 (en) | Multi-context data binding | |
US20230230178A1 (en) | Method, computer device, and non-transitory computer-readable recording medium to provide dynamic landing page for social platform | |
US20150089404A1 (en) | Metadata-driven list user interface component builder | |
US8200713B2 (en) | Database exploration for building wireless component applications | |
KR102228462B1 (en) | Method and device for providing mobile lock screen service |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |