US20220357965A1 - Pre-generating data for user interface latency improvement - Google Patents
Pre-generating data for user interface latency improvement Download PDFInfo
- Publication number
- US20220357965A1 US20220357965A1 US17/873,396 US202217873396A US2022357965A1 US 20220357965 A1 US20220357965 A1 US 20220357965A1 US 202217873396 A US202217873396 A US 202217873396A US 2022357965 A1 US2022357965 A1 US 2022357965A1
- Authority
- US
- United States
- Prior art keywords
- user
- computing device
- user interface
- destinations
- computing system
- 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
- 230000006872 improvement Effects 0.000 title description 3
- 230000000977 initiatory effect Effects 0.000 claims abstract description 10
- 238000000034 method Methods 0.000 claims description 19
- 238000004891 communication Methods 0.000 claims description 11
- 230000007423 decrease Effects 0.000 claims 2
- 238000004364 calculation method Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/40—Business processes related to the transportation industry
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3407—Route searching; Route guidance specially adapted for specific applications
- G01C21/3438—Rendez-vous, i.e. searching a destination where several users can meet, and the routes to this destination for these users; Ride sharing, i.e. searching a route such that at least two users can share a vehicle for at least part of the route
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3453—Special cost functions, i.e. other than distance or default speed limit of road segments
- G01C21/3484—Personalized, e.g. from learned user behaviour or user-defined profiles
-
- G06Q50/30—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/029—Location-based management or tracking services
Definitions
- Application user interface features displayed on computing devices can be reliant on real-time processing of data in response to user interactions with the application. For example, selection inputs of user interface features may cause the application to execute an algorithm to perform a set of calculations that can delay the presentation of certain user interface features until the set of calculations are performed and the resulting user interface features are generated.
- FIG. 1 is a block diagram illustrating an example computing system implementing graphical user interface (GUI) latency improvement functions, in accordance with examples described herein;
- GUI graphical user interface
- FIG. 2 is a block diagram illustrating an example computing device executing one or more service applications for communicating with a computing system, according to examples described herein;
- FIGS. 3A and 3B are example GUIs showing the pre-generated GUI content being presented, according to various examples.
- FIG. 4 is a flow chart describing an example method of pre-generating GUI content for display on a computing device of a user, according to various examples.
- FIG. 5 is a block diagram that illustrates a computer system upon which examples described herein may be implemented.
- a computing system can communicate with computing devices of users of an application-based service, such as an on-demand transport service for ridesharing and/or goods delivery.
- the computing system can store a user profile for each user, which can include historical utilization data of the user.
- the user profile can include common locations of interest of the user or prior destinations of the user, such as a work destination and a home destination, and further include preference information of the user, such as commonly used transport services (e.g., carpool, standard rideshare, food delivery, etc.).
- the computing system can execute learning and predictive models based on the historical utilization data and current utilization data of each user to pre-generate user interface content prior to the user accessing such features.
- execution of the learning and predictive models can account for current context information of the user, such as the user's current location, to determine the user's intent (e.g., a probability that the user will engage a particular service accessible through the application).
- the pre-generated content may then be cached or stored in local memory of the computing device of the user for ready presentation when the user provides the triggering inputs for such features.
- the computing system can determine current contextual information of the user, such as the user's current location, a time of day, and/or a day of the week, and determine one or more likely destinations to which the user may wish to be transported. Additionally or alternatively, the computing system can process the current contextual information to determine one or more on-demand services that the user is likely to request.
- the computing system can pre-calculate a cost or fare (e.g., actual or estimated) for each of the likely destinations and pre-generate a set of user interface features in case the user provides a triggering input for those features.
- the computing system may then cache (store locally in memory at the client computing device) the pre-generated features for subsequent display when the triggering input is detected.
- the computing system can associate each user interface feature with one or more triggering conditions.
- a particular triggering condition such as a user selection or input specifying of a particular service and/or destination
- the computing system can cause the cached, pre-generated set of user interface features corresponding to the triggering condition to be displayed on the user interface of the application. It is contemplated that the techniques described herein can reduce display latency and improve the overall user experience, thereby increasing service engagement.
- examples described herein achieve a technical effect of decreasing GUI latency through pre-generation of user interface content prior to access by the user.
- the computing system can be triggered (e.g., through detection of an application launch on a user's computing device) to determine a set of likely destinations of the user, determine transport supply information for those destinations given the user's current location, and pre-calculate a fare for each likely destination.
- Content corresponding to the pre-calculated fair may then be cached (e.g., either on the backend or on the computing device of the user) for ready display when the user selects one of the likely destinations.
- a computing device refers to devices corresponding to desktop computers, cellular devices or smartphones, personal digital assistants (PDAs), laptop computers, virtual reality (VR) or augmented reality (AR) headsets, tablet devices, television (IP Television), etc., that can provide network connectivity and processing resources for communicating with the system over a network.
- PDAs personal digital assistants
- VR virtual reality
- AR augmented reality
- a computing device can also correspond to custom hardware, in-vehicle devices, or on-board computers, etc.
- the computing device can also operate a designated application configured to communicate with the network service.
- One or more examples described herein provide that methods, techniques, and actions performed by a computing device are performed programmatically, or as a computer-implemented method.
- Programmatically means through the use of code or computer-executable instructions. These instructions can be stored in one or more memory resources of the computing device.
- a programmatically performed step may or may not be automatic.
- a programmatic module, engine, or component can include a program, a sub-routine, a portion of a program, or a software component or a hardware component capable of performing one or more stated tasks or functions.
- a module or component can exist on a hardware component independently of other modules or components. Alternatively, a module or component can be a shared element or process of other modules, programs or machines.
- computing devices including processing and memory resources.
- one or more examples described herein may be implemented, in whole or in part, on computing devices such as servers, desktop computers, cellular or smartphones, personal digital assistants (e.g., PDAs), laptop computers, VR or AR devices, printers, digital picture frames, network equipment (e.g., routers) and tablet devices.
- PDAs personal digital assistants
- VR or AR devices printers
- digital picture frames e.g., routers
- Memory, processing, and network resources may all be used in connection with the establishment, use, or performance of any example described herein (including with the performance of any method or with the implementation of any system).
- one or more examples described herein may be implemented through the use of instructions that are executable by one or more processors. These instructions may be carried on a computer-readable medium.
- Machines shown or described with figures below provide examples of processing resources and computer-readable mediums on which instructions for implementing examples disclosed herein can be carried and/or executed.
- the numerous machines shown with examples of the invention include processors and various forms of memory for holding data and instructions.
- Examples of computer-readable mediums include permanent memory storage devices, such as hard drives on personal computers or servers.
- Other examples of computer storage mediums include portable storage units, such as CD or DVD units, flash memory (such as carried on smartphones, multifunctional devices or tablets), and magnetic memory.
- Computers, terminals, network enabled devices are all examples of machines and devices that utilize processors, memory, and instructions stored on computer-readable mediums. Additionally, examples may be implemented in the form of computer-programs, or a computer usable carrier medium capable of carrying such a program.
- FIG. 1 is a block diagram illustrating an example computing system implementing graphical user interface (GUI) latency improvement functions, in accordance with examples described herein.
- the computing system 100 can include a communication interface 115 that enables communications, over one or more networks 170 , with computing devices of transport providers 180 of a transport service (e.g., rideshare, food delivery, etc.).
- the communication interface 115 further enables network communications with computing devices 190 of requesting users 197 of the transport service via a service application 196 (e.g. a rider application for the transport service).
- a matching engine 160 of the computing system 100 can receive transport requests from the requesting users 197 and match the users 197 with transport providers 180 based on location data received from both the requesting users 197 and the transport providers 180 .
- the matching engine 160 can do so by transmitting transport invitations to transport providers 180 that are optimally situated to provide the transport service for each of the requesting users 197 .
- the requesting user 197 can interact with a GUI of the service application 196 to view transport services and their options.
- Each option can be associated with a fare, or estimated fare range, that is calculated based on the supply conditions of the transport providers 180 .
- a fare calculator 140 of the computing system 140 would be triggered to determine a set of fares upon selection of a particular service feature or a destination on the GUI of the service application 196 .
- a requesting user 197 wishes to be transported to a particular destination, the requesting user 197 would first input the destination, which would trigger the fare calculator 140 to determine a set of fares for the various options for transport (e.g., standard rideshare, carpool, luxury vehicle, high capacity vehicle, etc.). The fares may then be presented on the GUI on content features selectable by the user 197 to request a particular service option.
- a set of fares for the various options for transport e.g., standard rideshare, carpool, luxury vehicle, high capacity vehicle, etc.
- the fare determination for each service option is non-trivial.
- the fare calculator 140 receives location data from the computing devices of a set of candidate transport providers 180 within a certain proximity of the requesting user 197 .
- the fare calculator 140 may then determine a set of estimated times of arrival (ETAs) for each candidate transport provider 180 to pick up the requesting user 197 and then transport the user 197 to the destination. Based on these ETAs, the fare calculator 140 can determine a fare for each ride service option, and cause selectable user interface features on the GUI of the service application 196 to update and present the fares for each option.
- ETAs estimated times of arrival
- calculation of the fares upon receiving destination information from the requesting user 197 results in a certain amount of user interface latency on the GUI of the service application 196 .
- the calculation and presentation of the fares on the selection user interface features may result in a load time of one second or so.
- user experience is particularly dependent on user interface load times. For example, if a particular GUI feature of a content app takes more than one or two seconds to load, a typical user 197 may close the screen or move on to further content. Accordingly, even the slightest temporal changes in load times of GUI features can make a significant difference in user experience.
- the computing system 100 can include a content pre-generation engine 150 that can detect an initiation trigger corresponding to a requesting user 197 launching the service application 196 on the user's computing device 190 .
- the computing system 100 can further include a database 110 storing user profiles 112 that indicate the requesting user's 197 historical utilization information corresponding to the transport service. This historical information can indicate common and likely destinations specific to the requesting user 197 , such as a work location, a home location, an exercise or activity location, a car service location, an airport or train station, and the like.
- the content pre-generation engine 150 can perform a search (e.g. in the profile 112 of the user 197 ) for historical data indicating the likely destinations of the user 197 .
- the content pre-generation engine 150 can further interact with the fare calculator 140 by providing the likely destinations of the user 197 .
- the content pre-generation engine 150 can filter the common destinations based on current contextual information. For example, if the user 197 is currently at a home location, the content pre-generation engine 150 can filter out the home location of the user 197 for the fare calculation.
- the content pre-generation engine 150 can account for the day of the week and a current time of day to filter the common destinations. For example, if the user 197 has a typical weekly work schedule and it is currently a weekend, the content pre-generation engine 150 can filter out the user's work location. Accordingly, in various examples, the fare calculator 140 can determine the current location of the user 197 and provide a set of common or likely destinations to the fare calculator 140 . The fare calculator 140 may then determine the supply conditions of the transport providers 180 and one or more candidate providers within a certain proximity of the user 197 to determine a set of fares for each transport option and to each potential destination of the user 197 . Thus, prior to receiving the desired destination from the requesting user 197 , the fare calculator 140 , in coordination with the content pre-generation engine 150 , can determine a set of fares for each possible destination of the user 197 .
- the content pre-generation engine 150 can pre-generate user interface features for ready display on the GUI of the service application 196 executing on the user's computing device 190 .
- the content pre-generation engine 150 may then cache the pre-generated user interface features either in a local cache or on the user's computing device 190 via the service application 196 .
- the pre-generated user interface features can comprise the fares for each service option and for each potential destination, as described herein.
- the pre-generated user interface features can also be selectable to enable the user 197 to select a particular service option for transport to the selected or specified destination.
- the pre-generated content corresponding to that destination may be presented without having to calculate the fares.
- User interface latency is therefore reduced, which is determined to enhance user engagement with the service application 196 and the transport service. It is contemplated that the pre-generation of user interface features corresponding to fare calculation to circumvent selection triggers that would normally cause the calculation can result in significant user interface latency reduction. It is further contemplated that such fare calculations need not be limited to on-demand transport, but may further be performed for additional services, such as food preparation and/or delivery, package delivery, and the like.
- the fare calculator 140 can fall back to the default calculation method. Accordingly, the pre-generated user interface features can cause the service application 196 to run in an accelerated state, latency-wise, if one of the common destinations are selected or specified by the user 197 . If the user 197 inputs an alternative destination, then the service application 196 will run in a legacy state with the fare calculation performed in response to receiving the destination information.
- FIG. 2 is a block diagram illustrating an example computing device executing a service application for communicating with a computing system, according to examples described herein.
- the computing device 200 can comprise a mobile computing device, such as a smartphone, tablet computer, laptop computer, VR or AR headset device, and the like.
- the computing device 200 can include telephony features such as a microphone 245 , a camera 250 , and a communication interface 210 to communicate with external entities using any number of wireless communication protocols.
- the computing device 200 can further include a positioning module 260 (e.g., GPS) and an inertial measurement unit 264 that includes one or more accelerometers, gyroscopes, or magnetometers.
- GPS positioning module
- an inertial measurement unit 264 that includes one or more accelerometers, gyroscopes, or magnetometers.
- the computing device 200 can store a designated on-demand transport service application 232 in a memory 230 .
- the memory 230 can store additional applications executable by one or more processors 240 of the computing device 200 , enabling access and interaction with one or more host servers over one or more networks 280 .
- the computing device 200 can be operated by a requesting user 197 through execution of the on-demand service application 232 .
- the computing device 200 can further be operated by a transport provider 190 through execution of a provider application.
- the user can select the service application 232 via a user input on the display screen 220 , which can cause the service application 232 to be executed by the processor 240 .
- a user application interface 222 can be generated on the display screen 220 , which can display available transport options and enable the user to configure and submit a transport request for a transport provider to transport the user to a destination.
- the application 232 can enable a communication link with a computing system 290 over one or more networks 280 , such as the computing system 100 as shown and described with respect to FIG. 1 .
- the processor 240 can generate user interface features using content data received from the computing system 290 over network 280 .
- the application 232 can enable the computing system 290 to cause the generated user interface 222 to be displayed on the display screen 220 .
- the positioning module 260 can provide location data indicating the current location of the users and transport providers to the computing system 290 to, for example, enable the computing system 290 to coordinate on-demand transport, as described herein.
- the computing system 290 can transmit content data to the communication interface 210 of the computing device 200 over the network(s) 280 .
- the content data can cause the executing service application 232 to display the user interface 222 for the executing application 232 .
- the service application 232 can cause the processor 240 to transmit a transport request to the computing system 290 to enable the computing system 290 to coordinate with transport providers to rendezvous with the users and transport them to their respective destinations.
- an initiation trigger is transmitted to the computing system 290 , which causes the computing system 290 to determine a set of common destinations and determine a set of fares for each of the common destinations and pre-generate content indicating the fares, which may or may not end up being displayed on the user interface 222 .
- the computing system 290 can filter the common destinations based on the current contextual information of the user, such as location data indicating the user's current location, a time of day, and/or a day of the week.
- the computing system 290 may then transmit the pre-generated content to the computing device 200 .
- the computing system 290 can wait for a set of triggering conditions before transmitting the pre-generated content to the computing device 200 .
- the computing system 290 can await the user's selection of a particular destination prior to transmitting the pre-generated content.
- the computing system 290 can transmit the pre-generated content to be cached on the computing device 200 of the user.
- the service application 232 can monitor the user's interaction with the user interface 222 , and once the triggering conditions are met (e.g., a selection of a particular destination), the service application 232 can immediately load the pre-generated content that corresponds to the triggering conditions from the cache.
- FIGS. 3A and 3B are example GUIs showing the pre-generated GUI content being presented, according to various examples.
- a graphical user interface 300 of a service application for a transport service can include a set of service options 308 for a particular destination 312 .
- the service options 308 can include a standard rideshare service, a comfort or luxury service, and a high-capacity vehicle service.
- the service options can include additional options, such as a carpool option, food delivery option, package delivery option, and the like.
- the service options 308 can each be associated with a fare, such as an estimated fare or guaranteed fare for providing transport for the user.
- each service option 308 can be included on a selectable user interface feature that enables the user to select the service option before confirming the service option on a confirmation button 314 .
- Each service option 308 can also include a user interface feature 302 , 304 , 306 that displays the fare.
- a latency period tolls as the fare is calculated by the computing device 200 or backend computing system 100 (e.g., a load period between the user interface 300 shown in FIG. 3A , in which the fares are not yet shown, and the user interface 300 FIG. 3B , where the fares are presented).
- the user interface features 302 , 304 , 306 comprising the fares for each option are presented using pre-generated content based on calculations already performed prior to the user selecting the destination 312 . Accordingly, the latency period for displaying the fares is significantly reduced from the previous implementation.
- FIG. 4 is a flow chart describing an example method of pre-generating GUI content for display on a computing device of a user, according to various examples.
- a backend computing system 100 the computing device 190 of the user 197 via the executing service application 196 , or a combination of both.
- the computing system 100 can detect initiation data indicating the launch of the service application 196 on the computing device 190 of a user 197 ( 400 ).
- the computing system 100 can receive location data from the computing device 190 to determine the current location of the user 197 ( 405 ).
- the computing system 100 may then perform a search (e.g., in a user profile 112 of the requesting user 197 ) to determine a set of possible or likely destinations for which the user 197 typically requests transport ( 410 ).
- the computing system 100 can also determine the transport supply conditions for each destination ( 415 ). For example, the computing system 100 can determine whether the number of available transport providers 180 within a certain area in which the user 197 is located amounts to an oversupplied or undersupplied condition, which can affect the fare calculation.
- the computing system 100 can select a representative transport provider 180 to determine an ETA to pick up the user 197 and an ETA to transport the user 197 to each possible or likely destination.
- the computing system 100 can pre-calculate fares for each transport service option and for each of the possible destinations ( 420 ).
- the computing system 100 may then pre-generate data for user interface content (e.g., a set of user interface features) on which the fares are to be presented for each service option ( 425 ).
- the computing system 100 may then transmit content data corresponding to the pre-generated user interface features to the computing device 190 for caching and/or for causing the user interface to present the relevant set of pre-generated content features when the triggering condition for the set of pre-generated content features is met ( 435 ).
- the service application 196 can cache the pre-generated content features until the user selects or inputs one of the possible or likely destinations, at which point the relevant pre-generated user interface features corresponding to that destination may be presented. Accordingly, when the user 197 specifies one of the likely destinations, the computing system 100 can receive an indication of the specified destination, and transmit triggering data to the computing device 190 of the user 197 to cause the set of user interface features that correspond to the specified destination to be presented on the user interface of the client application 196 .
- FIG. 5 is a block diagram that illustrates a computer system upon which examples described herein may be implemented.
- a computer system 500 can be implemented on, for example, a server or combination of servers.
- the computer system 500 may be implemented as part of a network service, such as described in FIGS. 1 through 4 .
- the computer system 100 may be implemented using a computer system 500 such as described by FIG. 5 .
- the computer system 100 may also be implemented using a combination of multiple computer systems as described in connection with FIG. 5 .
- the computer system 500 includes processing resources 510 , a main memory 520 , a read-only memory (ROM) 530 , a storage device 540 , and a communication interface 550 .
- the computer system 500 includes at least one processor 510 for processing information stored in the main memory 520 , such as provided by a random-access memory (RAM) or other dynamic storage device, for storing information and instructions which are executable by the processor 510 .
- the main memory 520 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by the processor 510 .
- the computer system 500 may also include the ROM 530 or other static storage device for storing static information and instructions for the processor 510 .
- a storage device 540 such as a magnetic disk or optical disk, is provided for storing information and instructions.
- the communication interface 550 enables the computer system 500 to communicate with one or more networks 580 (e.g., cellular network) through use of the network link (wireless or wired). Using the network link, the computer system 500 can communicate with one or more computing devices, one or more servers, one or more databases, and/or one or more self-driving vehicles. In accordance with examples, the computer system 500 receives initiation triggers, location data, and requests from mobile computing devices of individual users.
- the executable instructions stored in the memory 530 can include content pre-generation instructions 524 and fare calculation instructions 522 .
- the instructions and data stored in the memory 520 can be executed by the processor 510 to implement the functions of an example computing system 100 of FIG. 1 .
- the processor 510 can execute the fare calculation instructions 522 to receive location data 586 from requesting users 197 and transport providers 180 and determine a set of fares for each service option to each possible destination, as described herein.
- the processor 510 can further execute the content pre-generation instructions 524 to detect initiation triggers 588 corresponding to user launches of the service application 196 , perform searches to determine possible destinations, and pre-generate content 556 for displaying fares for each destination, according to examples described herein.
- Examples described herein are related to the use of the computer system 500 for implementing the techniques described herein. According to one example, those techniques are performed by the computer system 500 in response to the processor 510 executing one or more sequences of one or more instructions contained in the main memory 520 . Such instructions may be read into the main memory 520 from another machine-readable medium, such as the storage device 540 . Execution of the sequences of instructions contained in the main memory 520 causes the processor 510 to perform the process steps described herein. In alternative implementations, hard-wired circuitry may be used in place of or in combination with software instructions to implement examples described herein. Thus, the examples described are not limited to any specific combination of hardware circuitry and software.
Landscapes
- Engineering & Computer Science (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Automation & Control Theory (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- Social Psychology (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Marketing (AREA)
- Economics (AREA)
- Human Resources & Organizations (AREA)
- Primary Health Care (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Operations Research (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
A computing device can transmit data corresponding to an initiation of a client application to a computing system. before a user provides a specific destination on the client application, the computing system can receive data for a set of user interface features from the computing system. The data can correspond to each of one or more likely destinations of the user. The computing device can cache the data for each of the one or more likely destinations in a local memory of the computing device. When the user specifies a destination that is one of the one or more likely destinations, the client application retrieves a corresponding set of user interface features for the specified destination from the memory of the computing device.
Description
- This application is a continuation of U.S. patent application Ser. No. 17/159,874, filed on Jan. 27, 2021; which is a continuation of U.S. patent application Ser. No. 16/896,437 (now U.S. Pat. No. 10,929,156), filed on Jun. 9, 2020, the aforementioned applications being hereby incorporated by reference in its entirety.
- Application user interface features displayed on computing devices can be reliant on real-time processing of data in response to user interactions with the application. For example, selection inputs of user interface features may cause the application to execute an algorithm to perform a set of calculations that can delay the presentation of certain user interface features until the set of calculations are performed and the resulting user interface features are generated.
- The disclosure herein is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which like reference numerals refer to similar elements, and in which:
-
FIG. 1 is a block diagram illustrating an example computing system implementing graphical user interface (GUI) latency improvement functions, in accordance with examples described herein; -
FIG. 2 is a block diagram illustrating an example computing device executing one or more service applications for communicating with a computing system, according to examples described herein; -
FIGS. 3A and 3B are example GUIs showing the pre-generated GUI content being presented, according to various examples; -
FIG. 4 is a flow chart describing an example method of pre-generating GUI content for display on a computing device of a user, according to various examples; and -
FIG. 5 is a block diagram that illustrates a computer system upon which examples described herein may be implemented. - A computing system can communicate with computing devices of users of an application-based service, such as an on-demand transport service for ridesharing and/or goods delivery. The computing system can store a user profile for each user, which can include historical utilization data of the user. For example, the user profile can include common locations of interest of the user or prior destinations of the user, such as a work destination and a home destination, and further include preference information of the user, such as commonly used transport services (e.g., carpool, standard rideshare, food delivery, etc.). In certain implementations, the computing system can execute learning and predictive models based on the historical utilization data and current utilization data of each user to pre-generate user interface content prior to the user accessing such features. In further aspects, execution of the learning and predictive models can account for current context information of the user, such as the user's current location, to determine the user's intent (e.g., a probability that the user will engage a particular service accessible through the application).
- In various implementations, the pre-generated content may then be cached or stored in local memory of the computing device of the user for ready presentation when the user provides the triggering inputs for such features. In one example, the computing system can determine current contextual information of the user, such as the user's current location, a time of day, and/or a day of the week, and determine one or more likely destinations to which the user may wish to be transported. Additionally or alternatively, the computing system can process the current contextual information to determine one or more on-demand services that the user is likely to request. Based on the current contextual information and the historical utilization data of the user, the computing system can pre-calculate a cost or fare (e.g., actual or estimated) for each of the likely destinations and pre-generate a set of user interface features in case the user provides a triggering input for those features. The computing system may then cache (store locally in memory at the client computing device) the pre-generated features for subsequent display when the triggering input is detected.
- Accordingly, in caching the features, the computing system can associate each user interface feature with one or more triggering conditions. When a particular triggering condition is met, such as a user selection or input specifying of a particular service and/or destination, the computing system can cause the cached, pre-generated set of user interface features corresponding to the triggering condition to be displayed on the user interface of the application. It is contemplated that the techniques described herein can reduce display latency and improve the overall user experience, thereby increasing service engagement.
- Among other benefits, examples described herein achieve a technical effect of decreasing GUI latency through pre-generation of user interface content prior to access by the user. In the context of on-demand transport, the computing system can be triggered (e.g., through detection of an application launch on a user's computing device) to determine a set of likely destinations of the user, determine transport supply information for those destinations given the user's current location, and pre-calculate a fare for each likely destination. Content corresponding to the pre-calculated fair may then be cached (e.g., either on the backend or on the computing device of the user) for ready display when the user selects one of the likely destinations.
- As used herein, a computing device refers to devices corresponding to desktop computers, cellular devices or smartphones, personal digital assistants (PDAs), laptop computers, virtual reality (VR) or augmented reality (AR) headsets, tablet devices, television (IP Television), etc., that can provide network connectivity and processing resources for communicating with the system over a network. A computing device can also correspond to custom hardware, in-vehicle devices, or on-board computers, etc. The computing device can also operate a designated application configured to communicate with the network service.
- One or more examples described herein provide that methods, techniques, and actions performed by a computing device are performed programmatically, or as a computer-implemented method. Programmatically, as used herein, means through the use of code or computer-executable instructions. These instructions can be stored in one or more memory resources of the computing device. A programmatically performed step may or may not be automatic.
- One or more examples described herein can be implemented using programmatic modules, engines, or components. A programmatic module, engine, or component can include a program, a sub-routine, a portion of a program, or a software component or a hardware component capable of performing one or more stated tasks or functions. As used herein, a module or component can exist on a hardware component independently of other modules or components. Alternatively, a module or component can be a shared element or process of other modules, programs or machines.
- Some examples described herein can generally require the use of computing devices, including processing and memory resources. For example, one or more examples described herein may be implemented, in whole or in part, on computing devices such as servers, desktop computers, cellular or smartphones, personal digital assistants (e.g., PDAs), laptop computers, VR or AR devices, printers, digital picture frames, network equipment (e.g., routers) and tablet devices. Memory, processing, and network resources may all be used in connection with the establishment, use, or performance of any example described herein (including with the performance of any method or with the implementation of any system).
- Furthermore, one or more examples described herein may be implemented through the use of instructions that are executable by one or more processors. These instructions may be carried on a computer-readable medium. Machines shown or described with figures below provide examples of processing resources and computer-readable mediums on which instructions for implementing examples disclosed herein can be carried and/or executed. In particular, the numerous machines shown with examples of the invention include processors and various forms of memory for holding data and instructions. Examples of computer-readable mediums include permanent memory storage devices, such as hard drives on personal computers or servers. Other examples of computer storage mediums include portable storage units, such as CD or DVD units, flash memory (such as carried on smartphones, multifunctional devices or tablets), and magnetic memory. Computers, terminals, network enabled devices (e.g., mobile devices, such as cell phones) are all examples of machines and devices that utilize processors, memory, and instructions stored on computer-readable mediums. Additionally, examples may be implemented in the form of computer-programs, or a computer usable carrier medium capable of carrying such a program.
- System Description
-
FIG. 1 is a block diagram illustrating an example computing system implementing graphical user interface (GUI) latency improvement functions, in accordance with examples described herein. Thecomputing system 100 can include acommunication interface 115 that enables communications, over one ormore networks 170, with computing devices oftransport providers 180 of a transport service (e.g., rideshare, food delivery, etc.). Thecommunication interface 115 further enables network communications with computing devices 190 of requesting users 197 of the transport service via a service application 196 (e.g. a rider application for the transport service). In doing so, amatching engine 160 of thecomputing system 100 can receive transport requests from the requesting users 197 and match the users 197 withtransport providers 180 based on location data received from both the requesting users 197 and thetransport providers 180. - In various implementations, the
matching engine 160 can do so by transmitting transport invitations totransport providers 180 that are optimally situated to provide the transport service for each of the requesting users 197. On the user device 190, the requesting user 197 can interact with a GUI of the service application 196 to view transport services and their options. Each option can be associated with a fare, or estimated fare range, that is calculated based on the supply conditions of thetransport providers 180. In previous implementations, afare calculator 140 of thecomputing system 140 would be triggered to determine a set of fares upon selection of a particular service feature or a destination on the GUI of the service application 196. For example, if a requesting user 197 wishes to be transported to a particular destination, the requesting user 197 would first input the destination, which would trigger thefare calculator 140 to determine a set of fares for the various options for transport (e.g., standard rideshare, carpool, luxury vehicle, high capacity vehicle, etc.). The fares may then be presented on the GUI on content features selectable by the user 197 to request a particular service option. - The fare determination for each service option is non-trivial. As an example, the
fare calculator 140 receives location data from the computing devices of a set ofcandidate transport providers 180 within a certain proximity of the requesting user 197. Thefare calculator 140 may then determine a set of estimated times of arrival (ETAs) for eachcandidate transport provider 180 to pick up the requesting user 197 and then transport the user 197 to the destination. Based on these ETAs, thefare calculator 140 can determine a fare for each ride service option, and cause selectable user interface features on the GUI of the service application 196 to update and present the fares for each option. - It is contemplated that calculation of the fares upon receiving destination information from the requesting user 197 results in a certain amount of user interface latency on the GUI of the service application 196. For example, the calculation and presentation of the fares on the selection user interface features may result in a load time of one second or so. It is further contemplated that user experience is particularly dependent on user interface load times. For example, if a particular GUI feature of a content app takes more than one or two seconds to load, a typical user 197 may close the screen or move on to further content. Accordingly, even the slightest temporal changes in load times of GUI features can make a significant difference in user experience.
- According to examples provided herein, the
computing system 100 can include acontent pre-generation engine 150 that can detect an initiation trigger corresponding to a requesting user 197 launching the service application 196 on the user's computing device 190. Thecomputing system 100 can further include adatabase 110 storinguser profiles 112 that indicate the requesting user's 197 historical utilization information corresponding to the transport service. This historical information can indicate common and likely destinations specific to the requesting user 197, such as a work location, a home location, an exercise or activity location, a car service location, an airport or train station, and the like. - Upon detecting an initiation trigger, the
content pre-generation engine 150 can perform a search (e.g. in theprofile 112 of the user 197) for historical data indicating the likely destinations of the user 197. Thecontent pre-generation engine 150 can further interact with thefare calculator 140 by providing the likely destinations of the user 197. In certain examples, thecontent pre-generation engine 150 can filter the common destinations based on current contextual information. For example, if the user 197 is currently at a home location, thecontent pre-generation engine 150 can filter out the home location of the user 197 for the fare calculation. - In further implementations, the
content pre-generation engine 150 can account for the day of the week and a current time of day to filter the common destinations. For example, if the user 197 has a typical weekly work schedule and it is currently a weekend, thecontent pre-generation engine 150 can filter out the user's work location. Accordingly, in various examples, thefare calculator 140 can determine the current location of the user 197 and provide a set of common or likely destinations to thefare calculator 140. Thefare calculator 140 may then determine the supply conditions of thetransport providers 180 and one or more candidate providers within a certain proximity of the user 197 to determine a set of fares for each transport option and to each potential destination of the user 197. Thus, prior to receiving the desired destination from the requesting user 197, thefare calculator 140, in coordination with thecontent pre-generation engine 150, can determine a set of fares for each possible destination of the user 197. - Using the set of fares for each possible destination, the
content pre-generation engine 150 can pre-generate user interface features for ready display on the GUI of the service application 196 executing on the user's computing device 190. Thecontent pre-generation engine 150 may then cache the pre-generated user interface features either in a local cache or on the user's computing device 190 via the service application 196. The pre-generated user interface features can comprise the fares for each service option and for each potential destination, as described herein. In certain implementations, the pre-generated user interface features can also be selectable to enable the user 197 to select a particular service option for transport to the selected or specified destination. - Accordingly, when the user 197 actually selects or inputs a destination, the pre-generated content corresponding to that destination may be presented without having to calculate the fares. User interface latency is therefore reduced, which is determined to enhance user engagement with the service application 196 and the transport service. It is contemplated that the pre-generation of user interface features corresponding to fare calculation to circumvent selection triggers that would normally cause the calculation can result in significant user interface latency reduction. It is further contemplated that such fare calculations need not be limited to on-demand transport, but may further be performed for additional services, such as food preparation and/or delivery, package delivery, and the like.
- Still further, if the requesting user 197 selects a destination that has not been provided in the common destinations, then the
fare calculator 140 can fall back to the default calculation method. Accordingly, the pre-generated user interface features can cause the service application 196 to run in an accelerated state, latency-wise, if one of the common destinations are selected or specified by the user 197. If the user 197 inputs an alternative destination, then the service application 196 will run in a legacy state with the fare calculation performed in response to receiving the destination information. - Computing Device
-
FIG. 2 is a block diagram illustrating an example computing device executing a service application for communicating with a computing system, according to examples described herein. In many implementations, thecomputing device 200 can comprise a mobile computing device, such as a smartphone, tablet computer, laptop computer, VR or AR headset device, and the like. As such, thecomputing device 200 can include telephony features such as amicrophone 245, acamera 250, and acommunication interface 210 to communicate with external entities using any number of wireless communication protocols. Thecomputing device 200 can further include a positioning module 260 (e.g., GPS) and aninertial measurement unit 264 that includes one or more accelerometers, gyroscopes, or magnetometers. In certain aspects, thecomputing device 200 can store a designated on-demandtransport service application 232 in amemory 230. In variations, thememory 230 can store additional applications executable by one ormore processors 240 of thecomputing device 200, enabling access and interaction with one or more host servers over one ormore networks 280. - The
computing device 200 can be operated by a requesting user 197 through execution of the on-demand service application 232. Thecomputing device 200 can further be operated by a transport provider 190 through execution of a provider application. For requesting user 197 implementations, the user can select theservice application 232 via a user input on thedisplay screen 220, which can cause theservice application 232 to be executed by theprocessor 240. In response, auser application interface 222 can be generated on thedisplay screen 220, which can display available transport options and enable the user to configure and submit a transport request for a transport provider to transport the user to a destination. - As provided herein, the
application 232 can enable a communication link with acomputing system 290 over one ormore networks 280, such as thecomputing system 100 as shown and described with respect toFIG. 1 . Theprocessor 240 can generate user interface features using content data received from thecomputing system 290 overnetwork 280. Furthermore, as discussed herein, theapplication 232 can enable thecomputing system 290 to cause the generateduser interface 222 to be displayed on thedisplay screen 220. - In various examples, the
positioning module 260 can provide location data indicating the current location of the users and transport providers to thecomputing system 290 to, for example, enable thecomputing system 290 to coordinate on-demand transport, as described herein. In examples described herein, thecomputing system 290 can transmit content data to thecommunication interface 210 of thecomputing device 200 over the network(s) 280. The content data can cause the executingservice application 232 to display theuser interface 222 for the executingapplication 232. Upon selection of a desired transport option by a requesting user, theservice application 232 can cause theprocessor 240 to transmit a transport request to thecomputing system 290 to enable thecomputing system 290 to coordinate with transport providers to rendezvous with the users and transport them to their respective destinations. - According to examples described herein, when the requesting user 197 launches the
service application 232, an initiation trigger is transmitted to thecomputing system 290, which causes thecomputing system 290 to determine a set of common destinations and determine a set of fares for each of the common destinations and pre-generate content indicating the fares, which may or may not end up being displayed on theuser interface 222. In various implementations, thecomputing system 290 can filter the common destinations based on the current contextual information of the user, such as location data indicating the user's current location, a time of day, and/or a day of the week. - In various examples, the
computing system 290 may then transmit the pre-generated content to thecomputing device 200. In some implementations, thecomputing system 290 can wait for a set of triggering conditions before transmitting the pre-generated content to thecomputing device 200. For example, thecomputing system 290 can await the user's selection of a particular destination prior to transmitting the pre-generated content. In variations, thecomputing system 290 can transmit the pre-generated content to be cached on thecomputing device 200 of the user. Thereafter, theservice application 232 can monitor the user's interaction with theuser interface 222, and once the triggering conditions are met (e.g., a selection of a particular destination), theservice application 232 can immediately load the pre-generated content that corresponds to the triggering conditions from the cache. - Pre-Generated User Interface Features
-
FIGS. 3A and 3B are example GUIs showing the pre-generated GUI content being presented, according to various examples. Referring toFIGS. 3A and 3B , agraphical user interface 300 of a service application for a transport service can include a set ofservice options 308 for aparticular destination 312. As shown, theservice options 308 can include a standard rideshare service, a comfort or luxury service, and a high-capacity vehicle service. In various examples, the service options can include additional options, such as a carpool option, food delivery option, package delivery option, and the like. Theservice options 308 can each be associated with a fare, such as an estimated fare or guaranteed fare for providing transport for the user. - According to various examples, each
service option 308 can be included on a selectable user interface feature that enables the user to select the service option before confirming the service option on aconfirmation button 314. Eachservice option 308 can also include auser interface feature computing device 200 or backend computing system 100 (e.g., a load period between theuser interface 300 shown inFIG. 3A , in which the fares are not yet shown, and theuser interface 300FIG. 3B , where the fares are presented). According to examples described herein, the user interface features 302, 304, 306 comprising the fares for each option are presented using pre-generated content based on calculations already performed prior to the user selecting thedestination 312. Accordingly, the latency period for displaying the fares is significantly reduced from the previous implementation. - Methodology
-
FIG. 4 is a flow chart describing an example method of pre-generating GUI content for display on a computing device of a user, according to various examples. In the below description ofFIG. 4 , reference may be made to reference characters representing like features as shown and described with respect toFIGS. 1 through 3B . Furthermore, the processes described in connection withFIG. 4 may be performed by abackend computing system 100, the computing device 190 of the user 197 via the executing service application 196, or a combination of both. Referring toFIG. 4 , thecomputing system 100 can detect initiation data indicating the launch of the service application 196 on the computing device 190 of a user 197 (400). In various examples, thecomputing system 100 can receive location data from the computing device 190 to determine the current location of the user 197 (405). - The
computing system 100 may then perform a search (e.g., in auser profile 112 of the requesting user 197) to determine a set of possible or likely destinations for which the user 197 typically requests transport (410). In various implementations, thecomputing system 100 can also determine the transport supply conditions for each destination (415). For example, thecomputing system 100 can determine whether the number ofavailable transport providers 180 within a certain area in which the user 197 is located amounts to an oversupplied or undersupplied condition, which can affect the fare calculation. In further examples, thecomputing system 100 can select arepresentative transport provider 180 to determine an ETA to pick up the user 197 and an ETA to transport the user 197 to each possible or likely destination. - Based on such information, the
computing system 100 can pre-calculate fares for each transport service option and for each of the possible destinations (420). Thecomputing system 100 may then pre-generate data for user interface content (e.g., a set of user interface features) on which the fares are to be presented for each service option (425). In various examples, thecomputing system 100 may then transmit content data corresponding to the pre-generated user interface features to the computing device 190 for caching and/or for causing the user interface to present the relevant set of pre-generated content features when the triggering condition for the set of pre-generated content features is met (435). For example, the service application 196 can cache the pre-generated content features until the user selects or inputs one of the possible or likely destinations, at which point the relevant pre-generated user interface features corresponding to that destination may be presented. Accordingly, when the user 197 specifies one of the likely destinations, thecomputing system 100 can receive an indication of the specified destination, and transmit triggering data to the computing device 190 of the user 197 to cause the set of user interface features that correspond to the specified destination to be presented on the user interface of the client application 196. - Hardware Diagram
-
FIG. 5 is a block diagram that illustrates a computer system upon which examples described herein may be implemented. Acomputer system 500 can be implemented on, for example, a server or combination of servers. For example, thecomputer system 500 may be implemented as part of a network service, such as described inFIGS. 1 through 4 . In the context ofFIG. 1 , thecomputer system 100 may be implemented using acomputer system 500 such as described byFIG. 5 . Thecomputer system 100 may also be implemented using a combination of multiple computer systems as described in connection withFIG. 5 . - In one implementation, the
computer system 500 includes processingresources 510, amain memory 520, a read-only memory (ROM) 530, astorage device 540, and acommunication interface 550. Thecomputer system 500 includes at least oneprocessor 510 for processing information stored in themain memory 520, such as provided by a random-access memory (RAM) or other dynamic storage device, for storing information and instructions which are executable by theprocessor 510. Themain memory 520 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by theprocessor 510. Thecomputer system 500 may also include theROM 530 or other static storage device for storing static information and instructions for theprocessor 510. Astorage device 540, such as a magnetic disk or optical disk, is provided for storing information and instructions. - The
communication interface 550 enables thecomputer system 500 to communicate with one or more networks 580 (e.g., cellular network) through use of the network link (wireless or wired). Using the network link, thecomputer system 500 can communicate with one or more computing devices, one or more servers, one or more databases, and/or one or more self-driving vehicles. In accordance with examples, thecomputer system 500 receives initiation triggers, location data, and requests from mobile computing devices of individual users. The executable instructions stored in thememory 530 can include content pre-generation instructions 524 and farecalculation instructions 522. - By way of example, the instructions and data stored in the
memory 520 can be executed by theprocessor 510 to implement the functions of anexample computing system 100 ofFIG. 1 . In various examples, theprocessor 510 can execute thefare calculation instructions 522 to receivelocation data 586 from requesting users 197 andtransport providers 180 and determine a set of fares for each service option to each possible destination, as described herein. Theprocessor 510 can further execute the content pre-generation instructions 524 to detect initiation triggers 588 corresponding to user launches of the service application 196, perform searches to determine possible destinations, andpre-generate content 556 for displaying fares for each destination, according to examples described herein. - Examples described herein are related to the use of the
computer system 500 for implementing the techniques described herein. According to one example, those techniques are performed by thecomputer system 500 in response to theprocessor 510 executing one or more sequences of one or more instructions contained in themain memory 520. Such instructions may be read into themain memory 520 from another machine-readable medium, such as thestorage device 540. Execution of the sequences of instructions contained in themain memory 520 causes theprocessor 510 to perform the process steps described herein. In alternative implementations, hard-wired circuitry may be used in place of or in combination with software instructions to implement examples described herein. Thus, the examples described are not limited to any specific combination of hardware circuitry and software. - It is contemplated for examples described herein to extend to individual elements and concepts described herein, independently of other concepts, ideas or systems, as well as for examples to include combinations of elements recited anywhere in this application. Although examples are described in detail herein with reference to the accompanying drawings, it is to be understood that the concepts are not limited to those precise examples. As such, many modifications and variations will be apparent to practitioners skilled in this art. Accordingly, it is intended that the scope of the concepts be defined by the following claims and their equivalents. Furthermore, it is contemplated that a particular feature described either individually or as part of an example can be combined with other individually described features, or parts of other examples, even if the other features and examples make no mentioned of the particular feature. Thus, the absence of describing combinations should not preclude claiming rights to such combinations.
Claims (20)
1. A computing device comprising:
a network communication interface to communicate, over one or more networks, with a computing system;
one or more processors; and
a memory storing instructions that, when executed by the one or more processors, cause the computing device to:
transmit, to a computing system over the one or more networks, data corresponding to an initiation of a client application;
before a user provides a specific destination on the client application, receive, over the one or more network, data for a set of user interface features from the computing system, the data corresponding to each of one or more likely destinations of the user; and
cache the data for each of the one or more likely destinations in a local memory of the computing device, wherein when the user specifies a destination that is one of the one or more likely destinations, the client application retrieves a corresponding set of user interface features for the specified destination from the memory of the computing device.
2. The computing device of claim 1 , wherein the computing system determines the one or more likely destinations based on the current contextual information of the user, the current contextual information comprising at least one of a current location of the user, a time of day, or a day of the week.
3. The computing device of claim 1 , wherein each set of user interface features for each of the one or more likely destinations is associated with at least one triggering condition.
4. The computing device of claim 3 , wherein the executed instructions further cause the computing device to:
detect the at least one triggering condition; and
retrieve the corresponding set of user interface features for the specified destination based on detecting the at least one triggering condition.
5. The computing device of claim 3 , wherein the at least one triggering condition corresponds to a user input specifying the specified destination from the one or more likely destinations.
6. The computing device of claim 5 , wherein the computing system generates the data for the set of user interface features by pre-calculating a set of fares for each respective destination of the one or more likely destinations, and wherein the corresponding set of user interface features correspond to the set of pre-calculated fares for the specified destination.
7. The computing device of claim 6 , wherein the executed instructions further cause the computing device to:
present each pre-calculated fare in the set of pre-calculated fares with a corresponding ride service of multiple ride services provided by a transport service facilitated by the computing system.
8. The computing device of claim 1 , wherein displaying the set of user interface features corresponding to the specified destination decreases interface latency of a user interface of the client application displayed on the computing device.
9. A non-transitory computer readable medium storing instructions that, when executed by one or more processors of a computing device, cause the computing device to:
transmit, to a computing system over one or more networks, data corresponding to an initiation of a client application;
before a user provides a specific destination on the client application, receive, over the one or more network, data for a set of user interface features from the computing system, the data corresponding to each of one or more likely destinations of the user; and
cache the data for each of the one or more likely destinations in a local memory of the computing device, wherein when the user specifies a destination that is one of the one or more likely destinations, the client application retrieves a corresponding set of user interface features for the specified destination from the memory of the computing device.
10. The non-transitory computer readable medium of claim 9 , wherein the computing system determines the one or more likely destinations based on the current contextual information of the user, the current contextual information comprising at least one of a current location of the user, a time of day, or a day of the week.
11. The non-transitory computer readable medium of claim 9 , wherein each set of user interface features for each of the one or more likely destinations is associated with at least one triggering condition.
12. The non-transitory computer readable medium of claim 11 , wherein the executed instructions further cause the computing device to:
detect the at least one triggering condition; and
retrieve the corresponding set of user interface features for the specified destination based on detecting the at least one triggering condition.
13. The non-transitory computer readable medium of claim 11 , wherein the at least one triggering condition corresponds to a user input specifying the specified destination from the one or more likely destinations.
14. The non-transitory computer readable medium of claim 13 , wherein the computing system generates the data for the set of user interface features by pre-calculating a set of fares for each respective destination of the one or more likely destinations, and wherein the corresponding set of user interface features correspond to the set of pre-calculated fares for the specified destination.
15. The non-transitory computer readable medium of claim 14 , wherein the executed instructions further cause the computing device to:
present each pre-calculated fare in the set of pre-calculated fares with a corresponding ride service of multiple ride services provided by a transport service facilitated by the computing system.
16. The non-transitory computer readable medium of claim 9 , wherein displaying the set of user interface features corresponding to the specified destination decreases interface latency of a user interface of the client application displayed on the computing device.
17. A computer-implemented method of operating a computing device, the method being performed by one or more processors of the computing device and comprising:
transmitting, to a computing system over one or more networks, data corresponding to an initiation of a client application;
before a user provides a specific destination on the client application, receiving, over the one or more network, data for a set of user interface features from the computing system, the data corresponding to each of one or more likely destinations of the user; and
caching the data for each of the one or more likely destinations in a local memory of the computing device, wherein when the user specifies a destination that is one of the one or more likely destinations, the client application retrieves a corresponding set of user interface features for the specified destination from the memory of the computing device.
18. The method of claim 17 , wherein the computing system determines the one or more likely destinations based on the current contextual information of the user, the current contextual information comprising at least one of a current location of the user, a time of day, or a day of the week.
19. The method of claim 17 , wherein each set of user interface features for each of the one or more likely destinations is associated with at least one triggering condition.
20. The method of claim 19 , further comprising:
detecting the at least one triggering condition; and
retrieving the corresponding set of user interface features for the specified destination based on detecting the at least one triggering condition.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/873,396 US20220357965A1 (en) | 2020-06-09 | 2022-07-26 | Pre-generating data for user interface latency improvement |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/896,437 US10929156B1 (en) | 2020-06-09 | 2020-06-09 | Pre-generating data for user interface latency improvement |
US17/159,874 US11429403B2 (en) | 2020-06-09 | 2021-01-27 | Pre-generating data for user interface latency improvement |
US17/873,396 US20220357965A1 (en) | 2020-06-09 | 2022-07-26 | Pre-generating data for user interface latency improvement |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/159,874 Continuation US11429403B2 (en) | 2020-06-09 | 2021-01-27 | Pre-generating data for user interface latency improvement |
Publications (1)
Publication Number | Publication Date |
---|---|
US20220357965A1 true US20220357965A1 (en) | 2022-11-10 |
Family
ID=74659246
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/896,437 Active US10929156B1 (en) | 2020-06-09 | 2020-06-09 | Pre-generating data for user interface latency improvement |
US17/159,874 Active US11429403B2 (en) | 2020-06-09 | 2021-01-27 | Pre-generating data for user interface latency improvement |
US17/873,396 Abandoned US20220357965A1 (en) | 2020-06-09 | 2022-07-26 | Pre-generating data for user interface latency improvement |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/896,437 Active US10929156B1 (en) | 2020-06-09 | 2020-06-09 | Pre-generating data for user interface latency improvement |
US17/159,874 Active US11429403B2 (en) | 2020-06-09 | 2021-01-27 | Pre-generating data for user interface latency improvement |
Country Status (1)
Country | Link |
---|---|
US (3) | US10929156B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10929156B1 (en) * | 2020-06-09 | 2021-02-23 | Uber Technologies, Inc. | Pre-generating data for user interface latency improvement |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140242954A1 (en) * | 2013-02-25 | 2014-08-28 | Microsoft Corporation | Location-relevant data |
US20190222670A1 (en) * | 2018-01-16 | 2019-07-18 | Wipro Limited | Method, device, and system for predicting and caching user activity for seamless user experience within vehicles |
US20200027019A1 (en) * | 2019-08-15 | 2020-01-23 | Lg Electronics Inc. | Method and apparatus for learning a model to generate poi data using federated learning |
US20200154245A1 (en) * | 2017-07-20 | 2020-05-14 | Beijing Didi Infinity Technology And Development Co., Ltd. | Systems and methods for recommending a destination |
US20200410555A1 (en) * | 2019-06-28 | 2020-12-31 | Gm Cruise Holdings Llc | Dynamic rideshare service behavior based on past passenger experience data |
US20210192584A1 (en) * | 2019-12-19 | 2021-06-24 | Lyft, Inc. | Systems and methods for communicating concrete offerings for specific plans for a transportation mode to a transportation requestor device |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9631930B2 (en) * | 2013-03-15 | 2017-04-25 | Apple Inc. | Warning for frequently traveled trips based on traffic |
US20150081362A1 (en) * | 2013-09-13 | 2015-03-19 | Stephen C. Chadwick | Context-aware distributive taxi cab dispatching |
US20150161564A1 (en) * | 2013-12-11 | 2015-06-11 | Uber Technologies, Inc. | System and method for optimizing selection of drivers for transport requests |
US9347787B2 (en) * | 2014-03-03 | 2016-05-24 | Apple Inc. | Map application with improved search tools |
US10628758B2 (en) * | 2014-10-28 | 2020-04-21 | Fujitsu Limited | Transportation service reservation method, transportation service reservation apparatus, and computer-readable storage medium |
JP2018528535A (en) * | 2015-08-20 | 2018-09-27 | ベイジン ディディ インフィニティ テクノロジー アンド ディベロップメント カンパニー リミティッド | System and method for determining information related to a current order based on past orders |
US11087291B2 (en) * | 2015-11-24 | 2021-08-10 | Honda Motor Co., Ltd.. | Action planning and execution support device |
CN107424022B (en) * | 2016-05-23 | 2022-02-11 | 北京嘀嘀无限科技发展有限公司 | Order pushing method and system |
US10417727B2 (en) * | 2016-09-26 | 2019-09-17 | Uber Technologies, Inc. | Network system to determine accelerators for selection of a service |
US10425490B2 (en) * | 2016-09-26 | 2019-09-24 | Uber Technologies, Inc. | Service information and configuration user interface |
US10565279B2 (en) * | 2016-10-05 | 2020-02-18 | Uber Technologies, Inc. | Contextual search for location services |
US10976172B2 (en) * | 2016-12-31 | 2021-04-13 | Uber Technologies, Inc. | Recommending destinations of map-related requests using categorization |
US10180332B2 (en) * | 2017-01-13 | 2019-01-15 | Uber Technologies, Inc. | Method and system for repositioning a service location |
US10701759B2 (en) * | 2017-05-19 | 2020-06-30 | Uber Techologies, Inc. | Predictive location selection transportation optimization system |
US10706487B1 (en) * | 2017-11-11 | 2020-07-07 | Lyft, Inc. | Dynamically generating and updating multipliers for a transportation matching system using machine learning |
US10349223B1 (en) * | 2017-12-14 | 2019-07-09 | Lyft, Inc. | Initiating transportation requests |
US11099028B2 (en) * | 2017-12-15 | 2021-08-24 | Google Llc | Interactive listing of ride service options in a navigation application |
US11313688B2 (en) * | 2019-04-10 | 2022-04-26 | Waymo Llc | Advanced trip planning for autonomous vehicle services |
US20210304078A1 (en) * | 2020-03-30 | 2021-09-30 | Lyft, Inc. | Utilizing contemporaneous transportation data from a transportation matching system to surface trending destinations in user interfaces |
US20210342760A1 (en) * | 2020-04-29 | 2021-11-04 | Lyft, Inc. | Systems and methods for utilizing constrained modes of transportation |
US10929156B1 (en) * | 2020-06-09 | 2021-02-23 | Uber Technologies, Inc. | Pre-generating data for user interface latency improvement |
-
2020
- 2020-06-09 US US16/896,437 patent/US10929156B1/en active Active
-
2021
- 2021-01-27 US US17/159,874 patent/US11429403B2/en active Active
-
2022
- 2022-07-26 US US17/873,396 patent/US20220357965A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140242954A1 (en) * | 2013-02-25 | 2014-08-28 | Microsoft Corporation | Location-relevant data |
US20200154245A1 (en) * | 2017-07-20 | 2020-05-14 | Beijing Didi Infinity Technology And Development Co., Ltd. | Systems and methods for recommending a destination |
US20190222670A1 (en) * | 2018-01-16 | 2019-07-18 | Wipro Limited | Method, device, and system for predicting and caching user activity for seamless user experience within vehicles |
US20200410555A1 (en) * | 2019-06-28 | 2020-12-31 | Gm Cruise Holdings Llc | Dynamic rideshare service behavior based on past passenger experience data |
US20200027019A1 (en) * | 2019-08-15 | 2020-01-23 | Lg Electronics Inc. | Method and apparatus for learning a model to generate poi data using federated learning |
US20210192584A1 (en) * | 2019-12-19 | 2021-06-24 | Lyft, Inc. | Systems and methods for communicating concrete offerings for specific plans for a transportation mode to a transportation requestor device |
Also Published As
Publication number | Publication date |
---|---|
US20210382732A1 (en) | 2021-12-09 |
US10929156B1 (en) | 2021-02-23 |
US11429403B2 (en) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11605246B2 (en) | Programmatically determining location information in connection with a transport service | |
US10645179B2 (en) | Method and system for location sharing | |
US20210266703A1 (en) | Selecting a messaging protocol for transmitting data in connection with a location-based service | |
US11954754B2 (en) | Computing system configuring destination accelerators based on usage patterns of users of a transport service | |
EP3052964B1 (en) | Determining location information using a location data point provided by a computing device | |
US11416792B2 (en) | Network system capable of grouping multiple service requests | |
US20220156338A1 (en) | Pre-computed service metric lookup for a network-based service | |
WO2017020029A1 (en) | Messaging integration in connection with a transportation arrangement service | |
US10743145B2 (en) | Network computer system to coordinate delivery of network content to service providers | |
CA3069854C (en) | Contextual notifications for a network-based service | |
US20190320043A1 (en) | Network computer system to generate synthetic messages based on service-specific information | |
US20220357965A1 (en) | Pre-generating data for user interface latency improvement | |
US20230336633A1 (en) | Computing system implementing local context resolution and evaluation for network latency reduction | |
US20240257287A1 (en) | Computing system configuring destination accelerators based on usage patterns of users of a transport service |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |