A mobile device, comprising: a memory including a local cache; a user interface including an input device configured to receive user inputs and a display; and a processor operatively coupled to the memory, the processor being configured to: receive one or more user inputs from a user via the input device of the user interface; obtain an expected user input interval, the expected user input interval being a projected temporal pause between successive user inputs; characterized by the processor being configured to: obtain an expected response latency for responses from a remote server; determine whether the expected user input interval is larger than a product of the expected response latency and a factor; and if the expected user input interval is larger than the expected response latency multiplied by the factor, then transmit the one or more user inputs to the remote server, and display, via the user interface, one or more predicted inputs received from the remote server; else: if the expected user input interval is smaller than or equal to the expected response latency multiplied by the factor, display, via the user interface, one or more predicted inputs received from the local cache of the mobile device. a memory including a local cache; a user interface including an input device configured to receive user inputs and a display; and a processor operatively coupled to the memory, the processor being configured to: receive one or more user inputs from a user via the input device of the user interface; obtain an expected user input interval, the expected user input interval being a projected temporal pause between successive user inputs; characterized by the processor being configured to: obtain an expected response latency for responses from a remote server; determine whether the expected user input interval is larger than a product of the expected response latency and a factor; and if the expected user input interval is larger than the expected response latency multiplied by the factor, then transmit the one or more user inputs to the remote server, and display, via the user interface, one or more predicted inputs received from the remote server; else: if the expected user input interval is smaller than or equal to the expected response latency multiplied by the factor, display, via the user interface, one or more predicted inputs received from the local cache of the mobile device. receive one or more user inputs from a user via the input device of the user interface; obtain an expected user input interval, the expected user input interval being a projected temporal pause between successive user inputs; characterized by the processor being configured to: obtain an expected response latency for responses from a remote server; determine whether the expected user input interval is larger than a product of the expected response latency and a factor; and if the expected user input interval is larger than the expected response latency multiplied by the factor, then transmit the one or more user inputs to the remote server, and display, via the user interface, one or more predicted inputs received from the remote server; else: if the expected user input interval is smaller than or equal to the expected response latency multiplied by the factor, display, via the user interface, one or more predicted inputs received from the local cache of the mobile device. obtain an expected response latency for responses from a remote server; determine whether the expected user input interval is larger than a product of the expected response latency and a factor; and if the expected user input interval is larger than the expected response latency multiplied by the factor, then transmit the one or more user inputs to the remote server, and display, via the user interface, one or more predicted inputs received from the remote server; else: if the expected user input interval is smaller than or equal to the expected response latency multiplied by the factor, display, via the user interface, one or more predicted inputs received from the local cache of the mobile device.