
Issue 509
28th May 2021
Written by Dave Verwer
Comment
I still (just about! đ´) remember the first time I came across asynchronous programming. I assumed, incorrectly, that when I called into the concurrent code, execution would continue in my calling function after it had completed. Of course, I was as wrong then as I often am now!
I feel like programming languages are finally catching up with my naive expectations as async/await syntax becomes more standard across a wide range of languages. The great news is, that group of languages will soon include Swift.
I started thinking about this topic after reading Alejandro Martinezâs post on Swift concurrency and watching the three videos that accompany it. He covers three distinct parts of the Swift concurrency story in detail, and I learned a lot from watching them. Iâm sure you will too.
Over the years, I feel like Iâve seen programming languages fight a constant battle against complexity as the hardware, operating systems, and user expectations push languages and frameworks to evolve. As the battle progresses, complexity goes through advances and retreats and for every step forward that languages make, thereâs complexity lying in wait trying to gain new footholds.
For example, manual memory management was a huge advance for the complexity army until the combined forces of reference counting, garbage collection, and eventually, automatic reference counting pushed it to retreat. It advanced again as asynchronous programming became something we all had to deal with until languages struck back with threads, queues, promises, and eventually async and await. There are more examples, of course, but those are two big ones. It happens over and over again.
I feel like complexity has been increasing quite consistently in Swift over the last few years, so Iâm pleased to see the language make a decisive strike against it with some of the language changes carried by the Swift 5.5 cavalry! đŚ
– Dave Verwer
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
New Apple Developer Forums features now availableRemember when we were all wondering how WWDC labs were going to work last year, and Apple surprised us the week before the conference with brand new developer forums?
It got plenty of criticism when it launched, but I urged everyone to give Apple plenty of slack (no pun intended!) while giving the new forum a chance. Well, here we are just one short year later đ with updates. I agree with everything that Michael Tsai say about the RSS feeds, and while the updates are a step in the right direction, these forums arenât significantly different from what we had before, and what we had before wasnât great.
Tools
UnexpectedlyThis new open-source app from StĂŠphane Sudre isnât related to iOS development, but I bet plenty of you will still appreciate it.
Code
Whatâs new in Swift 5.5?Unless Apple is planning something drastic, weâre just over one week away from the next version of Swift being shipped in an Xcode beta! So hereâs Paul Hudson with his regular look at whatâs coming new.
Here is what SwiftData will beâŚ
Thatâs a bold title from Drew McCormack! A new âSwiftUI styleâ persistence framework is the most common prediction/wish for this yearâs conference that I see. I agree that itâs not going to be, and shouldnât be, a completely new thing from the ground up. Thereâs no need, and data persistence frameworks take years to mature. What will it be, though? Read on for Drewâs take on it, including some interesting thoughts on data persistence and blockchain.
Note: Thatâs the first mention of blockchain ever in this newsletter. Iâm not sure how I feel about that. đŹ
Adding a Gradient to Large Title Text in SwiftUI or UIKit
Hereâs Becky Hansmeyer with a great piece on creating beautiful gradient-masked navigation bar titles. The article is summed up perfectly by these sentences:
The good news is that SwiftUI makes it trivially easy to create gradients and mask them in a variety of ways. The bad news is that SwiftUI canât do much of anything when it comes to customizing the navigation bar.
Large masked gradient titles might not be trivial in SwiftUI right now, but they are possible, and thereâs a playground attached to this post that proves it!
Core Data In Memory Store
You might be aware that Core Data supports in-memory data stores but wondered why youâd use them. If that sounds like you, Keith Harrison has just the post for you as he covers how to create them and two interesting use cases.
AASA File Identifiers
We recently struggled with AASA while trying to make the SPI Playgrounds app respond to URLs. Documentation is sparse and spread over multiple WWDC videos, and we eventually decided not to implement it. So, I read this story from Michael Amundsen with interest. I donât think the bug he ran across was the same problem we were having, but it might the same issue you face in the future!
Design
Should you use gamification techniques in your app?Getting gamification right in apps can be tricky. Go too far, and people could feel manipulated, but get it right, and it can work wonders for engagement. I liked this article from Nick Babich, especially the section where he talks about âachievementsâ, or more accurately showing meaningful progress inside your app. Just be cautious with it!
Videos
NSSpain 2020 - Remote Edition VideosItâs been a rough year for conferences, but that didnât stop NSSpain! As always, theyâve been kind enough to release the videos online. With almost 30 videos available, youâre sure to find plenty to consume your weekend!
Jobs
Technical Director of Engineering @ Stream â Stream is hiring for a Technical Director of Engineering managing our SDK teams for iOS, Android, Flutter, React Native, and React. Our APIs for activity feeds and chats are used by over a billion end-users. Weâre one of the fastest-growing startups in Europe, and recently announced our Series B of $38 mln. â Amsterdam or Remote
Senior Mobile Developer @ Six to Start â We make Zombies, Run!, the worldâs most popular smartphone fitness game with over 10 million downloads. Help us make exercising fun for everyone! â Remote
Swift Developer @ Toggl Track â Help us build and improve our Toggl Track app for iOS, iPadOS, watchOS and macOS. You will be part of a 5 people team dedicated to build the apps for Apple devices. Our code has been built from scratch in the last year, we just released the iOS app and we are starting work on our macOS app. We do 100% Swift with some small doses of SwiftUI. The salary for this position is âŹ50,000 annually. â Remote
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 the US
iOS Software Engineer @ Slumber Group â Join the Slumber Group team and help us achieve our mission of âImproving the health of every single person worldwide through sleepâ. Our audio-focused sleep apps and podcasts help millions suffering from insomnia, tinnitus, anxiety, PTSD, bereavement, or colic. Our products have been featured by Apple, Google, The Washington Post, NYT, WSJ and more. â Remote
Senior iOS Developer @ Sunshine Health Studios Inc. â We make a direct impact on peopleâs health for the better. Our product works long-term, and our large active community shows. Join us in a stable job, alongside Y Combinator founders and top-notch engineers. Paid holidays/vacation, benefits, stock options are available for all employees, even international employees. â Remote
Senior iOS Engineer @ ClassPass â Want to work on an app that helps people lead healthier, more fulfilling lives? Join the team at ClassPass, the worldâs leading fitness and wellness aggregator. Youâll be defining our mobile strategy, collaborating with an incredible product team, and guiding us through a really exciting period of growth. â Missoula MT, Houston TX, or New York City NY
iOS Developer @ Marks & Spencer â Weâre looking for enthusiastic, product-focused iOS developers to join our growing mobile engineering team at M&S and contribute to our App Store chart topping iOS application thatâs used by millions of our loyal customers every month. Our app is a universal app, written completely in Swift, and we are always looking for ways to improve, enhance and extend its functionality. â London UK
Insiders
Thanks so much to this weekâs iOS Dev Weekly Insiders! Ilter Cengiz, Paul Jackson, Shawn Marston, shengchalover, and Russ Shanahan. Thank you so much for your generosity. đ
This issueâs insider call is on Monday, and weâll be talking about complexity in software development, as well as covering some of the other links in this issue. Join us?
And finally...
A bug in a web app that only manifested on Windows PCs and started in 1977? That sounds like a story you should read, doesnât it. đ¤Ż
