1. A method comprising: executing, by a client device, a software application, the software application associated with a set of asset files that can be utilized to provide functionality of the software application, the functionality provided by the set of asset files being different than original functionality of the software application; storing, in a local memory of the client device, a first asset file of the set of asset files based on usage history of the first asset file by the software application; receiving, by the client device, a request to access a second asset file from the set of asset files; in response to determining that the second asset file is not stored in the local memory of the client device, transmitting, by the client device, to a cloud storage system, an asset request for the second asset file, the asset request including an identifier for the second asset file; and receiving the second asset file from the cloud storage system in response to the asset request, wherein after being received, the second asset file can be utilized to provide functionality of the software application.