Subscribe for weekly commentary and coverage of Swift and Apple platform development. Written by Dave Verwer and published every Friday. Free.

Picture of Dave Verwer

Issue 456

15th May 2020

Written by Dave Verwer

Comment

The least surprising announcement at this year’s WWDC will be¹ that Xcode 12 will include Swift 5.3. 🤯 So to warm-up for next month’s flood of news, why not read Tibor Bödecs’ guide to what’s new in Swift 5.3? It’s an excellent summary.

In my opinion, the most exciting part of 5.3 is that the Swift Package Manager will finally gain support for bundled resources. I was quite surprised to see the community survey show people using it in ~35% of personal projects, and ~18% of commercial apps. Much higher figures than I was expecting!

That said, it feels like binary resource support might be the last major feature needed for most libraries to support the SPM. I’m guessing, though! So, would you like to tell me what is holding you back from adopting SPM as your dependency manager? (Yes, that’s a quick survey, but it’s only one question long!) I’ll publish a write up of the results next week.

1: Technically, I don’t know that this will be an announcement, but would anyone bet against it? 😂

Find An iOS Dev Job Through Vettery

Vettery specializes in developer roles and is completely free for job seekers. Interested? Submit your profile, and if accepted, you can receive interview requests directly from top companies growing their mobile dev teams. Get Started.

Tools

Everything wrong with XCFrameworks

I hadn’t thought much about XCFrameworks since their debut last year, mainly because I don’t think anyone has talked much about them! Why? Kamil Pyc lists some of the issues with using them, and hopes for some fixes in a few weeks.

Code

Building an adaptive button

I linked to several posts from Jeff Watkins on leveraging UIButton rather than replacing it last month. So is this post more on the same subject? Kind of, but he does run out of steam with UIKit’s button class in this post. I do like that he says this though:

There’s still no excuse for using UITapGestureRecognizer to solve this problem.

It’s worth a read.


Propagating user-facing errors in Swift

It’s always easy to overlook error handling, especially if you’re writing blog posts or sample code. For example, The Core Data template code Xcode generates has this to say on the subject. 😂 It’s understandable of course, handling errors isn’t trivial, and if every sample code project included thorough error reporting, it’d detract from what samples were demonstrating. It did make me very happy to see John Sundell tackle the subject this week though. It’s something we should talk about more.


Using Combine to simulate async / await

Like Bill Atkins, I too am keen to see Swift get support for async/await style concurrency. I did like this article in which he argues that with Combine, Swift already has what Chris proposed. I’d still like to see the language take on this challenge in the future, but before that happens, Combine can help you tame concurrency.


UI Testing iOS application with EarlGrey

I had heard of EarlGrey before, but I hadn’t seen anyone write about it until now. Here’s Maksym Shcheglov with a rundown of how its approach differs from XCUITest and some example tests.

Design

The ideal first-run experience is no first-run experience

As always, Brent Simmons is speaking sense here. I’m not sure I’d ever give up on an app purely because of a bad first-run experience, but every walkthrough and forced login prompt negatively affects my attitude towards an app. I also spoke on this subject recently (at 9m14s if you want to skip to the exact bit!) if you want my full take on it.


Writing Great iOS Accessibility Labels

Writing is an undervalued skill in UI design, and if you think it’s hard to get people to care about the words in visible UI, imagine how hard it is to get them to care about invisible words. Rob Whitaker has some great advice on how to write great accessibility labels.

Books

The Big Nerd Ranch Guide to iOS Programming – 7th Edition

It says something when a book gets to a 7th edition, and that’s exactly what has happened here with the spiritual successor (of sorts) to the book I used to learn Apple platform development. It may not cover the very latest technologies, but I’m confident that if you read it, you’ll know how to write good quality UIKit apps.

Jobs

iOS Engineer @ Karbon – Join our dedicated, all-remote agency and help us build amazing iOS apps for amazing clients. We’ve spent the past 10 years helping companies ship apps to millions of users—join us as we focus on the next 10 years. – Remote, or Portland OR

Are you looking for a new challenge? There’s plenty of other jobs listed over at iOS Dev Jobs. Sign up and get one email a week, every Monday, full of new opportunities.

And finally...

What does the NS in NSObject stand for? I thought I knew, but I was wrong…

What does it really stand for? 🤯