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.
News
Contact Tracing
I've seen plenty of high-level descriptions of how this is going to work, but this article from Mattt is the first one that goes into technical details around the framework. Health organisations around the world would not have been able to do this alone, so I'm incredibly happy to see Apple and Google work together to make a cross-platform, privacy-conscious solution like this. 👏
On the same subject, Quentin Zervaas has put together a small sample app that's worth a look. 👍
Tools
Fully automating Nine41
I love that Jesse Squires took up the challenge that I light-heartedly made when I linked to his Nine41 library last year. 😍 The solution is a bit of a hack, but it works, and that's what's important! 🛠
The Xcode autocomplete dropdown… Who knew?
I can (almost) guarantee you'll learn a thing you didn't know about Xcode in this tweet from David Steppenbeck.
... 🤯
Code
Proton
If you're looking to make a full-featured editor app, you probably want a custom Core Text implementation, but if you're only looking to let people input some styled text quickly, few solutions avoid resorting to a web view. Is this library from Rajdeep Kwatra the answer? It certainly looks like it might be!
ResilientDecoding
Codable was a huge step forward, but it's not perfect when it comes to decoding JSON that might not be in exactly what you were expecting. This library not only copes with unexpected input but also allows errors to be inspected. This looks wonderful.
CGAffineTransform and Auto Layout
It's really easy to forget, or overlook how applying a transform affects the frame and bounds of a view, so here's a quick reminder from Dominik Hauser.
Optionals in Swift Objective-C Interoperability
Let's end this week's code related links with this fascinating investigation from Fabián Cañas into an issue with nonnull
values coming from Objective-C into Swift. I'd agree with the Swift team that this is a medium priority bug, but it's one you'll want to be aware of if you work in a mixed codebase, and it's a great explanation of it.
Design
Every little animation
I've been subscribed to this Reddit for a couple of weeks now, and it's a lovely little dose of inspiration every day. It's great. It also reminds me how much I miss Little Big Details.
Business and Marketing
In-App Subscription Management
I've said this before, and I'll keep saying it until things change... The ability to manage/cancel subscriptions in-app should not only be trivial for app developers to do, but it should also be a built-in, native view controller. The App Store review guidelines should also enforce its use. Every time a customer struggles to cancel/adjust a subscription, a little trust in the App Store is chipped away.
Should you worry about being Sherlocked?
This is great advice from David Smith. You're much more likely to lose far more by a lack of action than you'll ever lose by being Sherlocked.
Up to Speed
Combine Basics
I've linked to plenty of articles on Combine in the last few months, but you're busy, and you might not have had more than a cursory glance at them. If that sounds like you then take a look at this introduction to Combine from John Sundell. I liked his approach of starting with the very simplest way of using Combine to process downloaded JSON data, before moving on to splitting tasks into more logical chunks with chaining. 👍
Jobs
iOS Framework Engineer @ Apple – The Interactive Media Group at Apple is looking for a highly motivated iOS Framework Engineer to design and develop an analytics framework for all of Apple’s operating systems. You'll be a critical part of a team focused on providing end-to-end infrastructure and tools to enable Apple Engineers, working on media-related features like video and audio streaming, FaceTime, and similar software. – Cupertino, CA
If your company is hiring, I need your help. Please do me a huge favour and let your hiring managers know that they can post free iOS development job listings on iOS Dev Jobs. Thank you. ❤️
And finally...
Bug triage: "What if we just wait until it's impossible to re-test bugs without installing a three year old version of Xcode, and a two year old version of macOS..." 🦹♂️
Everyone else: "Great work, you'll go far!"😂
Comment
The remainder of this year is all about online events that would previously have been in-person. 😐 The big one is WWDC, and speculation is rife on what exactly an online dub dub might look like. We often look to Apple to show us new ways to think about things, but I'd urge caution on expecting that out of them this year. It's one thing to change plans for a 5,000 person conference in less than two months. It's entirely another to also reimagine what a conference is in that same time.
It's also possible that Apple cancels the event entirely for this year, and while I don't think that will happen, it certainly could. If it goes ahead, what I am expecting is an excellent set of online videos, and that's all. I've not heard anything at all from little birdies, this is just my gut feeling. Well, a gut feeling and many years of training myself not to over expect when going into WWDC. 🙌
But WWDC isn't the only iOS event planned for 2020, and while a great many community conferences have sadly cancelled, others have chosen to run remotely. So far, there's AppBuilders and UIKonf in May, mDevCamp in June, and Hacking with Swift Live in July. There are also various smaller meetups going remote too. Kornel Miszczak is maintaining an online calendar of them if you'd like a list. 👍
I think the biggest issue facing remote conferences is that it's going to be hard for people to sit at home and watch conference talks for an entire day, let alone multiple days. It's the breaks, the networking, and the general interaction with other people that make that work at a conference. Apple don't expect you to watch eight hours of WWDC videos back to back, but they already didn't expect that. Community conferences are a little different, and they need to adapt even more than Apple do. So, I'll bet that if we do see conference formats change this year, that it'll be a community-run event that pioneers that change. It may be one of the Swift conferences or one on an entirely different subject. There's less risk, more agility, and people won't expect everything to be perfect, as we tend to do with Apple.
UPDATE: I had a few emails asking for clarification why I think WWDC might be cancelled. Just to be clear I don’t think WWDC will be cancelled, but if it is, it’ll be because the beta 1 releases aren’t ready. We hear every year that it’s an enormous effort by everyone involved to get those releases shipped for the start of the conference. That’s hard enough without the disruptions of being out of a normal working environment, and much harder in our current situation. Even though engineers are generally able to work from anywhere with a VPN connection, I’d say that the disruption still puts an enormous strain on a company that’s very used to being on-site. So again, just to reiterate, I don’t think WWDC will be cancelled (which I do say above!) I just think it’s a possibility and wanted to clarify why.
Dave Verwer