V2 Sneak Peek: Workflows

Alfred is now almost 3 years old and has been built from the top down, with many wonderful new features being added throughout his life. Over time, it has been getting harder and harder to keep Alfred’s preferences usable and approachable for new users.

Around a year ago, I decided it was time for some big changes… and by big changes, I mean, rethinking Alfred’s architecture from the ground up with a brand new foundation, on top of which all of his features are built – I started to plan Workflows.

Workflows are process containers of interconnected processing objects (haha I just made that up, sounds posh eh?). Put simply, you have triggers, inputs, actions and outputs, which can be mashed together into really useful stuff.

There are loads of great built-in objects, so non-technical users can simply pop these objects onto the canvas, connect them together and use their workflow. Not a line of code in sight.

Even better? Developers can create their own custom objects to process information in any way they like, including live filters feeding directly back into Alfred’s results.

Now for some simple examples of the sort of workflows you’ll be able to create:

Should I watch this movie?

Alfred v2 Workflow - Movies

Alfred v2 Workflow – Should I watch this movie?

Movies weren’t created equal, so before I start watching a movie, I can search for “movie dark knight rises” to decide whether or not I should watch it. This will launch a YouTube search for the trailer in Chrome (because I don’t have Flash installed in Safari), an IMDB search using a default web search, and a Rotten Tomatoes custom search I’ve created.

Upload to Flickr

Alfred v2 workflow - Upload image to Flickr

Alfred v2 workflow – Upload image to Flickr

Using the “flickr” filter narrows the Alfred results to only image files. Once I’ve found the image I want, the workflow uploads it to Flickr using the script I’ve added. It notifies me when the upload starts, and again when the upload has completed. No need to refresh the Flickr page repeatedly to check if it’s done, Alfred will let you know!

Google Searches

Alfred v2 Workflow - Google Searches

Alfred v2 Workflow – Google Searches

This one has a few ways to start the search, using both hotkeys and keywords.

Using the keyword “suggest” feeds Google Suggest results back into Alfred using a script filter – This is a new and extremely powerful v2 feature, allowing developers to feed results dynamically back into Alfred. Once I’ve found the result I want, hitting return will search Google. And just because I can, it’ll also post a notification to Growl and copy the suggestion to Clipboard.

Alternatively, I can launch a Google web search using the “g” keyword. Holding the Cmd modifier when hitting return, or using the Cmd + Alt + G hotkey opens the web search in Chrome instead.

These are just a few examples of what can be created with the new Workflows, and they barely scratch the surface of what you’ll be able to do with them.

What next?

Over the coming weeks, we’ll be posting a few more sneak peeks like this to share some of the v2 features.

If you want to take part in the v2 beta in January, you can upgrade your v1 single user license to Mega Supporter or buy a new Mega Supporter license today.

Alfred Powerpack and the Mac App Store (or not)

Note: Before I start, this only affects software obtained through the Mac App Store. Any software purchased outside of the Mac App Store isn’t affected by this and continues as before.

The Mac App Store and Sandboxing

The Mac App Store is currently in transition. From March 2012 (update: Apple delayed it until June 2012), all new submissions / updates need to be sandboxed.

Sandboxing is a way of protecting users from malicious or naughty software by severely restricting the access an application has to underlying resources. It also makes the app approval process easier for Apple as sandboxed apps simply cannot do things outside their own resources. While this works remarkably well on iOS (I am personally happy to be in the “walled garden” on my phone), it really changes the landscape for OS X applications.

As you know, Alfred isn’t a self-contained application like a game, graphics package or todo list. Many of the things Alfred does are to do with OS X itself… he searches, navigates and opens files and apps on your Mac, he runs AppleScript to interact with other applications, he even allows you to create and run lower-level shell or AppleScript extensions… he is basically your quick interface into the heart of OS X. This is where Alfred starts to throw his toys out of the [sand]box.

I would LOVE Alfred’s Powerpack in the Mac App Store

Having the Powerpack in the Mac App Store would not only bring me more revenue, but it’s also a trusted discovery channel for new users – I *know* Alfred would have significantly more Powerpack users by selling through this channel.

Alfred has always used safe, public APIs and been extremely well behaved. Nevertheless, sandboxing means that many of the “OS X allowed” Powerpack features mentioned above would need to be limited or removed if I wanted to continue selling through the Mac App Store from and after March 2012.

Therefore, the Powerpack won’t be going in the Mac App Store [quite yet]

Alfred’s users are most important in this decision. I want to do the best thing for users rather than maximising the money I could get from the Powerpack. As such, I will be keeping the Powerpack out of the Mac App Store until the shortcomings of sandboxing are fully understood and I can make a full evaluation of wether this suits Alfred or not.

ULTIMATELY: The scenario I want to avoid…

If the Powerpack went into the Mac App Store for v1.0 at the end of this month (which I could very well do) and then in March 2012, the Mac App Store sandboxing policy is strongly enforced, I would be unable to provide further updates through the Mac App Store without significantly changing or removing features which do not comply with the sandboxing policy.

I *WOULD NOT* want to provide an update to users that removes features which people are already using and enjoying just to get the latest version into the Mac App Store. This is a problem which may plague current apps in the Mac App Store as well as Alfred, and it wouldn’t be fair on anybody.

But what if you want the Powerpack?

Just remember, the Mac App Store is one of many ways to buy software for your Mac, and the sandbox restrictions only affect software sold / bought through the Mac App Store. Your freedom as a consumer still remains!

To make things easier for Alfred users, I have recently changed Alfred Powerpack’s payment process to use our own bespoke system based on the excellent Foxycart. You no longer need to sign up for Google Checkout to buy the Powerpack as we now accept Credit / Debit cards and PayPal directly. Foxycart is also heavily PCI and Safe Harbor compliant and we do not store credit card information, which means you can buy with the utmost confidence.

I do hope that the sandboxing guidelines are relaxed or that at least Apple provides further mechanisms to interact with OS X before March as I would love to use the Mac App Store as another way to bring the Powerpack to Alfred’s users.

Version 1.0 is just around the corner

This being said, Alfred is just about to hit 1.0, an extremely exciting time for me! He is better than ever and this is just the start of great things to come for him. Take a look at the change log to see what’s coming or, for the more adventurous, why not download the development version to have a play and help us test it :D

Also remember that buying the Powerpack now will save you some dosh as he is only £12 until v1.0 is released!

Cheers,
Andrew

Installing Alfred’s Powerpack

[Update: While Apple has added in-app purchase since this post was originally published, it has also brought in Sandboxing rules which affect our decision to put the Powerpack in the Mac App Store. You can read more on sandboxing in this Nov 2011 blog post.]

Since the Mac App Store was launched on Thursday, there has been a little bit of confusion over how to install the Alfred Powerpack after downloading Alfred from within the Mac App Store.

It’s quite simple… You need to download Alfred from our website to use the Powerpack. Think of downloading the version from our website as downloading a Pro or fully-featured version of software from any website. Once you have done this, the Powerpack tab will allow you to enter the serial code you have received and you can enjoy Alfred at his best!

Why can’t I just click a button to purchase in-app?

At this point in time, Apple does not support in-app purchase like it does on the iOS store. As soon as this feature becomes available to us developers, I will be right on it so purchasing Alfred will be as easy as clicking a single button!

What happens if I buy the Powerpack now or I already have a Powerpack?

Apple has not provided any mechanism for migrating users from outside the App Store into the App Store. We are not the only company to experience this – it has been talked about by Pixelmator, Panic and many more since launch.

This is not a problem in the slightest though as Alfred has been successfully updating itself automatically outside the App Store since the beginning of 2010. We have a wonderful community of users, including many Powerpack users, who enjoy the fast release cycle and sneak peeks into pre-release features – something we cannot offer to the Mac App Store.

As a user of the non Mac App Store, you will enjoy these benefits indefinitely :)

I don’t like reading, show me a picture

I don’t like diagrams, show me a better picture

Our cats when they were kittens, Rose (the b&w) and Jack (the ginger).
Jack and Rose

Cheers,
Andrew (@preppeller)

Alfred 0.8 and beyond!

As 0.8 draws closer to being ready (1st dev release likely within the next week), I thought I would go over some of the motivations behind this release and give a bit of a sneak peek at some features between now and 1.0.

The focus of the 0.8 Release

Initially, 0.8 was supposed to primarily be just a “quality” release, improving usability of all the current features and trying to remove as many outstanding bugs as possible. Any long term user of Alfred will know that this is not how I like to work ;) so naturally, I have added a number of new features too.

Almost 100 improvements and minor bug fixes including:

  • Overhaul of the knowledge / result sorting making the results much more predictable
  • The fuzzy matching option for Applications now works as expected
  • Instant pasting from the Clipboard History (using low level system events); also change hotkeys to return for paste and cmd+c to copy item back to Clipboard
  • Define keyword now shows a preview of the word definition in Alfred itself
  • Better URL detection when typing just a URL directly into Alfred (e.g. alfredapp.com)
  • Added a number of new locales and better keyboard / language support
  • A detailed performance and memory analysis, Alfred is even faster and lower memory!

… and many many more things!

The following NEW features have been added:

  • Persistent Clipboard Snippets with assignable keyword
  • Ability to select the fallback web searches (e.g. use Bing instead of Google)
  • Usage graph for the stats nerds (ahem… me)
  • Eject command to eject any mounted drive (USB, DVD, dmg, etc)

…and maybe some more stuff if I finish it this weekend ;)

And then what?

The list of things I want to add before we hit the big 1.0 milestone is way too large to post in here. I need to reassure you that I am fully aware of feature bloat and am absolutely committed to only adding features when they will not introduce bloat or complexity of any kind to Alfred :)

With that in mind, here are just a few of the major Powerpack features which will be part of Alfred between now and 1.x:

  • Significantly improved bookmark support (both browser and online)
  • Full Address Book and iCal integration
  • Plugin architecture allowing for users to introduce their own results into Alfred
  • Integration with a few of our (and your) favourite 3rd party applications
  • Improved hotkey support, i.e. assigning a hotkey to Applications
  • Shell integration (run shell commands from inside Alfred)
  • Improvements to the file system navigation and actions

It’s just a (beta) label

One final note: Alfred has been labelled as a beta for probably too long. The reason I have kept the label is because I am still actively developing it and like people to know that it is not finished yet. It has become apparent over the last few months that some people may perceive beta products differently to this, so from the next release we will be dropping the beta label.

All this means is that Alfred is now (and has been for quite a while) high enough quality to be considered a released product.

Before people ask, we will keep the ‘early-bird’ price of £12 for the Powerpack for a little longer while we are adding more features, but buy now to avoid disappointment! :)

Cheers,
Andrew (@preppeller)

To Tab or not to Tab, that is the question

In the most recent 0.7.2 update, I started a process of usability enhancements in the run up to 1.0 to try and make the Alfred experience more predictable and consistent for new users. It’s only during this process that you realise how very few options there are for fast ‘single tap’ hotkeys to perform certain tasks.

Tab Auto Complete

One of the very hardest changes I made was to the Tab behaviour – something which absolutely had to be done as Tab is synonymous with auto completion. Before I start, I will explain how Tab auto complete works in the Alfred file system navigation view and how efficient it makes finding a file you want.

If I have a photo called ‘kittens15.jpg’ in a folder called ‘Aww Kitties’ on my Desktop, I would use the following process to navigate to the file after bringing up Alfred:

~           takes me to my home folder
de [enter]  results filtered to 'Desktop', enter the folder
aw [enter]  results filtered to 'Aww Kitties', enter the folder
k  [tab]    auto complete to 'kittens'
15 [tab]    auto complete to 'kittens15.jpg'

Clearly having Tab as Auto Complete freakin’ rocks… so what now?

Brain Dump Alert!

Warning: The following is a bit of a brain dump of some of the thoughts I had for changing the Tab behaviour.

1. Tab needs to be Auto Complete, nothing else

As you can action files in both the default Alfred default view and the file system view, the tab behaviour has to be consistent between these views. This rules out having Tab to perform an action completely.

2. The action key needs to be easy to find without looking

By making the action key ctrl or fn it will always be the bottom left key on the keyboard. This is very easy to find with your left pinky without taking your eyes away from the screen.

3. If you like scrolling, group all the action key with the arrows

By allowing the right arrow key to action, this means that you can find the file you want to action, then for example press right, down (to select open with), right, down (to select the application), then Enter to finalise the action. As an added bonus, on Apple laptops, this also makes the action key the bottom right key of the keyboard.

So there we have it

The Tab behaviour now rocks, and the action key is easy to find without having to look for it. But wait, there is one more thing… If you liked using Tab just because of the location on the keyboard, you have another option!

Remapping Caps Lock

Remap Caps LockIf you don’t use Caps Lock (I’m guessing you probably don’t), in the OS X Keyboard preferences, you can select ‘modifier keys’ and remap Caps Lock to Ctrl which then works as the action key! Some have mentioned that this is the most comfortable key to find on the keyboard so everyone’s a winner! :D

Cheers,
Andrew (@preppeller)

The Mac App Store – First thoughts

It was inevitable – after Apple’s success with the iOS App Store, they would want to get their finger in the pie for OS X Apps too. Is Alfred (and its Powerpack) suitable for the App Store? These are my very initial thoughts about the App Store split into Pros, Cons and Uncertains.

The Pros

Improved reach and visibility – With the positive feedback we get about Alfred, I would hope that we would be listed in the popular and Top Apps in the App store, even if it was only in the Productivity section. If so, this could be absolutely fantastic for Alfred as the visibility would go from reasonably small to millions of users overnight!

Easier purchase / installation process – Apple’s installation process has always been a bit broken. I know this as I had to explain it to my mother recently. Allowing people to single-click to purchase / install Alfred and instantly activate it is definitely a positive. Over the past month, I have been working hard to change our checkout process to make it much easier for all users but it still won’t be as easy as the App Store will make it. This work may now be shelved.

The Cons

The review process – This shouldn’t cause a problem for Alfred as it is 100% 64 bit Obj C / Cocoa / Carbon and after a quick read of the T&Cs, Alfred would satisfy every requirement. However it may make us stumble in the future as it has done already with some legitimate apps in the current iOS App Store – I am a touch wary of this for now.

Fast Release Cycle and Pre Releases – I love doing fast release cycles and dev builds for our users. It gives them a sense of being involved in the development process, learning the App as it grows and feeling instantly comfortable when there are releases. The App Store would abstract the users from the process as they would only be getting the released versions. I could still do pre-releases from our own site but this would be a massive pain for the users as they would have to use two separate update processes for Alfred.

The user doesn’t get a tangible License Key – They are locked to downloading and ‘owning’ the software through Apple. While this may not be a problem, it adds a level of dependency to Apple which I hope isn’t going to become a problem for the customer beyond 10.7 Lion.

The Uncertains

The 30% Cut – While this works for simple apps which can be impulse buys and small $1 apps which subsequently require no customer support, I’m concerned that the App Store will drive the value of desktop apps down into this model. If it does, then we simply couldn’t continue the near-instant and thorough support that we currently pride ourselves by. We love our users and we can see that they love our feedback – I don’t want this to change.

Unable to provide support in The App Store ratings / reviews – So many times on the App Store I have seen people publish negative feedback and 1 star ratings because they don’t understand the software. On Twitter, this can be rectified in a second and convert a frustrated customer into a happy customer in seconds.

Unanswered Questions

  • Current Powerpack users – Can they be migrated to the App Store update process for free? If we did go to the App Store, we want these users to get the benefit of the easy update process but without an additional cost.
  • Family packs and Mega Supporters – Can we still separate the purchase types? Apple has a family pack for iLife / iWork so I am assuming that this will be possible.
  • Will the App Store be in all our target market countries? Otherwise we will have to have a separate checkout / licensing / deployment process anyway.
  • No support for Leopard deployment – What does this mean for our leopard users? Will we need a separate deployment process for these users?

In Conclusion

As you may have gathered from Twitter and the way that we interact with our community – our users are the main focus and we want to do the very best for them.

On the one hand I would prefer to keep Alfred completely independent, improve our checkout and update process and keep the sense of community that we have built since initial release in March 2010. On the other hand, I am worried that if Alfred doesn’t go into the App Store, it will be forgotten about or dwarfed by alternatives.

I would be very interested in hearing your views on this.

Cheers,
Andrew (@preppeller)

Baking Alfred – The Release Cycles

I love interacting with our Twitter followers, giving them sneak peeks of things I am working on for Alfred at that particular moment in time. Screenshots of upcoming features, keeping the change log up-to-date, discussing future ideas. However, this poses a bit of a problem.

Alfred is under heavy development and currently releases very regularly with pre-releases every 2 to 3 weeks and a general beta release every 4 to 5 weeks… Even so, posting these tidbits brings a response that I would liken to when I was younger, gently and methodically prodding the back of my dad’s seat on a car journey…

“Are we there yet, are we there yet, are we there yet…?”

While I absolutely LOVE the enthusiasm from the users for Alfred’s development, creating and releasing native software isn’t an easy thing. Just because a screenshot looks complete doesn’t mean it’s ready for everybody to use. The UI may not even be wired up or functional, or it may have quirky or missing behaviour, resulting in software that does not yet work properly.

I pride myself on the quality and stability of my releases so I simply will not release something until I am entirely happy that YOU, our fantastic users, will also be happy with it… I re-learnt this lesson 100 times over by releasing the iTunes mini player too early. I spent more time supporting this unfinished feature by email than I did trying to improve it for the 0.7.1 release.

Think of the software release cycle as baking a cake. You put some ingredients in, you mix them up, maybe add a few additional ingredients that weren’t in the recipe to make the cake extra special and then you start baking.

After spending all this effort making the cake, the last thing you want to do is take it out of the oven too early and ruin it.

With that in mind, just remember that I have big plans for Alfred, and even BIGGER plans for the Powerpack. Be patient and don’t make me get the cake out too early, as it will be oh so much more delicious when it’s ready. :)

Cheers,
Andrew (@preppeller)