Launch Center Pro 2.3 Extends iOS Automation

Released today on the App Store, Launch Center Pro 2.3 is a major update to Contrast’s app launcher and automation tool for iOS that further enhances integration with online services, improves how actions are built and triggered, and that refines several aspects of an app that’s become a key piece of my workflow.

I’ve been covering Launch Center Pro since its humble Pro-less beginnings, and the app has changed dramatically over the years. What started as a simple launcher for apps graduated into a full-blown automation utility for URL schemes and native iOS features, which allowed us to create a complete guide to get started with the app on your iPhone and iPad.1

Launch Center Pro 2.3 brings important improvements that make the app an even better companion for common tasks and advanced workflows. The update is packed with features – David Barnard wasn’t joking when he said that it feels like a 3.0 release – and I believe that Contrast did a great job in integrating them with the rest of the app.

IFTTT Actions

The first big addition is IFTTT support: Launch Center Pro is now a channel with triggers and actions to connect the app with web services supported by IFTTT.

With IFTTT, Contrast managed to combine the app’s text entry mechanisms and URL schemes with the feature set offered by the popular web service. Instead of simply providing ways for Launch Center Pro to trigger recipes on IFTTT or display alerts, Contrast built a system to send custom values to recipes and run custom URLs from push notifications received from IFTTT.

Here’s a few points to keep in mind:

You can’t create new IFTTT recipes in Launch Center Pro;

Launch Center Pro can be added as a trigger or action to any IFTTT recipe;

IFTTT actions in Launch Center Pro can be integrated with other actions, keyboard prompts, lists, snippets, etc;

The IFTTT iOS app doesn’t have to be installed on your device to use recipes with Launch Center Pro.

The result of this integration is pretty amazing, and it allows Launch Center Pro to have a bigger scope with web services that wouldn’t otherwise be available inside the app. With IFTTT, you can connect2 Launch Center Pro to dozens of services and let them become part of workflows and recipes that make the app faster and more versatile.

As usual, practical examples are the best demonstration. I recently bought a Fitbit Flex, and I realized that I wanted a quick and easy way to log my weight every day. While Launch Center Pro doesn’t have Fitbit actions as the Fitbit app doesn’t support URL schemes, IFTTT has a Fitbit channel that lets you create recipes with actions such as “log weight”. This means that you can create a Launch Center Pro action that sends a numeric value – your weight – to IFTTT, which will save it to Fitbit through the web.

Once you’ve activated the Launch Center Pro channel on IFTTT, create a new recipe and set Launch Center Pro as a trigger, assigning a trigger name for the recipe such as “Log Weight”. The trigger name is a fundamental aspect of this, as it’ll let Launch Center Pro run recipes directly on IFTTT.

With a trigger set, add a Fitbit action that will log your weight on your Fitbit account. In the Weight field, open the Ingredients dropdown menu and select “Value 1”, which is the text value that Launch Center Pro will send to IFTTT with a keyboard prompt. Launch Center Pro can send up to ten values at once to IFTTT, which can come in handy for complex recipes.

At the end of the process, your IFTTT recipe will look something like this:

IFTTT Recipe: Log Weight To Fitbit connects launch-center to fitbit

With the IFTTT recipe ready to go, open Launch Center Pro and create an IFTTT Trigger action. You have two options here – you can either just trigger a recipe, or trigger a recipe with values; for our Fitbit example, choose the latter. In the subsequent Options screen, you’ll get fields for action name (can be anything you want), Trigger Name (must be the exact name set up on IFTTT), and values. Because we want to log our weight in Fitbit, the value can be a numeric prompt that will allow us to quickly enter numbers to send to IFTTT.

Now that the Launch Center Pro action is ready and the IFTTT recipe set up to run when Launch Center Pro triggers it, all you need to do is tap the action and enter your weight.

A complex thread of web automations and APIs has been abstracted elegantly by IFTTT, with Launch Center Pro retaining its simple approach to text input and actions. Now, every time I want to log my weight in Fitbit, I just open Launch Center Pro, type out two numbers, and everything else is taken care of by IFTTT.

The Fitbit action is a basic example of a new kind of automation possible by integrating Launch Center Pro with IFTTT: instead of relying on clunky IFTTT triggers such as email messages, the convenient text entry of Launch Center Pro can be combined with the “web glue” service offered by IFTTT to create hybrid web-iOS workflows. It’s a powerful concept, well implemented by Contrast.

With the same idea, I’ve created IFTTT triggers for GroupMe, which allow me to send text from a keyboard prompt to a specific thread. I’m a big GroupMe fan, but it takes a while to launch the app and wait as it refreshes a thread and loads the latest replies – especially for group conversations with many participants. With Launch Center Pro, I can quickly type a message in a prompt and know that “IFTTT Bot” will post in the GroupMe chat on my behalf.

When I want to quickly save a link to Instapaper, IFTTT integration means that I no longer need to jump back and forth between Launch Center Pro and the Instapaper app – I can just tap a button and IFTTT will add it to my reading queue.

I’ve also created IFTTT recipes that append text to Google Drive documents using text sent from Launch Center Pro. Whenever I need to save text to the Drive documents we use for Directional and The Prompt, I can tap a button in Launch Center Pro, type some text, and IFTTT will save it for me in Drive.

So far, I’ve only mentioned IFTTT triggers from Launch Center Pro. In version 2.3, you can also use Launch Center Pro as an endpoint for an IFTTT recipe, which will send a push notification to Launch Center Pro on your device(s). Notifications can have custom text and URLs associated with them: because they are generated from IFTTT channels, any ingredient can be added to a notification.

Here’s an example. Every time a new video is added to Apple’s YouTube channel, I want to get a notification in Launch Center Pro.

IFTTT Recipe: Send Apple video to Launch Center Pro connects feed to launch-center

In the recipe settings, I can choose which devices connected with my Launch Center Pro account will receive the notification, and I can set the contents of the message that I will receive as well as the notification sound. By using text and a URL for the notification text, I will receive a video’s title and shortened URL as fetched by IFTTT from Apple’s RSS feed on YouTube.

Because this is Launch Center Pro, though, we can create more advanced IFTTT actions that send a push notification and run a custom URL upon tapping the banner alert. In this example, whenever a new episode of The Prompt is available via the show’s RSS feed, I can receive a push notification, tap it, and automatically tweet the new episode with a pre-composed message in Tweetbot.

IFTTT Recipe: Tweet new episode of The Prompt connects feed to launch-center

On IFTTT, I can assign the Tweetbot URL scheme to a Custom URL parameter that Launch Center Pro will open after tapping the notification. The URL scheme contains ingredients that will appear as text in Tweetbot, and any arbitrary string of text can be assigned to this field, too.

Once in Tweetbot, I’ll only need to confirm the tweet that was composed for me. I went from a new item in an RSS feed to a tweet in the Tweetbot app with a single push notification.

Of course, we can take this IFTTT-based iOS automation to the next level by using Custom URLs that use more than two apps and callbacks for inter-app communication through URL schemes.

Here’s a recipe that I use to tweet new articles from MacStories with Tweetbot:

IFTTT Recipe: Clean up MacStories URL with Editorial connects feed to launch-center

Unlike the previous action, this one doesn’t open Tweetbot directly. Instead, because I don’t like the shortened URLs that IFTTT sends over push3, the notification launches an Editorial workflow that gets the contents of the notification, extracts the URL, revolves its long URL and gets the title with a Python script, and then opens Tweetbot to tweet the article with title and regular link.

You can get the workflow here.

In these few examples, I’ve only scratched the surface of what’s possible by combining Launch Center Pro with IFTTT for web automation. The potential for automated actions is vast and up to your imagination: you can create one-tap shortcuts that unlock your door using home automation devices with IFTTT; you can connect your WordPress blog to IFTTT and interact with it from Launch Center Pro; you can integrate the app with Evernote or Dropbox using IFTTT, or even turn off your bedroom’s lights with a single action.

By connecting Launch Center Pro to IFTTT, Contrast is opening up the possible use cases to hundreds of web + iOS combinations. IFTTT is a perfect fit for Launch Center Pro.

In tests based on my rather simple web automation needs, running IFTTT triggers from Launch Center Pro was fast enough for me to consider using IFTTT full-time in this way. Posting text to GroupMe took a few seconds, as did saving articles to Instapaper. Speed may vary on IFTTT’s end, but I was satisfied with the average results. I can’t wait to see what iOS automation geeks create with IFTTT support.

Encoding Improvements, Nested Tags, and List Builder

Building complex actions in Launch Center a Pro gets easier in version 2.3 thanks to improvements for encoding and official support for nested tags.

In our Launch Center Pro guide, Alex needed to spend a lot of time explaining the double and triple encoding hacks necessary to create workflows for multiple apps in Launch Center Pro.

The good news is that most of that stuff is no longer necessary. Without getting into technical details (we’ll save those for our updated guide), Launch Center Pro can now automatically detect multiple levels of encoding; you can simply use multiple instances of curly brackets and the app will understand how it needs to encode callbacks and input parameters. The system is not perfect, but it’s dramatically better than old manual workarounds.

The even better news is that you can now use tags inside tags without going insane. Want to display a prompt and then another prompt for each possible choice? Now you can. Need to show a list with each item firing off a keyboard prompt? Same deal. You don’t need to manually encode these nested input tags and everything has been designed to “just work”.

Proper support for nested tags allowed me to group together actions that used to be separate (because I didn’t have time for this), such as a 1Password action with a list for often-used logins and a search option…

…or a Fantastical action set that opens multiple prompts and lists…

…or a full-blown messaging UI that lets me pick multiple options for the contacts I want to send an iMessage to.

Encoding improvements and nested tags are going to make the lives of Launch Center Pro power users easier: building complex actions shouldn’t cause terrible headaches anymore.

Unfortunately, these improvements aren’t backed by a redesign of the Action Composer: as I’ve long argued, I would like to see Contrast abstract the URL scheme part of actions and let users create automated workflows with a visual interface that doesn’t require URLs.

The upside is that Contrast is thinking about this. With a new list builder, you can now create lists without typing square brackets and text manually.

I like the new list builder: it removes a lot of friction from creating lists, and even if it doesn’t let you edit existing actions – thus making it a viable option only if you already know every item you’ll want to include in your list – it’s a good start for a friendlier, visual Action Composer.

GIFs

Powered by Giphy, Launch Center Pro 2.3 comes with a built-in GIF search and preview feature to copy links to animated GIFs or send them as files over iMessage. Using a popup Giphy browser, you’ll be able to view thumbnails and select a GIF you want to use either as links or inline attachments. If you search for GIFs on a daily basis (instead of, say, using something like GIFwrapped), Giphy integration in Launch Center Pro will be extremely convenient.

More importantly, you can bring up the Giphy browser at any point in your actions with [gif] or [gif:search term]. Therefore, you can create an action like this, which prompts you for a GIF search and then display results in the browser; choose a GIF, and its direct Giphy link will be copied in the clipboard.

The same idea can be applied to apps – here’s an action to tweet a GIF’s link with Tweetbot after choosing a GIF from the built-in browser.

And, of course, messaging supports GIFs, too. Just drop &attach=photo:gif in a messaging action (or any other action that supports photo attachments), and you’ll be able to send an inline animated GIF from Launch Center Pro’s iMessage compose panel.

GIF search was a surprise during the Launch Center Pro beta testing and I’ve come to rely on it for all the silly GIFs that I share with my friends every day. Whenever iOS automation helps me partake in faster giggling, I call that a success.

QR and barcode scanning

Launch Center Pro 2.3 features a special camera mode to scan QR codes and barcodes without needing a separate app. I used to keep a dedicated QR app on my iPhone, but now I can live with this action, which will scan a QR code and open its link in Safari.

And just like other tags, you can insert a scan action anywhere in your URLs by using the [scan] tag. For instance, I have an action that displays a list to look for a product’s barcode on eBay, Amazon, or Google and that then launches a search for a scanned barcode.

Like other improvements in this version, QR and barcode support means less switching between apps and better integration with automated actions. My examples are basic, but you can explore more advanced scenarios such as, for instance, building a log of your scanned codes in Evernote using an IFTTT trigger from Launch Center Pro.

Everything Else

There are other additions in Launch Center Pro 2.3 that, while not as big as IFTTT or nested input tags, will enhance existing actions and create possibilities for new ideas.

Location triggers. While I couldn’t find a particular use case for this, Launch Center Pro 2.3 can launch actions based on geofences and iBeacon regions.

I’m sure that this will be a powerful feature for actions that would benefit from location-based activation, and the implementation is well done. You can choose to trigger actions when you leave or arrive at a location (you can set, rename, and manage geofences and iBeacons), add filters for days and time ranges, and even suppress duplicates for x minutes so triggers won’t fire multiple times due to quick location changes. I wish I had a need for location triggers – it’s a great idea, and all I can think of is this.

Direct Dropbox links. You know how Launch Center Pro would always return shortened db.tt links for shared Dropbox files? No more. Using a new directlink=yes parameter in your actions, you’ll be able to get the direct Dropbox link to a file.

Here’s an action to upload a photo from the Camera Roll to Dropbox and gets its direct shareable link back in the clipboard. Here’s one to create a new text file and share it. Here’s another one to get the direct link to any file in your Dropbox account. There are some bugs at the moment (see my actions for how I implemented the parameter), but, overall, it’s a good addition.

LC callback. While x-callback-url has nurtured the creation of an ecosystem of callback-capable apps, not every app supports Greg Pierce’s protocol. As a workaround, Contrast has devised a new lc-callback URL parameter that will open another app after you switch manually back to Launch Center Pro.

Here’s an example: you want to launch Evernote and, after you create a note, Dropbox for iOS, but Evernote doesn’t support x-callback-url. By using the LC callback, you can switch with the multitasking view back to Launch Center Pro and, if the app hasn’t been terminated in the background, it’ll continue your action and open Dropbox. Again, not for me (I don’t have that many workflows that require opening multiple apps in a row, after all), but useful.

Launch actions by ID. Speaking of callbacks, referencing individual actions is now possible too: every Launch Center Pro action has a unique ID that can be called with a new [action] tag in your URL schemes. Whether you’re building action palettes or simply need a way to quickly insert reusable actions, the IDs will save you a lot of time.

Set icons. This is particularly useful for IFTTT actions that work with a web service that needs a corresponding iOS icon. You can add #lc-icon=app_name to your actions, where app_name is the name of the iOS app you want to pick the icon from. For my Instapaper and GroupMe IFTTT actions, I’m using the icons of their iOS apps. This is also useful for Launch Center Pro URL schemes that work with an iOS feature but that can’t use system icons by default – for my messages palette, I’ve added #lc-icon=launchpro-messaging, which lets me use the Launch Center Pro icon for In-App Messaging wherever I want.

New notification sounds. Alongside icons, you can choose among a new set of notification sounds, too. The best part? These sounds are also available from the IFTTT website when setting Launch Center Pro as the endpoint for a recipe.

Contact tags. For actions that require contacts from your device’s address book, a [contact] tag lets you pick contacts each time, which is convenient if you want to avoid hardcoding phone numbers or emails into your actions. The contact ABID parameter is also supported by Launch Center Pro now, making WhatsApp messaging actions properly supported.

Wrap Up

Launch Center Pro 2.3 is a great update to a solid app launcher and automation utility for iOS. With IFTTT, the app’s reach extends beyond the features offered by native integrations and URL schemes, making Launch Center Pro a fantastic solution to trigger automated web recipes with a few taps. Nested tags, encoding improvements, GIFs, and many other enhancements in this version are all about reducing friction and improving the ways Launch Center Pro power users build complex actions.

I don’t know what the future holds for Launch Center Pro, but, considering the Extensibility features coming to iOS 8, I suspect the app will benefit from extensions and new ways to let users perform multiple tasks without switching apps.

While it’s not clear whether extensions will obviate the need for URL schemes completely, Contrast is making a good move in diversifying the automation features of Launch Center Pro, adding support for integrations that Apple isn’t adding or that wouldn’t be possible with extensions (such as callbacks). There’s still plenty of room for improvement, but I’m liking the direction Contrast has taken with Launch Center Pro, and I believe it’ll have a bright future in the iOS 8 world.

Launch Center Pro 2.3 is available on the App Store for iPhone and iPad.

The guide will be updated soon with the changes introduced in today’s new version. ↩︎

Connect is also the name of the web app you’ll use to link your Launch Center Pro account with IFTTT. You can sign up for Launch Center Connect using email, Twitter, or Facebook. The setup is easy and it needs to be done once. ↩︎

I have disabled the “Auto shorten URLs” option in the IFTTT settings, but I still get the shortened URLs every time. ↩︎