Blog

Migrating to Swift 5

Updating Swift code is easier than ever and the migration assistant takes care of most of the work

As Swift matures, it has become increasingly stable. Thankfully, the task of migrating between major releases of the language has gotten easier. Anyone who has worked with Swift since the beginning will shudder when remembering the migration from Swift 2 to 3.

Swift 5 is notable becase it marks the first release with ABI stability. This will lead to smaller application sizes – the Swift libraries will not need to be bundled in every application.

Moving a codebase to Swift 5 is relatively painless and I have only encountered a few issues in my codebase.

In Swift 5, the compiler will raise a warning if you are switching over an enum from AppKit without adding an @unknown case. For example, switching over the AppKit enum NSTableView.RowActionEdge now requires something like this:

switch edge {
  case .leading:

  case .trailing:

  @unknown default:
    break
}

The Swift standard library has now added a lastIndex(of:) method to find the last occurance of an element in a collection, thus index(of:) has been renamed to firstIndex(of:).

Finally, results of calls to try? will still return an optional, but they will no longer be nested optionals. I welcome this change, this simplifies code that was confusing and means no longer having to use a double if-let to get the required value.

Launching Aura Talk

A new community site for Aura

I'm launching Aura Talk, it's available here. What is it? It's a community site, built on Discourse (which is awesome software, check it out if you need a forum). I've found that as Aura grows in users and complexity that I need something better to co-ordinate everything.

I'll be using it do things like:

  • collect bug reports
  • run betas and collect feedback on the next version of Aura
  • post full release notes (as promised for v4)
  • post quicker, smaller updates on my progress
  • talk to this amazing group of users
  • post support and help documents
  • and just generally to make Aura as great as it can be

In an attempt to make it effortless to login, there's no need to create an account. All authentication is done through your Google account, full details here but the TLDR is that you only need to have used Aura before, and the trial will do.

Head over to check it out, it's going to get busier over there soon.

Aura 4 - The Biggest Release Yet

Bringing dark mode, Mojave support, search and thousands of other improvements to Aura

I'm delighted to release Aura 4. This release represents many thousands of changes that make this a faster, more powerful and useful app. For the sake of brevity, here are just three of the main ones.

Search bar

The search bar has become much more powerful. A fuzzy, quick search matches thousands of items from your accounts and lets you jump to anything instantly. Contacts, inboxes, categories, labels or types of mail.

Gmail Improvements

Improvements all round to how Aura interacts with Gmail. All of Gmail's smart categories are accessible. The synchronization has been improved along with better sleep/wake behavior.

Dark Mode

Mojave added support for a system dark mode, and Aura fully supports it. You'll even notice the theme colors used throughout.

A more complete run down of all the bug fixes and smaller improvements will be published soon is published here on Aura Talk.

Finally, stricter requirements for access to Gmail data were published at the beginning of the year. Aura has always treated your email data securely and already met all of the requirements. But users of older versions of Aura will need to migrate to Aura 4 as API keys for versions 1 - 3 are going to expire. Aura 4 is a free upgrade for all customers and I will be contacting you soon if you haven't yet upgraded.