Clipboard History with Alfred

Note: this is your last chance to win a free Alfred Powerpack!

If you want to enter, you should own a Mac, since you’ll need one to actually use Alfred!

To enter, do one of the following:

  • follow me at @harpaa01
  • Subscribe to icanthascheezburger via email
  • Subscribe via RSS at the link above and leave a comment with your email address (I won’t publish the comment)

If you also mention one of these posts on Twitter or Mastodon or Micro.blog (and mention me so I can see it) you’ll double your chances.

Winners will be randomly selected on Wednesday. I don’t want to reveal too many numbers here, but let’s just say you’d have really good chances of winning if you entered.

homer simpson saying he likes those odds


Copying and pasting is a nice little productivity boost that you get when using a computer, but the fact that you can only ever have one thing in the pasteboard at a time is kind of limiting.

With Alfred, you don’t have to feel limited in this way: enter Clipboard History.

alfred clipboard history

This is the kind of feature where you first hear about it and your reaction is an unenthusiastic “hmm, neat.”

But I promise: once Alfred is keeping your clipboard history and you actually get used to it being there, it’s liberating.

It’s easy, just invoke Alfred, type in the keyword to get to the clipboard viewer (mine is c) and hit Enter, and you’ll be greeted with recent Clipboard items.

“What was that URL I had a few minutes ago? Oh, no worries, I’ll just grab it quick.”

Ever feel a little bit hesitant to delete some text from your document? Just ⌘X and you can cut it with confidence that it’s right there if you change your mind, even if you copy some other text to the clipboard later.

Got a list of different things you are going to copy from one file to another? Don’t keep cmd-tabbing back and forth; just copy them all in sequence, then use Alfred to get the one you need, right when you need it.

The clipboard history is searchable, so even if you don’t 100% remember when you copied something, or even if you don’t quite remember exactly what the text was, you can quickly find it.

If you copy images to the clipboard, Alfred handles that too!

By default, Alfred won’t keep sensitive items in the clipboard history, like things copied from your password manager or the Keychain.

But wait, there’s more!

Keeping recent clipboard items is great, but what if you just have some snippets of text that you frequently want to include in documents?

Alfred’s got you.

Enter snippets!

alfred snippets

You can give snippets of text a name, and then when you’re searching the clipboard history, you can search for the snippet of text by name.

And if you want to use Alfred as a basic version of TextExpander, you can also add the ability to automatically expand snippets when you enter the keyword.

These snippets are highly useful, and you can import them from the web. I’ve imported a collection of emoji by name, for instance.

You should use Alfred!

This is my final post in this Alfred series. I’ve shown you how to do a variety of things with Alfred, and it’s still hard for me to describe exactly what Alfred is for, because Alfred can be used for anything you really can imagine setting it up to do.

But at the end of the day, Alfred buys you back some time in your day, a few seconds at a time. Sometimes when you use it, it buys you back a few minutes. But it helps you do things without effort and without thought.

And when you’re in “the zone” and Alfred can keep you in the zone by making it possible for you to do something like type in the glyph for ⌘ without having to dig into the character viewer, Alfred just gave you back more than just that couple seconds.

I don’t spend tons of time using Alfred (and you shouldn’t!), but I invoke it many times a day:

CleanShot 2020 08 31 at 18 39 51 2x

And if Alfred kept track of my usage across every device I’ve used it on, it would no doubt tell me that I’ve used Alfred at least fifty thousand times since I first installed it 10 years ago, almost to the day.

Thanks, Alfred!

Keyboard Projects: Iris

Over the past year I’ve developed a periodic habit of going on keeb.io and just ordering up a kit for a keyboard just to try it out. Like with most mechanical keyboard supply shops, you have to keep a close eye on when things are in stock, but they have some fun and relatively simple keyboard kits.

I recently embarked on trying to find an answer to the question “what if I had a keyboard that was like the Planck, but had just a couple more keys on it?”

There are a couple Planck-like keyboard projects out there that kind of fit the bill of what I was looking for, but I noticed the Iris kit on keeb.io and decided to give that a shot.

It’s a split ergonomic type keyboard with an ortholinear layout. Each half has 28 keys; a 6×4 grid, plus space for 3–4 thumb keys on the corners of each half.

Now, its default layout is set up not quite like a Planck; it’s actually using the top row as number keys, like this:

Iris keyboard layout (default)

But this is a fully programmable keyboard, so I don’t need to concern myself with such limitations!

Instead, I decided to lay mine out as though it’s a Planck, just with some extra keys added:

my Iris keyboard layout

Switches and Keycaps

Once you’ve picked what kind of keyboard you’re making, the next most important set of choices are going to be which switches you’re going to use, which will in turn inform which key caps you can use. The switches, if you’re not familiar, are the component that goes beneath each key cap, and it’s the “mechanical” part of a mechanical keyboard; it actually has mechanical components within it that are responsible for actuating when you press a key, and are also responsible for a good chunk of the clickiness you feel when you are typing on a mechanical keyboard.

The Iris PCB, luckily, is quite flexible! It supports three main types of switches: Cherry MX-style switches (by far the most commonly used in modern mechanical keyboards), ALPS switches (very popular in the 80s and 90s with some die hard fans still today), and Kailh Choc switches (a thinner switch that enables you to build a low-profile keyboard with less key travel and less thickness).

I initially decided to lay mine out with ALPS-style switches made by Matias. Because ALPS-style switches use a different plastic stem shape, that severely limited my key cap options, so I just bought a set of blank key caps from Matias.

Obstacles

Building the keyboard is pretty straightforward. The latest PCB is basically all pre-made; you just have to solder the switches in, then screw the case together. It’s a good beginner project, too, because there are only 56 contact points you have to solder on each half.

Once I had the keyboard together, and once I ported my layout over to it and flashed it, I gave it a whirl. But the thumb keys proved to be a problem; they were basically blocking the two keys they’re in front of.

So, I decided to try something experimental: what if I bought a few low-profile Choc switches, and used those for the thumb keys instead?

That’s got to work, right? The PCB supports both types of switch.

It was a little janky, and the PCB wasn’t built to have more than one variety of switch in it at once, but with a little flexing, I got the Choc switches (Jades, if you were wondering) soldered in and they worked!

PCB flex

Show me the keyboard!

It came out looking pretty cool. Note that despite my stint living in Wisconsin, I’m not as much of a Packers fan as the key caps let on; the supplier I got the key caps from included some color key caps as freebies.

Iris glamour shot

close up of the Iris keyboard

And of course, you’re probably wondering how it sounds. Well, I am delighted to say that the ALPS-style clicky switches are some of the clickiest you can get, and these are nothing short of really satisfying to listen to:

Mind you, with this particular choice of case and plate and keycaps, I am ending up with a somewhat different sound than these same switches produce on another keyboard. Let’s hear these ALPS switches on my Ergodox Infinity, for instance:

The difference is more pronounced in person, but the sound is deeper than on the Iris.

Also, the four thumb keys are using “thick click” Kailh switches, which also have a lovely little sound and feel to them:

I think if I could do it over again I’d have picked the slightly stiffer Navy Blue Choc switches.

Parting Thoughts

Whenever I’m using a Planck or similar 48-key keyboard, I’m always thinking to myself “if I just had a couple extra keys here that’d be just perfect.”

And so I give myself a few extra keys with the Iris, and I realize it’s not the productivity boost I thought it’d be.

The issue: With the Planck, everything is within super easy reach. The thumb keys on the Iris are just far enough away that your fingers second guess themselves when you try to use them. That slows me down more than you might think. So even if this gives me some new dedicated keys I can now hit without a layer switch, it’s still actually just faster for me to hit the equivalent key on the Planck, even though hitting that same key involves two keystrokes.

I’ll give myself more time though. This keyboard is still a lot of fun to type on and I really do like how rich and clicky it sounds. Also, the switches are still a little stiff and would benefit from a little more time to break in as well as a bit of lubrication.

This is a great quarantining project too. Material costs are $100–150 depending on what components you pick out, and the soldering work is pretty easy. Hit me up if you have questions about it.

Building Custom Jigs With Alfred

note: I’m giving away some Alfred licenses!

Because I love Alfred so darn much, I’m giving away Alfred Powerpack licenses to some lucky readers. If you want to enter, you should own a Mac, since you’ll need one to actually use Alfred!

To enter, do one of the following:

  • follow me at @harpaa01
  • Subscribe to icanthascheezburger via email
  • Subscribe via RSS at the link above and leave a comment with your email address (I won’t publish the comment)

If you also mention one of these posts on Twitter or Mastodon or Micro.blog and mention me you’ll double your chances.

I’ll pick winners next Wednesday, September 2, 2020!


I like to watch experienced craftspeople do woodworking from time to time, and the more I watch good ones doing their work, the more I realize it has a lot in common with software development as a craft.

One such similarity is that woodworkers will often see opportunities to make themselves more productive by building little custom tools for themselves such as jigs to help hold a piece of wood in place, or to help make consistent cuts when doing some repetitive work.

Here’s a common enough use case: I have a projects folder where I keep all my programming projects. I very commonly want to just open one of the folders in that projects folder with my editor of choice.

Alone, Alfred makes this not too difficult:

alfred accessing a project folder

That isn’t bad.

But we can do it faster with a workflow.

This workflow has two components: a script filter input and an action that runs a script.

This is the script filter:

script filter

The code for the script filter:

I’m not that good at Bash scripting and I lifted this code from some other Alfred workflow years ago. But to customize it, you’ll want to change the directory where it says cd ~/projects to match the directory you keep your projects in. You can also customize the text to say whichever editor you plan to have projects open in.

The action script is set up like so:

script action

The script reads simply /usr/local/bin/mate ~/projects/{query}. Your editor will be a different binary. If you use VS Code and you’ve set it up to launch from the command line the path to the binary will be /usr/local/bin/code instead.

With everything set up, let’s see how it looks:

alfred script filter workflow in action

Not bad!

Alpha Lima Foxtrot Romeo Echo Delta

Ever been on the phone with customer service and you need to spell something out, and you think “man, I wish I actually knew that NATO alphabet so I could spell out letters using words and sound like a military badass”

Alfred lets you be that badass. You’ll need a third party workflow for this. Download it and add it to Alfred, and once you do, just type nato into Alfred followed by the phrase you want to spell to the person on the phone. And if you press Enter it will display in large type.

demonstrating using Alfred to display Nato alphabet words

I don’t always need this, but when I do, it’s useful. And if I ever do need it, it’s just a couple keystrokes away.

Now, go forth and look for an excuse to say “niner” to someone.

Want an Alfred license?

Because I love Alfred so darn much, I’m giving away Alfred Powerpack licenses to some lucky readers. If you want to enter, you should own a Mac, since you’ll need one to actually use Alfred!

To enter, do one of the following:

  • Follow me, @harpaa01 and DM me to say you want a PowerPack
  • Subscribe to icanthascheezburger’s email newsletter
  • Subscribe to the RSS feed, then also leave a comment with a way for me to reach you (comments are moderated and I won’t publish it)

To double your chances, share a link to this blog post on your Twitter account (mentioning @harpaa01). And if you have over 100 followers your chances are tripled.

I have gotten zero takers so far on this, so an Alfred Powerpack literally could be there for the taking!

Searching the Web Far and Wide with Alfred

This is a use case that got me addicted to application launcher style apps before Alfred even existed (back then Quicksilver was all the rage).

It doesn’t take that long to Google something; you just go to an open browser window and type something in the address bar and hit Enter. If you’re savvy with your keyboard shortcuts you’ll know that ⌘L will focus your keyboard on the address bar so you don’t even need to lift a finger from the keyboard.

But that still takes a second, especially if you’re not in a browser right this minute.

Alfred’s got you covered. Look no further than the Web Search feature:

alfred web search settings

The best part: this doesn’t just work with Google; you can search just about any site on the web that supports search. You can jump right into a Google Image Search, for instance (my shortcut for that is gim), or search Amazon for something.

performing an Amazon search with Alfred

Instant Bookmark Access with Alfred

I use a lot of different web apps throughout my work day, and I can’t be bothered to navigate to them all the time.

Using Alfred to launch apps on my Mac is great but it’s too obvious a use case to be worth a blog post.

However, Alfred does integrate with major web browsers to give easy access to your bookmarks.

Alfred Web Bookmarks settings

(looks like Firefox isn’t supported out of the box but you can install an Alfred workflow to make these work).

From there, all you have to do is invoke Alfred and start typing the name of the bookmark and you’re off to the races.

I have a few different GitHub-specific shortcuts, such as one that takes me to my notifications page (I named that one ghn), one that takes me to the issues I’ve written (myissues), and one that shows me my current pull requests (myPRs). Alfred will automatically suggest the best match in real time so I usually just have to type the first few letters and then hit Enter.

Protip: If you work at a company that uses Okta single sign on, I recommend that you copy Okta links to each of your apps and make bookmarks of those. That way, if you’re not signed into the app, it’ll take you through the Okta sign-in process first:

copying URLs for Okta

Depending on how effectively use your bookmarks this might save you only a couple seconds, or it could save you several if you were pretty inefficient before. But over time, if you’re opening up bookmarks all the time, this adds up to decent time savings over time, and it keeps you in your flow state. Plus, the satisfaction of being able to open arbitrary bookmarks with just a couple keystrokes is incredibly satisfying.

Get a free Alfred License!

As I mentioned in a previous post, I’m giving away some Alfred Power Pack licenses because I love Alfred so darn much.

If you use macOS and you’re interested, just follow @harpaa01 on Twitter and DM me to let me know you’re interested. If you want to double your chances and you’re willing to shamelessly plug me on Twitter for it, mention me with a link to this post on Twitter. And if you have 100–999 followers, your chances of winning will be tripled. Yes, that’s right, tripled! This offer also valid on my micro.blog account (but I don’t think micro.blog has DMs so just mention me)

Not a Twitter user? No problem, subscribe with your email address and you’ll be entered. Using RSS? No problem, comment on this post (make sure you leave your email) and show me a screenshot proving you’re subscribed (I won’t approve the comment so your email won’t be public).

No purchase necessary, void where prohibited, bla bla bla.

If you are actually reading this far into the blog post, your chances are pretty high; I know there aren’t many of you; I see the analytics.

The Moonlander Keyboard – First Impressions

When ZSA announced a new keyboard a couple of weeks ago and said it was in stock and ready to ship immediately, I managed to last about five minutes before clicking the Order button. ZSA, makers of the Ergodox EZ and more recently the Planck EZ, have stepped things up with a new keyboard that is an entirely new design (the Ergodox and Planck EZ are based on open-source keyboards).

I was interested in the Moonlander primarily as part of my initiative to experiment with keyboards that are Planck-like but have some extra thumb keys to make things a little easier for me. The Moonlander has an extra row on top, which makes it more similar to a Preonic with extra thumb keys.

But one thing in particular caught my eye about the Moonlander: the thumb clusters are on a hinge and adjustable. Being someone for whom the thumb keys often either are in my way or are a real stretch for the thumbs to reach (looking at you, Keyboardio Model 01), this seemed quite promising.

Fast forward to today (well, yesterday), and my friendly UPS driver drops off a surprisingly compact box on my doorstep. I open it up and find it has a beautiful unboxing experience, and the keyboard comes with a nice little carrying case.

Moonlander box with Planck EZ on top for scale

Moonlander keyboard in its handy carrying case

I immediately got to work adapting my own keyboard layout to this keyboard (That’s right! I’m giving it my own custom layout. This keyboard is fully programmable so its layout can be whatever you want it to be. More on that in a bit). Instead of using the layout it came with, I am instead making this layout a superset of my Planck layout, which is what I’ve been doing with all the ortholinear-layout keyboards I use. They’re all at least as big as a Planck, so they contain a Planck inside of them.

Onions have layers, keyboards have layers

When using a relatively compact keyboard like one of these, you will find the need get multiple keys’ worth of mileage out of each individual key on your keyboard, and one easy way to accomplish this is with layers. You can assign keys to let you switch between layers. They can either work like a standard modifier key where you’re on the other layer as long as you hold the other key down, you can have the key toggle the layer on/off, or you can even have a one-shot layer switch, where you tap the key quick, then the next key you tap is on that layer and the keyboard automatically switches back. You can even have a key that lets you hold to momentarily switch layers, but will toggle the layer on if you tap the key.

Your computer traditionally is none the wiser about these layers; all the computer knows is that the keyboard sends keypress events to it and it processes them, and the fact that there are layers is not really known to the computer. But ZSA have made a clever feature in their keyboard configurator called “Train” that allows you to actually explore your keyboard layout in real time, and it gives you visibility into the layer keys you’re pressing. Let’s have a peek at that now:

animation of training mode

This goes beyond a traditional typing tutor application because it also provides visibility into the layers you have on your keyboard and it indicates which is active and what keys are available on that layer. If you’re new to the whole concept of layers on keyboards this is a really valuable learning tool, and even an experienced curmudgeon like myself enjoys this as a testing/debugging tool.

And if your keyboard layout turns out to be unusable? No worries! You can just reprogram it and re-flash it.

Keyboard features and quality

tl;dr: It’s a quality keyboard. Nothing to worry about here.

The keyboard itself is surprisingly thin when unfolded. It’s just over half an inch thick. It can be used flat (which is how I’m using it currently), or you can tent it at whatever angle you like. Actually getting the tenting situated looks a little bit fiddly, but there’s a helpful YouTube video demonstrating how to do it.

The key caps it comes with come in a DSA profile, which means that the height and angle of the keys is the same on every row. If you don’t like this, there is a cottage industry of small makers selling their own third-party key caps for mechanical keyboards. You might have to buy some add-on kits to get enough caps for this keyboard, but for most key cap sets a base kit plus an ortho kit will probably be just fine.

The keyboard has RGB LEDs under each keyswitch, and the firmware for the keyboard comes with a variety of fun animations built right in. The LEDs’ brightness and hue can be adjusted on the keyboard, and they can be turned off entirely for those who hate the whimsy. And the keyboard isn’t just a visual delight; it also has a built-in PC-style speaker which can even be used to play little tunes if you’re into that kind of thing (and the speaker can also be turned off if you don’t want it making a chirp when you connect it to your computer).

The build quality is absolutely fantastic. The keyboard is made of plastic but it has a decent amount of heft to it (something I can’t say for ZSA’s Planck EZ which is so light it feels cheap).

As any good modern mechanical keyboard, it uses a USB-C connector on the back, and the switches aren’t soldered onto the board; they are instead hot-swappable, so if you change your mind and want a different type of feel to your keyboard you can just pop out the switches and put in new ones.

The keyboard comes with a 2 year warranty as well, and I can say that all of my interactions with their support team are spectacular. They helped me troubleshoot a pretty gnarly issue last year with my Planck that ended up being caused by the animation code using up too many processor cycles and causing my keyboard to not respond correctly in all cases.

The switches

I chose Kailh Box White switches for this keyboard. ZSA offers a decent selection of switches with their keyboards, but one thing I really wish they and other keyboard vendors would offer is an option to buy a keyboard with the key caps but no switches so I can pick exactly the ones I want later, because these wouldn’t have been my first choice.

My first choice would probably have been Kailh Box Jade or Box Navy switches, which are part of their “thick click” series. They’re… so luxurious to type on. But I digress.

The Box White switches are nice and clicky, and have a bit more of a “chonkier” sound than, say, Cherry MX Blue switches, often the default keyswitch people think about when they think about a loud and clicky keyboard.

The click from these switches is lower in pitch compared to an MX Blue.

Let’s hear these compared to a couple other of my favorite switches:

In person the differences between these sounds are quite different (in particular the Box Royal switches are much quieter in person than the recording would have you believe). And if you don’t really need or want a loud and clicky keyboard there are plenty of much quieter keyswitch choices available to you, although they often have a more dampened tactile feel to them as well when you type on them.

A… nonstandard configuration

I got used to the layout of this keyboard pretty quickly, but one thing kept driving me nuts: as a long time Planck user, that top row of keys felt superfluous and the keys were getting in the way.

I initially worked around this by making the top row of keys do the same thing as the second row of keys in most layers, but it still felt clumsy.

Then I realized: It’s a totally customizable keyboard with hot-swappable switches; I can do something about this!

So… I just took the top row of keys out entirely.

blinded by the light

It looks silly and I am getting blinded by these extra LEDs while I figure out how to make some plastic placeholders to go in place of these keyswitches, but it works pretty well!

Of course, if ZSA makes a compact Moonlander that drops that top row I’m totally dropping another few hundred bucks.

I also might explore trying to find a super low-profile MX-compatible key cap that can go on that top row so that I can retain those extra keys, but without them always necessarily being in my way. I might even look into 3D printing some miniature caps that go right over the stem but don’t cover the rest of the switch, leaving the keys accessible, but not in a way I’m ever going to mistake for a regular key. I might also put in a row of artisan key caps on that top row.

Verdict: should you buy one?

Yeah, if you want one! It’s a great choice of keyboard.

If you’re currently using a standard keyboard layout, you need to give yourself time to adjust to this one though, because it’s pretty radically different. It’s a split keyboard, for one thing. It also uses a columnar (aka ortholinear) layout, which is going to feel unnatural to someone who is used to staggered rows of keys on traditional keyboards. And if that’s not enough, you have to get accustomed to the fact that there’s not a space for all of your symbol keys in the normal spot on this keyboard.

You’re not going to be typing at full speed on this keyboard the day it arrives on your doorstep like I am (unless you happen to be adapting a very similar keymap from another similar keyboard like I did)

And I think ZSA is a great little keyboard shop and they’re very deserving of your business.

Verdict: will it unseat my Planck as primary keyboard?

It could.

One thing that I really love about the Planck is how accessible every single key feels on it. I necessarily can’t get that same experience with these bigger keyboards because, well, they have more keys and when you add more keys, you’re eventually going to end up with some that are a farther reach.

What I can say so far is that once I got my layout on here, I’ve felt completely at ease and at home on this keyboard. It makes for a great keyboard for my desk, and it has a very good chance of becoming my daily driver.

Of course, when you have the massive collection that I have (that keeps getting larger), you can end up with an awful lot of daily drivers!

The Dunning-Krueger Years

I’ll periodically get these flashbacks to moments in my career where I can now realize that I was way out of my element and didn’t know what the fuck I was doing. Having worked at an early stage startup I ended up in a role where I was managing other engineers and I was not yet experienced enough to realize just how unqualified I was.

On one of these occasions, one of the engineers on my team was struggling to get some work done in time for an upcoming deadline.

And since I was presumably this clever and brilliant manager I figured I’d be able to swoop in, work my magic, and get this engineer back on track. There was a company-wide outing coming up that week, and I told him “hey, let’s both stay back at the office and we’ll knock out these issues together.” For me, this was perfect because I considered the event to be a waste of time anyway and I also got to be the down to earth, hands-on manager who rolls up his sleeves and gets shit done.

So we stayed behind to hold down the fort while the rest of the company went to this fun outing. In practice, I was of little use to him because I wasn’t intimately familiar with the codebase he was working on, and despite him working primarily in JS, he was perfectly proficient in Ruby and didn’t really have any need for 26 year old me’s sage advice as an expert Rubyist of… probably a couple of years at the time.

So I mostly spent the afternoon dicking around on the internet, not really helping with much, and I guess he got to chip away at his issues for an extra afternoon, and an extra afternoon wasn’t make or break. In retrospect, this was mostly a dick move. Instead of singling this lone engineer out and keeping him from a bonding activity with peers, I should have been monitoring the project more closely so that I could have directed some help his way weeks prior, when it would have mattered. And I would have been a much more down to earth manager had I been a good sport and attended this outing.

This engineer’s life has since then taken a dramatic turn; he eventually left tech entirely and according to his Facebook profile he teaches yoga and practices healing through sound baths and meditation. And to be honest, having worked in tech now for a little while, that does sound like it would be a refreshing and fulfilling departure from the shenanigans people like past me subjected people to.

I’m glad that I’ve grown enough that I can look at my past self and facepalm so hard. I’m not proud of whatever collateral damage I’ve left in the path I took to get here, and I hope I still have enough growth ahead of me that I can look back at even this post and think “wow, I was insufferable.”

A new WWDC

Speaking as someone who’s never attended a WWDC in person, today’s sessions felt like an overall improvement over an in-person event. Presentations felt tighter and more polished overall. It was probably a little less nerve-wracking for the speakers to have everything recorded ahead of time, even if they miss out on some of the live audience feedback and applause.

I realize that for the people who have attended WWDC in person this is for sure a downgrade for a lot of reasons, but for the tens of thousands more developers who get to experience the conference this time as first class citizens, this is an overall upgrade.

WWDCs for the past… decade or so have felt stagnant in their format that dates back to Steve Jobs. This year’s WWDC feels like Apple is finally breaking free of that legacy and trying something new that is true to the reality of Apple’s scale today. This year’s WWDC format also feels more true to the nature of working as a developer, something Apple hinted to in the outro video for the Platforms State of the Union, showing developers working in a variety of settings, sometimes late at night, sometimes with children around. By embracing a distributed and more asynchronous conference format, you are making WWDC feel like it’s for everyone, not just a privileged relative few who can make the journey.

Apple didn’t want to do this year’s WWDC like this; they were forced to do the event like this because of COVID-19, and I’m sure they’re eager to do live events again when it’s safe. And that’s great! I can’t imagine it gets much better than working hard on something great for people and hearing that thunderous applause when it’s introduced on stage. But the community has changed, and the defaults should change too.

ARKit and the taller skyscraper

Having seen some of the apps that were put into the App Store this week with ARKit support, it really hearkened back to an analogy Steve Jobs loved to make when OS X was first being developed.

Building software, he opined, was a bit like building a skyscraper. There’s a certain number of floors that you can build on your own before the whole thing collapses under its own weight. At a certain point it just gets too complex for you or your team.

But with good APIs (such as the ones OS X provided), you still can build that same number of floors, but with the help of those great APIs, you are already many floors higher when you first start building. 

ARKit perfectly embodies this principle. A few years ago, building your own AR system was a ton of work and was hard to get right. But since Apple has included AR APIs in its SDK, you now get AR for free. 

That suddenly means that a ton of little apps can now be made and have AR as part of them, when they wouldn’t have been practical to build at all before. Adding an AR component to a simple game? Easy! Want to make a tape measure app that lets you measure things around you? Now that’s easy to do with AR.

I don’t think AR is going to be a revolutionary change to how everything in mobile apps works. But it’s now within easy reach of every iOS app developer who wants to try something with it. Investment in these APIs give Apple incredible long-term advantages that are hard for competitors to catch up with.