Sponsored Link
Forget writing testing scripts, use Waldo.
Waldo is the first fully no-code mobile testing solution. Now, anyone on your team can create reliable automated tests and help you fix bugs before your users find them. Try Waldo now, for free.
News
What's new in Xcode 13 beta 3?
Beta three of Xcode didn't just bring with it "bug fixes and improvements" 😂 but new features! Here's Federico Zanetello with a collection of three new SwiftUI improvements that landed in this build.
Tools
Automatically Switch to Xcode's Build Log
I'm sure I've linked to a tip that suggests this before, but it's certainly been a while, and it's a good one. So, let Dominik Hauser remind you that you can configure Xcode to do all sorts of things when building, or running, or debugging, or when any number of other events happen.
Code
Open-Sourcing Pulse
I linked to Pulse from Alex Grebenyuk back in February. When I did, I mentioned his plan to open-source it if it received enough sponsorship. The good news is that that has now happened, which means we can continue to use the tool and now also learn from how it works!
Hammer
How do you test touch and keyboard events on iOS? You hit it with a... new library from Gabriel Lanata, that's how! This new testing library will help simulate input from touch, stylus, and the keyboard, amongst other things!
macOS Development
Implementing a focusable text field in SwiftUI
I enjoyed this article from Gabriel Theodoropoulos. At first glance, it looks like it might be about the new focused view modifier, but it's not. Instead, it's a well written look at interoperating between SwiftUI and AppKit.
Swift Programming for macOS
Gavin Wiggins has put together this valuable resource with several examples of using SwiftUI to create macOS apps. Some topics will be familiar if you're coming from an iOS development background, but there's also plenty of macOS specific information.
Up to Speed
Getting Started with Resolver for iOS Dependency Injection
I remember being a little intimidated when I first heard people talking about "Inversion of Control" and "Dependency Injection". They sounded such complex concepts that I didn't even research what they were for quite a while. I just nodded along every time they came up. 😅 I was a little embarrassed when I finally did look them up to see that neither were as daunting as I had thought they were. Don't be like me. Instead, listen to Mina Ashna.
Books
TDD in Swift with SwiftUI and Combine
I've been through several phases in terms of my approach to unit testing. I did test-driven for a while, but find myself dropping back to writing code first, then tests as projects get bigger. Maybe I need to read this new book from Gio Lodi? 🤔
For full disclosure, I received an early draft of this book.
Jobs
iOS Developer @ Mozilla – Individual privacy is under attack online every day. Mozilla with Firefox is working to build an honest, safer, more accessible web. Join our iOS team to collaborate and grow our trusted open-source browser for millions of people around the world. – Remote within the US or Canada
Senior Mobile Software Engineer @ Doximity – Doximity, the medical network used by over 80% of US physicians, is hiring passionate Senior iOS engineers (remote-friendly!). 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
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. As we revolutionize the way people manage their expenses, being part of the Expensify team means building the easiest, fastest, and most efficient platform to automate everything expense-related. – Remote, New York City NY, Portland OR, Ironwood MI, San Francisco CA, London UK, or Melbourne Australia
iOS Engineer @ Redzone Production Systems – Redzone is growing fast and looking to hire talented iOS Engineers to join our team. We build a communication and collaboration platform that enables frontline workers to resolve day-to-day production issues themselves before they become problems. Fully native iOS & tvOS apps, 100% Swift codebase, and fast adoption of the newest Apple technologies. – Remote within European or US Eastern time zones
iOS Platform Lead @ SoundCloud – SoundCloud is the world's leading audio platform. We are now looking for a technical leader to join our team and take ownership for our iOS platform. In your role, you will help, mentor and align a collective group of iOS engineers on the Technical Vision for the platform, building a solid technical infrastructure to support any business initiative for the years to come. – Berlin
Senior iOS Engineer @ onX – Are you an iOS developer who loves the outdoors? Join onX! If you’re passionate about writing great software, love playing outside, believe in protecting access to public lands, and want to dominate the off-pavement mobile GPS market – then join our team, where we empower millions of outdoor enthusiasts to explore the unknown! – Missoula MT or Remote within the US
Senior iOS Engineer, AR and Mapping @ Fantasmo – Fantasmo is looking for a stellar iOS developer to extend and maintain our AR/VR localization and mapping SDK and associated LiDAR scanning apps. We are a small but growing team of engineers and scientists. We care deeply about best practices, automated testing and deployments, and code quality, and we utilize a modern stack, using Swift and SwiftUI. Help us map the world! – Remote or Berlin
iOS Developer @ Bontouch – Bontouch is an award-winning product innovation agency that specializes in iOS and Android development, design, QA and data analytics. We are now looking for an iOS developer in Stockholm and Åre to help us in our continued mission to deliver world-class apps together with our partners. – Stockholm and Åre, Sweden
Is your company hiring? Of course it is! Are you getting the best applicants? I’d love it if you’d tell your hiring managers about iOS Dev Jobs. Standard listings are free, so there’s no reason not to check it out!
Insiders
Thanks so much to this week’s featured Patreon supporters: Michael Eisel, Svetoslav Velichkov, Abraham Vegh, Kris Markel, and Michael Lysons! Your support is very much appreciated. Thank you! ❤️
And finally...
Let's end this issue on a more positive note, with the discovery of why the Apple weather app avoids ever reporting a temperature of 69ºF and subsequent discovery of why it happens.
The explanation is not what you think.
Comment
You might have seen that Apple rolled back the fairly radical new Safari tab design in the latest beta releases of macOS and iPad OS this week. I love Safari, and I’ll admit that drastically changing such a core feature made me draw in my breath when I first saw how it looked, but I was interested to see how it felt in use.
Public opinion on the design change was swift and harsh. People did not like it, and feedback was overwhelmingly negative from all sides. That’s fine, of course. Both the process of feedback and the changing of the design is part of any beta process. After all, this is only the third beta out of seven or eight before the release.
But I’m glad Apple and other companies try changes like this from time to time. Often, a new feature can feel like a step backwards at first, but humans are great at adapting. It’s how we progress. Sometimes the changes don’t work, and sometimes they do, but the process of experimentation is essential.
Of course, the internet still isn’t happy with the partial rollback. But again, it strikes me how swift and harsh the judgement is.
Part of it is an escalation of language. When everyone is shouting, you need to use words like “terrible” and “atrocious” or call things a “usability nightmare” to get your voice heard. People are shouting all the time about everything from politics to society, tech, and everything else that exists.
I know Apple doesn’t need its feelings protected, and it’s something that the harsh words are rarely, if ever, directed at individuals. None of the criticism I saw was outright offensive either, but it’s all so unforgiving and absolute. There’s no room for discussion, only judgement.
I’m not even sure what I’m saying with this comment. Maybe I’m just tired after reading everyone’s opinion for so long. Perhaps it’s eighteen months of a pandemic combined with Brexit and a thousand other disasters. Maybe it’s a combination of all of it. I do know that this is one of the reasons I stopped using Twitter and listening to tech podcasts, though. I’m tired.
Dave Verwer