Archive | April 2012

Scripting in iOS

Imagine that every app on your iPhone offered up its best features as little blocks that YOU could put together to create the apps YOU need in about the same amount of time it takes you to set a reminder or look up an address. Maybe we’ll see something like this soon!

Application scripting has a long history. The Mac, for instance, has had AppleScript since 1993. Even today, many apps on the Mac (Acorn and Transmit, for instance) make their features available for users to combine with AppleScript to create personalized workflows. Apple kicked it up a notch with Automator in 2005 making it much easier to combine services from a variety of apps. See Sal Soghoian’s site for some great examples of what’s possible – create a tour in Google Earth, convert a bunch of essays into audio files for your commute.

AppleScript isn’t alone. MIT’s Scratch is a graphical programming language with a focus on usability that is now available for Android as Google App Inventor. It shares the Android platform with a few other scripting tools – Locale, for instance, will trigger functionality on your Android phone when a set criteria happens (“Lock my screen when I leave my home or office”, etc). If This Than That has built up an excellent set of scriptable web services giving you the ability to automate the internet (“SMS me AAPL drops below $500”, “When I star items in Google Reader, send them to Instapaper”). If you’ve ever used Outlook’s Inbox Assistant, you probably have an idea of how a simple interface can give you a lot more control of your applications.

So what does this have to do with iOS? If Apple and the iOS developer community embraced scripting, here are some use cases that come to mind:

  • Clock + Spotify – Give Spotify a sleep feature – turn it off after 30 minutes.
  • Shazam + Spotify – Find out what I’m listening to and play the whole album.
  • Settings + Settings + Settings + Settings – When I click a button on my home screen, lower my brightness, turn all notification sounds off (but leave phone sound on in case of emergency), turn on my 7AM alarm – Now my phone is in night mode!
  • iMovie + Camera + Weather + Image Editor + Clock – During a blizzard, take a picture of the street every 5 minutes (with the temperature super-imposed) for 3 hours and combine the frames into a movie.
  • Settings + Instagram – When any of my friends posts an instagram image, use it for my home screen background.
  • Maps + SMS + Clock – Text my kids’ current location every few minutes while they are trick-or-treating.
  • Stock + Settings + Notifications – If AAPL drops below $500, turn off mute, turn the volume way up and sound an alarm.
  • Phone + Harvest – When a call comes in from a client, make a note of the time and duration in Harvest.
  • Wifi Settings + Instacast – As soon as wifi is connected, start downloading the latest podcasts.
  • Alarm + Notification + TuneIn Radio – When it’s time for my favorite radio show to start, notify me with the option to start TuneIn Radio on the correct station.

I’m sure some of these exact recipes are available in a single app, today. The trick or treat example could be achieved with Find My Friends or Glympse, for instance. But scripting would let you customize the ingredients to get exactly what you want.

Apple and the iOS community has been building a lot of bite-sized apps that are highly specialized. Each of these apps has something to offer as a building block in a highly scriptable device. Scripting on iOS (done right) could bring us a more personalized, streamlined and accessible mobile computer.

What would you make?