It happens a lot of times a day that I switch my devices. From iMac to iPhone, from there to the MacBook and from this to the iPad. None of the devices is in use all day and at least the mobile devices are »free«, powered on and online over night. So there is a lot of free time on my devices, but is it not spend wisely. In contrary to that free time I find myself waiting for several events when I am on the mobile devices.
Want an example?: I’m on a train in the morning, maybe in an area with bad network coverage. I want to read articles that I saved into Instapaper the evening before (so there was a reasonable timespan in between). But instead of enjoying my articles, I stare at a spinning wheel for a minute because Instapaper is downloading the content on its launch. Booooring.
Another example: One of my Location-Based-Services apps offers the functionality to download offline maps. The downside: I have to download these maps again every time I update the app. Since the amount of data is >1GB, I start that download at a time when I know that I won’t use the iPhone in the next hour. I don’t need these maps immediately, but it would be nice if they would be downloaded within the next hours or the following night.
How could this been improved: Apps could register themselves into a central, OS-wide crontab to get several tasks done at an idle time. This could either mean that the device is locked, idle for a certain timespan, connected to a WiFi, charging, or a combination of those conditions. (iTunes sync and the iCloud-backup work in a similar matter now)
So, with cronjobs like these, the iOS could launch an Instapaper job which would then automatically download my articles during an device-idle-time and my LBS-software could also download the maps during the night when the iPhone is charging and connected.
There are many other possible usages for that: photo-uploads, podcast-downloads, Facebook-timeline… : All the data you wish to be updated when you need them but do not need them to be downloaded immediately. This, by the way, is also a reason that these tasks should not be solved by »classical« multitasking: That would need to much energy and RAM.
What do you think?
This article is a cross-post from Google+.