iOS Dev Weekly
Comment
Something struck me as I watched the M1 chip appear in more hardware on Tuesday. It won’t be long until the whole Mac lineup has the same internals.
The “low” end of the Apple silicon Mac lineup now looks complete. The smaller laptops, Mac mini, and smaller iMac all have the same chip inside them, the M1. Yes, some of them have one less GPU core, but that’s such a minor difference it’s barely worth mentioning.
But what about the “Pro” Macs? What about more than 16Gb RAM and high-end GPUs, and all the other things “Pro” users want? I feel pretty confident that Apple will fall into the same consistent cycle for M-series chips that they have been so consistent with while producing the A-series. September will almost certainly bring us an A15 with the new iPhone, and I’d bet an M2 will accompany it with the capability for more memory and story around better or dedicated GPUs. I don’t think we’ll see the entire range of M1 upgraded to M2 chips immediately, but I think we’ll see it happen before the M3 arrives. Maybe the highest-end machines will get more cores via an M2X or similar, but wouldn’t it be great if the whole Mac lineup had their chips upgraded every year, just like the iPhone and iPad do?
Do you know what that would mean? It would no longer be possible to buy a bad Mac! Just pick the form factor you’d like, and that’s it. Do you want a small laptop with a keyboard? MacBook Air. Want a desktop with a built-in screen? The iMac is for you. Which machine is faster for X, or Y task? That is no longer a valid question. It would also mean that there wouldn’t be a bad time to buy a Mac, as you’d never be more than a year behind the latest upgrades.
Why am I talking about this? Especially when I try not to make predictions or dwell on what might be coming next. 😬
The promise of SwiftUI is the software equivalent of the Apple silicon chips. You can’t pick the wrong framework, and your code will (largely) be compatible with any Apple platform. Just choose a platform (or platforms) you’d like to target and start creating.
We may not quite be there today, but we’re moving closer to that reality with every passing year. SwiftUI is the Apple silicon of software frameworks. 🤩
Dave Verwer
Sponsored Link
Building an open-source app? MacStadium can help
To support the open-source community, MacStadium is offering free cloud-hosted Mac minis for iOS or macOS developers working on open source projects. Both Intel-based and Apple silicon M1 minis are available or apply an equivalent discount to a private cloud. Apply here to get started.
News
Swift Student Challenge Submissions 2021
Applications for the Swift Student Challenge are now closed, and I wish everyone who applied this year good luck! If you're interested to see some of the submissions, there's a GitHub repository with links that you should certainly check out. If you entered and aren't listed here, you might like to share what you created. For the rest of us, it's a chance to be impressed by the quality of submissions for this year's challenge.
App Store submissions require the iOS 14 SDK
If you've been putting off upgrading to Xcode 12, now is the time. As of Monday, you will be required to build with the iOS 14 SDK to submit apps to the store.
Note: As always, this doesn't mean you can't support old versions of iOS, just that you need to compile against the latest SDK.
Tools
Xcode shortcuts to boost your SwiftUI productivity
Three of these four shortcuts are helpful no matter what UI framework you're using, but they become essential productivity boosters when working with SwiftUI view code. Thanks to Sarun Wongpatcharapakorn for putting this together.
Code
TextBuilder
I feel like we might see overuse of result builders when Swift 5.4 gains adoption. It’s a fancy new language feature, and my gut feeling says people will try and find reasons to use them! 😂 Building an attributed string almost always ends in ugly code, though, and that's where this package from David Roman will help out! It feels like a worthwhile use of a result builder too.
Note: You'll notice a full complement of failing builds on the package index for this package. That's only because we're not yet checking compatibility with Swift 5.4, but we're working on it!
SwiftUI In Production
I'm not sure I know anyone who cares quite as much about getting the details of an app "just right" than Peter Steinberger. The current iteration of SwiftUI has some slightly rough edges that don't quite feel perfect, and this article covers some of the challenges he faced while building a significant feature using the technology. It's also available in video form if that's more your style.
Getting Ready for App Tracking Transparency
I've linked to several Apple announcements about App Tracking Transparency, and it's becoming mandatory as of Monday! Just in time, here's a good guide from Lee Kah Seng on how you can ask permission to use the IDFA with ATT enforced.
What’s the difference between a singleton and a shared instance?
This is a good reminder from Donny Wals that sometimes when people say singleton, they mean a shared instance.
Design
How to Design a Great App Icon
If you read one article this week, let it be this one from Michael Flarup. It's a masterclass on both process and technique. I especially enjoyed this video that's squeezed in half way through the article. There's so much good stuff here.
Books
iOS App Distribution & Best Practices
Reading about distributing an iOS makes it seem so easy. Just let Xcode manage your code signing, and you're set. Right? Things are significantly easier these days, and you might get away with that, but what happens when you step away from the happy path or want to start automating bits of your submission process? That's where this book from Pietro Rea and Keegan Rush comes in.
For full disclosure, I was sent a preview copy of this book.
Jobs
Senior iOS Developer @ komoot – Komoot is an app (19M users) that lets you find, plan, and share adventures with the easy route planner. You’ll develop diverse features for navigation, routing, social interaction and content visualization that will make your work challenging and fun. – Remote
SwiftUI Developer @ Sellable – At Sellable we're building the future of commerce! Have the opportunity to experience working as part of a small team in a company at its early stages. Build out new features and grow your skills in SwiftUI. – Remote
iOS Developer @ Shape – If you're passionate about making state-of-the-art iOS apps, why not work together with some of the best developers and designers who share this passion? Our office is in Copenhagen - one of the most liveable cities in the world. We offer relocation support and help you get a VISA. We also like to host social events, morning runs, Friday bars, board game nights, LEGO days and much more. – Copenhagen, Denmark
iOS Specialist @ Darkroom – Tiny team, Apple Design Award-caliber product development, big scale and impact, fully remote team, competitive LA-based salaries anywhere in the world. If you want to build high touch products at scale, in a small team, this is the job for you. – Anywhere between California and Amsterdam
iOS Engineer @ Smile – We at Smile are on a quest to take the “work” out of work. To do this we’re on the search for an iOS Engineer to help delight our customers by crafting an amazing iOS experience for our PDFpen product. What's in it for you? A high level of autonomy in your role, the opportunity to work with motivated and creative teammates, and a flexible schedule that comes with fully remote work. – Remote
Developer Evangelist @ Semaphore – You're going to love this role if you're passionate about teaching best practices (via articles, videos, presentations...) and interacting with the community. The focus is all about building, testing and deploying code. – Remote
iOS Developer @ Doximity – Doximity, the medical network used by over 70% of US clinicians, is hiring passionate iOS engineers (full-time remote!). You'll get to be part of an amazing product team and work on an app that is constantly evolving. Use your skills (Swift, MVVM, FRP) to be an integral part of our newly launched telemedicine feature. Apply today! – Remote within the US
iOS Software Engineer @ Strava – As an iOS engineer at Strava, you will build the athlete experience in the Strava iOS app. In this role, you will build the features that make the best part of our athletes’ days even better. You will work closely with our cross-functional team to ensure our technology is addressing real athlete problems while being reliable and performant. – San Francisco CA, Denver CO, or Remote within the US
Are you hiring? Get your open iOS development positions listed in next week's issue by posting a Featured Listing over at iOS Dev Jobs.
Insiders
Thanks so much to this week’s iOS Dev Weekly Insiders! Paul Hudson, David Olesch, Martin Pilkington, Douglas Hill, and Michael Fey. I really appreciate your support. ❤️
Want to join them? This issue’s discussion call is on Tuesday next week, so there’s still time to join!
And finally...
You gotta believe...