Sponsored Link
The world’s first virtualized M1 CI/CD environment on Bitrise
Optimized for speed, stability, and extensibility. The performance of Apple Silicon hardware coupled with the reliability of VMs: our fastest macOS option yet. Find out more and register your interest!
News
Swift Playgrounds 4
Swift Playgrounds 4 is available, and what a fantastic job Apple has done with it! Open it up, and you’re one tap away from looking at a SwiftUI preview with a code editor that is almost indistinguishable from the Xcode editor (and while I know some of you will disagree, I say this as a compliment. I love the Xcode editor).
It’s fast, code completion works well, and the SwiftUI preview may even be slightly more reliable than Xcode’s! When your app runs, it takes over the iPad screen with an overlay to terminate it, display a console, or even reset your app’s data. It’s slick!
Is it a “serious” development environment? No, although Steve Troughton-Smith put it through quite a test already, and it did great. I don’t think it’s trying to be a “serious” development environment (whatever that even means) either. I also don’t think that’s needed right now, either.
When Swift Playgrounds for iPad came out, everyone asked, “Where’s the missing link between what’s possible with Playgrounds and the full Xcode?”. Well, here it is, and Apple has done a spectacular job with it.
Improvements to Swift Package Index search
I don't link to every feature announcement on the Swift Package Index here, but this one feels significant, so I'll give it a mention. Platform filters especially are a huge step forward in finding the right dependency for your project.
The end of The Swift Weekly Brief?
Sad news this week as Kristaps Grinbergs announced he was stepping down from the Swift Weekly Brief. I've been a big fan for as long as it's been around, and it'd be a terrible shame if this valuable resource did finally end. Want to help? Reach out to Kristaps on Twitter if you'd be interested in keeping it going.
Tools
xcinfo
You may have read Apple's advice to use the direct download page to download Xcode 13.2 due to an issue with the Mac App Store version.
Directly downloading Xcode is always the best way to install it, even when the Mac App Store version is working, so I thought I'd link to my tool of choice for automating the download. I can also recommend Xcodes, but I find xcinfo
downloads significantly faster.
Code
_printChanges
Thanks to Ish Shabazz for resurrecting this tweet from Luca Bernardi this week. I can't believe I missed the introduction of this priceless utility method! There's no documentation page for it at all on Apple's developer documentation site, presumably omitted due of the _
prefix, but Paul Hudson has a guide on how to use it, because of course Paul Hudson has a guide on how to use it! 😂
Goodbye MFMailComposeViewController?
I enjoyed this post from Chris Mash as he realises that less is more, at least when it comes to MFMailComposeViewController
and modern versions of iOS.
Loading Images on iOS 15
I still have a vivid memory of spending several days scrolling my first-edition iPad back and forth between two full-screen images in a scroll view, trying to remove the stutter that happened as the second image loaded. The power of an iPad has come a long way since then, as has the power of UIKit for dealing with images. Nishant Desai has a great guide to the most modern techniques for loading images.
Design
Jobs
iOS Developer @ Atomic Robot – We are a mobile app agency with a diverse, tight-knit team that is passionate about the craft of mobile applications. Our team is the heart of our business- diversity in skills, perspectives, and lived experiences helps us ship impactful products that connect, inspire, and engage audiences. – Remote (within US timezones)
Mobile Full Stack Engineer @ Expensify – Join our passionate team of top-notch engineers to solve a real-world problem, and help people spend less time managing expenses and more time pursuing their real goals. – Remote (Anywhere) with some on-site work (Australia, United Kingdom, or United States in CA, MI, NY, or OR)
Senior macOS/iOS Engineer @ Paw (joined RapidAPI) – Paw is a native macOS app to test & document APIs. Our goal is to build the best possible productivity tools for building and designing APIs (REST & GraphQL). We're proud to have Airbnb, Apple, Mailchimp, MessageBird, and many other leading tech companies among our most active customers. – Remote (within European timezones)
iOS Developer @ WillowTree Digital – WillowTree is North America's largest privately-held digital product agency. We partner with many of the world's most iconic brands to develop elegant, highly-functional mobile & web applications used by hundreds of millions of people worldwide. We offer remote & hybrid-flexible & incredible culture – Remote (within US timezones) with some on-site work (United States in NC, OH, or VA)
Senior iOS Developer @ Flightradar24 – With over 2 million daily users, Flightradar24 is the world’s most popular flight tracking service. As a member of our small iOS team, you'll work on every part of our app and have a lot of impact. We care about code quality and building the best possible product, and so should you. – Remote (within European timezones)
iOS Developer @ Doximity – Doximity, medical network used by over 80% of US clinicians, is hiring passionate iOS engineers (remote). You'll 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. – Remote (within US timezones)
iOS Engineer - Multiple Levels @ Turo – Help us build product features that delight guests who book vehicles on our platform & enable hosts with the tools they need to manage their fleet. We're actively transitioning our codebase from Objective-C to Swift, and learning SwiftUI together as we migrate our internal, watchOS, and tvOS apps. – On-site (United States in CA)
Are you looking for a new position? iOS Dev Jobs can help. Download the apps for daily personalised notifications to keep you up-to-date!
And finally...
I can't think of a better way to end this year's "And finally..." than with this wonderfully silly project! 🎅
Comment
How is it nearly the end of 2021 already? More importantly, how has it been a worse year than 2020 was? 😬
As depressing as the real world is at the moment, it has been a good year in the Apple development world. This year’s iOS and macOS releases have been great, there’s never been a better time to make your first steps into SwiftUI, and there are no better machines to do it on than the new M1 Pro and Max machines.
It’s also been a significant year for this newsletter, with the 500th issue in March and the tenth anniversary in August. iOS Dev Jobs also had a major relaunch in August, including native iOS and macOS apps. Finally, the Swift Package Index has gone from strength to strength this year, with usage increasing every month and a mention in a WWDC talk! Every time I see someone use or mention it, it warms my heart, and we have great hopes and plans for it in 2022.
So, even if it’s been a rough year, it has certainly been a fruitful one, for me at least. I hope it’s been as productive for you all.
As always, thank you for staying subscribed for another year and for your kind and thoughtful feedback after every issue. Next week, I’ll be taking my usual holiday break, followed by a “best of And finally…” that will land in your inboxes on the 31st December. Regular service will resume on 7th January 2022.
Happy holidays to you all, and let’s all wish for a fantastic year next year!
Dave Verwer