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
Exposure Notification source code
Another bit of unexpected news this week was that Apple published a snapshot of the source code for the ExposureNotification framework. Anything that can help increase the trustworthiness of this framework, and help developers around the world implement it, is a good move in my eyes. Bravo Apple. 👏
Learning SwiftUI with NetNewsWire
I liked Rizwan Mohamed Ibrahim's idea here of using an open-source project to dig into new technologies. In this case, SwiftUI. Figuring something out is always more fun when you're working with other people. You may not be able to dive into all the new things immediately in your work, but if you find yourself with spare time, maybe consider finding an open-source project you might be able to help with?
Tools
SwiftUI and Code Injection
I've been doing a lot of work with SwiftUI with this year's beta releases, and I must say that Xcode previews are so much better in Xcode 12. I use them all the time, whereas in Xcode 11 I had them mostly disabled. Previews only go so far though, and sometimes you need to run your actual app to preview something. Do you need to lose live-reload though? How about if Injection for Xcode supported SwiftUI? Wouldn't that be interesting. 🚀
Add resources to Swift packages
Given that embedded resource support in Swift Package Manager was so keenly awaited, I've been surprised to only see a couple of posts about it so far. It's a huge step forward for the tool, and my feeling is that this might be the feature that kickstarts adoption for it in iOS/macOS apps. Here's Keith Harrison to tell us all about how to embed resources in packages.
Code
The Case for Lists in UICollectionView
The opening paragraphs to Douglas Hill's latest post were the best thing I read this week. It jokingly says "We used to work with someone who wanted to deprecate UITableView
, and the very next thing they did was to get a job with Apple and deprecate UITableView
!" 😂 Amazing. It's also a great post about the new collection view list APIs. 👍
Learning by experimenting with Playgrounds
I've been thoroughly enjoying Jordan Singer's tweets recently, especially his experimentations with SwiftUI which he has kindly published to his gist profile. Experiments like this are both a fantastic way to get up to speed with something and serve as a fantastic resource when you later want to do it for and think "Oh, I did something a little bit like that while building macOS.swift". 🔥
Streamoji
Ever thought to yourself "I'll add a text field where people can type comments" and then realised it doesn't support all the things that people actually insert into comment fields? Text characters and plain emoji are easy enough, but what about custom emoji, or emoji :shortcodes:, or animated gifs? What kind of text field is complete without the ability to insert Xzibit into it? 🔥 This new library from Matheus Cardoso may be able to help.
For full disclosure, Stream (who wrote this library) is a regular sponsor of this newsletter, but that did not influence my decision to include this link.
Generating automatic placeholders for SwiftUI views
One of the new features in beta 3 is a new redaction view modifier, and here's John Sundell to tell us all about it. One thing I was thankful for when looking at this new API yesterday is SwiftUI's CSS-like behaviour of cascading view modifiers. So, if you apply the redacted modifier to a view, all views contained inside it also get redacted. It's powerful.
Design
Designed for iPad
From the very start of the iPad, Apple has always told us that we shouldn't just scale up an iPhone user interface when making an iPad app. While that's still true, that advice focuses on what not to do, when it's far more useful to be told specific techniques to make great iPad apps. I really enjoyed this article from Vidit Bhargava which does exactly that.
Jobs
Senior iOS Software Engineer @ WillowTree – As a Senior Software Engineer at WillowTree, you’ll have the opportunity to impact teammates throughout various stages of their careers. You’ll have clear oversight of how engineering runs day-to-day and will influence project outcomes. This is not a remote position and may require some travel. Currently, all team members are working from home until our offices reopen. – Charlottesville VA
Senior iOS Developer @ Doist – Joining Doist as an iOS developer means you'll be joining a diverse, ambitious, remote-first team of 70+ people who are distributed across 31 countries. You'll help create tools, like Todoist and Twist, that promote a calmer, more balanced, more fulfilling way to work and live. – Remote, anywhere!
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 within US time zones
Senior iOS Developer @ WillyWeather – WillyWeather is a feature rich app that that beautifully delivers the most accurate local weather data from best in class data sources. This is a fantastic opportunity to have an immediate impact working on one of Australia’s most used apps. Work remotely alongside a collaborative and innovative team. – Remote within Asia Pacific time zones
And finally...
Be cautious if you write your apps for the iWatch in xCode.
Comment
I usually write my comment for this newsletter on Wednesday or Thursday during the week, and this week was no different. Except, you’ll have to wait another week to read what I had drafted because Apple ruined my plans in the most glorious way, by releasing a set of new betas with ALL THE NEW THINGS yesterday!
There’s usually a few little features and API changes that don’t make it into the beta 1 releases, but yesterday’s versions felt significant and were full of surprises.
Whether you’re excited about the brand new macOS frameworks, the new redaction view modifiers, the fact that SwiftUI views now have built-in keyboard avoidance, or merely the re-designed System Preferences battery icon. There really was something for everyone. That’s not everything though, so check out the iOS, macOS, and Xcode release notes for the full details. 🚀
Oh, and if you’ve been cooking something up for September, as long as it's not an App Clip, the TestFlight gates opened yesterday too, so get your builds uploaded!
Dave Verwer