Keep local copies of your text, music and images, so you don't have to retrieve them from the server every time you use your app and also have something to show when you don't have Internet connectivity. Pull the current month's data from the server if the app doesn't already have it, in the background, so the user doesn't have to wait for it to be downloaded before using your app and then transition to the new theme once you've downloaded the necessary files.
As for the implementation, use NSURLConnection
and write your data to a local file:
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
filename = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:save_name];
NSFileHandle *file1 = [NSFileHandle fileHandleForUpdatingAtPath: filename];
[file1 writeData: data];
[file1 closeFile];
}
For extra details, check out this example.