AppForce1: news and info for iOS app developers

We stepped on the brake, now let us accelerate again…

August 09, 2021 Jeroen Leenarts Episode 41
AppForce1: news and info for iOS app developers
We stepped on the brake, now let us accelerate again…
AppForce1: news and info for iOS app developers +
Help us continue making great content for listeners everywhere.
Starting at $3/month
Support
Show Notes Transcript

A lot of people went on vacation already. And it sure looks things are speeding up again. Last 2 weeks the rate of new articles started picking up again. Not back at non summertime levels, but we are ramping up for sure. I hope you all had a great vacation.

If you made some new resolutions for yourself during your summer break, have a look at my workshop about being a lead software developer. It might be right up there with what you are looking for in the second half of 2021.

Links from this week's episode:

Runway
Put your mobile releases on autopilot and keep the whole team in sync throughout. More info on runway.team

Lead Software Developer 
Learn best practices for being a great lead software developer.

Support the show

Rate me on Apple Podcasts.

Send feedback on SpeakPipe
Or contact me on Mastodon: https://hachyderm.io/@appforce1

Support my podcast with a monthly subscription, it really helps.

My book: Being a Lead Software Developer

Jeroen Leenarts:

Hi, and welcome to my 41st episodes. My name is Leenarts. And I've been developing software for over 18 years developing iOS apps for over nine years, and I'm running the Dutch Cocottes for close to eight years. If you're an iOS app developer, you should listen to my podcast because it will keep you updated on interesting articles and events you might not have heard about. In this episode, I'm going to talk about async lead explains call async functions in parallel, running tasks in parallel with Swift concurrency tasks, how to build better command line apps and tools using Swift different ways to catch throw errors from Swift do catch and hash selector and the responded chain. So as you have noticed in my previous episodes, I went on vacation for two weeks. It was very nice and I'm back totally refreshed. And I must say that recording the podcast is good to get back to in regular format with all without all these crazy amounts of links that I had in my previous episodes. Also, I wanted to mention my workshop which is happening on September 2. If you haven't looked at it yet, there's a link in the show notes. And if it's something for you, please sign up. Also, my pod fan page if you've become a pot fan of my podcast, you can listen to all the recordings of my interviews, including all the goofs and mishaps that me and my guests have to experience and endure. For instance, the interview with Rob Whitaker turned out really nice, but if you have heard the roar recording, you will have noticed that there was a lot of interruptions a lot of mishaps. But yeah, post production and editing is one of the best things that you can have as a podcaster. So if you want to enjoy those kinds of things, or help me support my work, please sign up at Pato fan slash Air Force One. So just to dive in straight away. The first article is by Antoine formulae on his swiftly block async lead, explain call async functions in parallel async lead is part of Swift's concurrency framework, and it allows you to instantiate a constant asynchronously, the concurrency framework introduced the concept of async await which results in a structured concurrency and more readable code for asynchronous methods. If you're new to async await, I recommend that you have a look at my previous episodes, show notes, because there's a lot of information, including a previous article by Antoine on async await. With a lot of explanation and code examples. The fun thing about async let is that you can assign something to a variable asynchronously in and then get back this value at some point in the future and then continue execution where you were left off ready. So it's quite difficult to explain in few words, but it is one of those things that you really want to have look at if you're doing async await in your Swift code. Because it this is one of those powerful features that allows you to do a lot of things in parallel and really improve the execution of your code. While we're talking about the execution of code until the next article by Donnie walls running tasks in parallel with Swift concurrency task groups, with Apple's overhaul of how concurrency works in Swift, 5.5 or newer, you have learned a lot of things about async await. So there's a lot of things that you have to learn from scratch. For instance, if you're using dispatch, queues, async, and other mechanisms to kick off multiple asynchronous tasks in the past, you could group those within with a dispatch group. With async await. There's an equivalent feature available, but it is a bit different. And you have to understand what a task group is to be able to use this effectively. Have a look at Danny's article for a good overview of what a task group in async await is and how you can use those to your benefit when executing concurrent and related tasks. Atiba Bowditch has an article on how to build better command line tools and apps using Swift. He's been looking into how I can use command line interface tools and utility apps for his surf side projects or terminal scripts using the Swift language. So there's a lot of things that you can do on a Mac, straight up from the command line with Swift. So you can actually do a hash bang at the start of a swift script. Yes, a swift script and execute that right from the command line by marking the file as executable. It's really cool because it allows you to utilize a lot of the familiar concepts and and powerful tools available to Swift, especially in Swift Foundation, and just use these things on the command line. It's an excellent opportunity for code reuse from your products into utilities or scripts on the command line. So Ron has an article on different ways to catch throwing errors from Swift to catch constructs. It's tempting to just catch all throwing errors in a single catch clause and call it a day but not all errors are created equal and you should you should treat it as such. By learning different ways to catch narrow you can make reasonable catch clauses which are easy to read, understand and match with your business needs. Insurance article you will learn different ways to catch errors from Truong functions. There's a lot of things that you can do with catching errors. And saloon is right on the mark here by explaining how you can actually have different behaviors on different errors by utilizing the catch constructs in Swift, with pattern matching. And I think pattern matching is one of those features of do catch statements that is underutilized in production code base, so have a look and use it to your benefit. The final article I wanted to mention is by Dominic Houser, he has an article about hash selector and the respond to chain. Similar as Dominic, I don't know about you, but I tend to forget that terrorists respond the chain in iOS. In his post, Dominic is there to remind himself and us that respond the chain exists and he can use to react to button defense, in his article explains what to respond. The chain is what target actions are and how these two tie together to provide you with a very nice concept that you might want to use in your app. Now it's time for Donald Monday morning tweets. DOJ Dion is preparing himself for an interview with Stuart Lynch. He's releasing syndicates zero dot 1.0 is writing his newsletter, and he's preparing a server side swift presentation. Christian is working on the ether radio app, and he has an update almost ready, containing an Apple Watch version of his app. So that's really cool. NIF is enjoying some sushi in Poland. He's really living large over there seems because he's been posting a lot of fun pictures from his travels there. Eric Lippmann is getting back to work after three weeks of vacation. Wow, that was nice man probably means to go read and respond to a lot of email going through a bunch of JIRA tickets and commenting on history and pull requests and just getting up to speed usual thing after a vacation where I reckon KorVia is saying good morning to Donnie, and he's working on a notion templates called my worksheet tracker templates. And I'm really curious what this notion thing is. So if somebody can tell me please do. James F. Henshaw might try the Tim Apple method of taking only the watch on a mile walk in the morning before it gets hot. So Dani is curious whether or not he has a salad or version of the watch. Michelle was working on a presentation on Swift UI and accessibility. And it's actually for a YouTube video, in which she talks to students for tech talks. So she'll probably posted when it's up. Aaron is working on creating a course and articles, not much, not much else going on. And he's hoping to have a great week, just like the rest of us. And flow is challenging himself to write the brand new app MVP and gets its app store ready by Sunday. So one week one app, that's a big target to try and hit. So good luck with that. And let's build Benjin is connecting patients with 10 1000s of health and beauty care practitioners in order to overcome societal problems, like back pain. It's apparently the largest sector reason in his country of residence. So I wonder which country that is because head might just be the Netherlands. And maxim is writing a tutorial about point free codes, TCA and he's helping developers who want to start fast with it. Alexei is doing some vapers WebSocket stuff, and Holger is on his second fractionation shot by Thursday. So he's preparing himself for that. Good luck with the Fractionation. And good thing that you're taking it. Sangria is reading daanish posts, and he's really enjoying it. So a lot of people working on a lot of stuff, getting ready for the App Store, getting bugs fixed. And yeah, it's just good news all around and a lot of people getting back from vacation. So I think the rates of new articles will start picking up again, because we are almost coming to the close of the summer vacations of a lot of people. And that's it for this week. I hope you enjoyed the shorter format that I have for you this time round. If there's any feedback, please reach out on Twitter at app Force One, and I hope to talk to you again next week.