Sponsored Link
Mac Remote Desktops from MacStadium & Teradici
MacStadium, the developer cloud for Mac, has partnered with the creator of PCoIP® technology, Teradici, to enable high-performance remote access for Mac use cases, including automating CI/CD pipelines, improving testing, and bringing Mac desktops to wherever they're needed. Launching later this summer, sign up now to get release updates.
News
The WWDC21 Developer Survey
What did you think of this year's WWDC? But, more importantly, how do you think Apple should operate next year's conference? Online only? In-person? Apple is asking your opinions, so this is your chance to be heard.
Note: This survey has already been available for almost a week, so I'm unsure how long it will remain open. Fill it in quickly to make sure you get your say about the future of WWDC.
The Unofficial WWDC21 Lounge Archive
It's not surprising that Apple closed down the WWDC digital lounges once the conference was over, but it would have been a shame to lose the invaluable information shared in them during the week. However, thanks to Paul Williamson and Emin, we have an anonymised archive of conversations in the lounges.
From everything I heard and saw, these lounges were a great success. I hope they continue next year, even if there is also an in-person event.
Tools
How to document your project with DocC
Who was expecting a new Markdown-based documentation tool from Apple this year? 🎉 It's a great tool, and here's Paul Hudson with a breakdown of the essential information you need to know about it.
Hosting DocC Archives
Talking of DocC, what do you do with the documentation for your framework or library once you've built it locally? Joseph Duffy investigates four ways to serve your documentation as a static site. 👍
Code
The importance of cooperative cancellation
I'm assuming that everyone here has read between one and ten posts on async/await or Actors this week, so I'm not going to link to any posts on that topic. Instead, I'll link to this fascinating article on cooperative cancellation of asynchronous tasks from Alejandro Martinez. You really should read this one.
New approach to formatters in iOS 15
Everyone put your hands in the air and wave them like you just don't care about creating singleton date formatter instances anymore! 😂 But the new formatters in iOS 15 don't just solve that problem. There are so many new formatters, so let's learn about them with Filip Nemecek. My personal favourite is ByteCountFormatter
. I've seen so many bad implementations of that over the years. 🚀
Behind the Scenes of SwiftUI List Bindings
Here's Peter Friese looking at the enhancements to List in this year's release. It's not just a cursory glance at what's new, though. It's a deeper look at how it all works. I enjoyed reading this. Thanks, Peter! 👍
Design
Signature and Tortoise Localisation
Yes, this should really be an "And finally...", but that was already taken for this week. I couldn't handle not linking to this tweet from Morten Just, though. Amazing! 😍
Business and Marketing
What's New in iOS 15 for App Store Optimization
A/B testing would have been a huge step forward on its own, but with Custom Product Pages, this is a massive year for your App Store listing. Here's a fantastic rundown of what changed from Ariel Michaeli.
Videos
Xcode 13 vim Mode
What better way to learn about the new vim mode in Xcode than to watch an experienced user walk you through it? Here's Ben Scheirman, an experienced vim user, doing exactly that!
Jobs
iOS Engineer @ MOJO Inc. – Interested in making sports more fun for kids, parents, and coaches? MOJO is seeking an iOS Engineer who is smart, curious and loves the challenge of solving problems that improve people’s lives. You’ll collaborate with a fun, experienced, and agile team to architect, implement, test and continuously deliver new features and products to customers. – Los Angeles CA
iOS Engineer - Multiple Levels @ Turo – Help us build product features that delight guests who book vehicles on our platform and enable hosts with the tools they need to manage their fleet. The iOS team is actively transitioning our iOS codebase from Objective-C to Swift, and we’re learning SwiftUI together–in labs–as we migrate our internal, watchOS, and tvOS apps. It’s really an exciting time to be an Apple-centric engineer at Turo. – San Francisco CA
iOS Developer @ Boozt – Tech is in our DNA, we strive to innovate, experiment, make data-driven decisions in our daily work, be curious and competitive and foster collaboration and personal growth, all while being nerdy and having great fun. Here you will work with one of our consumer-facing apps and you will have a great chance at shaping our future path. Come join our success! – Copenhagen Denmark
Senior iOS Software Engineer @ TeamSnap – If you’re looking to build on a product with 25+ million users and has been featured by Apple at WWDC (Worldwide Developer Conference), TeamSnap is the place for you! We’ve been remote since before remote was cool. You’ll work on a team with big ideas, tiny egos, and a love of sharing party parrot emojis in Slack. – Remote within the US
Mac & iOS Software Engineer @ Flexibits – We make Fantastical and Cardhop, award-winning calendar and contacts apps for Mac and iOS. We were honored to win Apple's Mac App of the Year in 2020 and we're looking to make our apps even better! We are a 14 person, fully-remote company spread across the US and Europe, and welcome anyone from around the world. We prefer people in US and European time zones. – Remote
Is your company hiring? Talk to your hiring managers and get them to list your open positions over at iOS Dev Jobs. Standard listings are free, so there's nothing to lose!
Insiders
Thanks so much to this week’s iOS Dev Weekly Insiders! Gregory Sapienza, Artem Loenko, Jean-Élie Le Corre, Beau Nouvelle, and Evan Anger. Thank you all so much. 😍
This week’s insider’s call is next Monday, won’t you join us to chat about the week’s iOS developer news?
And finally...
What are you talking about? Of course async/await is available on older releases! 😂
Comment
I didn’t know quite how to feel as I watched Kieran Senior talk about reviewing code and dealing with pull requests inside Xcode this week. At first, I was nothing but impressed when I realised Xcode now integrates with both GitHub and BitBucket pull requests natively inside Xcode. I want to review code this way! The web-based representation of a pull request on GitHub is good, but it’ll never compete with looking code in Xcode.
So, I opened up a project in Xcode 13, and sure enough, my active pull requests with comments, approvals, and everything else are all available. It’s a great implementation, and I’d love to send my congratulations to everyone involved.
Yet, I also realised I would probably never use the feature again after testing it. 😰 If you’re anything like me, source control isn’t just for files edited by Xcode. I interact with git in every project I work on, and Xcode is only the best tool for Swift projects. If I need a standalone tool to work with git, I don’t want to learn the one inside Xcode as well, no matter how good it is. I only have limited brainpower, and I’m can only master one source control tool.
This is the dilemma of building an IDE vs a set of standalone tools, and knowing where to draw the line is tricky. Do I want my debugger as part of my IDE? Definitely. Do I want my interface layout tool in the IDE? Again, you probably do. Do I want source control? For me, it’s a no, and I’d guess I’m not alone. It’s a balancing act, and Xcode has been heading towards integrated IDE and away from being a collection of standalone tools for a long time.
If Apple had made this a standalone tool that worked well with Xcode rather than as a part of it, would it have pulled me away from my source code control tool of choice? Maybe!
I think we can all agree it’s a well-implemented feature, but I can see how things happened this way. Making a whole new tool is a much bigger decision than enhancing a feature in an existing product. A new tool needs a new team, and that team has to justify its existence. They wouldn’t try and sell a tool like this, so why make it? Yes, maybe it would bring people who didn’t do native development to their developer tool, but it’s far from a straightforward decision.
Dave Verwer