Sponsored Link
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.
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.
Dave Verwer1: Technically, I don’t know that this will be an announcement, but would anyone bet against it? 😂
Dave Verwer