1. A method comprising the steps of: building a precaching strategy, using a computing device, for a mobile device, such that the precaching strategy defines a forecast of a data type a user is predicted to request after the occurrence of a data refresh condition, such that the precaching strategy is built by recognizing, using the computing device, a data usage pattern in data requested by the user using the mobile device over a time period, wherein the data usage pattern comprises the data type and an event that is correlated to the usage of the data, wherein the event is used to define the refresh condition within the precaching strategy, the data type being one of: spatial data, temporal data, social data or topical data and the event being one of: a spatial event, a temporal event, a social event or a topical event, the event further being an event external to the computing device and the mobile device; executing the precaching strategy, using the computing device; detecting, using the computing device, that the data refresh condition has occurred; retrieving data, over a network, from a data source, such that the retrieved data is retrieved according to the precaching strategy; transmitting the retrieved data, over the network, to a mobile device cache accessible to an application program running on the mobile device.