Several times a day on my iPhone, I tap: Home, Mail, Home, Tweetbot, Home, Reeder, Instapaper. Then I repeat the cycle, this time waiting for each to finish fetching updates and then reading what they fetched (and clipping to Instapaper from Tweetbot & Reeder) before finally ending up in Instapaper.

I do this in the morning and when emerging from the subway; I perform a variation before entering the subway and giving up 3G, and often when exiting WiFi coverage. On the iPad I have a similar routine, swapping Twitter & Flipboard for Tweetbot.

This is annoying! I am wasting my time on stupid button-mashing with substantial built-in delays -- especially on 3G.

Apple's highly effective sandbox security model, combined with iOS's much-appreciated simplicity (specifically Apple's restrictions on background tasks), mean I cannot use a cron type program to update these apps on a schedule (as I used to do on my Treo 650 for Plucker), and there is no 'wrapper' program which can tell them all to update.

Fortunately there is a way! Apple supports URL schemes for inter-application communication, and these apps use such URLs to communicate with each other -- mostly to clip articles, tweet, and send email. There is even a specification for bidirectional communication: x-callback-url.

Imagine an app named Multilauncher, designed to drive other apps in series via URL schemes. It could register the URL scheme 'multilauncher://', and come with a list of known and supported applications -- each with its own URL scheme, and preferably 'linkback' support.

So on my iPhone, in Multilauncher's settings, I could configure:

  1. Mail
  2. Tweetbot
  3. Reeder
  4. Instapaper

On my iPad, I might configure:

  1. Mail
  2. Twitter
  3. Reeder
  4. Flipboard
  5. Instapaper

I would tap Multilauncher, which would then invoke each of the specified apps. For non-callback apps (such as Mail.app) I would hit Home once they had a chance to update, and return to Multilauncher manually. Even better, though, cooperating apps could automatically relaunch Multilauncher, enabling a string of application launches & updates without manual intervention. On my iPhone, Multilauncher might launch URLs such as:

  1. mailto:
  2. tweetbot://x-callback-url/return?x-source=multilauncher://tweetbot
  3. reeder://x-callback-url/return?x-source=multilauncher://reeder
  4. instapaper://x-callback-url/return?x-source=multilauncher://instapaper

Of course Multilauncher would record what it launched last, so it could resume the sequence even without help from other apps.

Extra Credit

I don't know believe Apple currently supports launching apps from push messages or notifications, but I would be happy to subscribe to a (cheap) service to send my iPhone & iPad push messages in the morning, triggering Multilauncher so those apps could all have an opportunity to update themselves. Repeat shortly before the end of my workday. Set a timer and send a push message 6 hours after the last update. In unattended mode skip over uncooperative apps like Mail to avoid getting stuck in the sequence...

Wouldn't it be neat if the Reminder app knew when we passed in and out of 3G and WiFi coverage? It could update every time I enter WiFi, and when regaining coverage after 30+ minutes off the air. Update at the subway exits I routinely use.

Somebody please build it!

I am aware of App Switcher but it is designed as an interactive launcher -- not what I want.