AppForce1 Worklog

Recovering after a conference

Jeroen Leenarts Episode 96

Use Left/Right to seek, Home/End to jump to start or end. Hold shift to jump forward or backward.

0:00 | 12:23

Send me a text

In this episode, I’m going to talk about:

This episode is something special. According to the stats of my podcast hosting provider, this is my 200th episode. And what a ride I had between this episode and my previous one. My last episode was published two and a half weeks ago. And a lot of things happened since then.

  • I was still preparing for Do iOS on November 3 and 4.
  • Had a weekend I kept going over my notes for Do iOS.
  • Then the Do iOS workshop started with Daniel Steinberg and I was collecting and bringing some of the material we needed for Do iOS to Amsterdam. For lunch, I stopped at the workshop to check in on things and talk to a few people to get the vibe of the crowd at the workshop. It was pretty good.
  • Then it was November 8. Do iOS day. I was the stage host the entire day, but we started with onboarding everyone at the door. I spoke a few words with all attendees at registration. Then an entire day of talks, making sure catering was taken care of, taking care of little issues. And making sure we kept a good pace. At the end we had a nice social drink with all attendees and a typical small Dutch snack.
  • Evening of the first conf day, we had a sort of casual diner, and it got a bit out of hand. We raided a restaurant and stressed out kitchen staff with such a big unann

Join me in Amsterdam for Do iOS 2025, tickets and details available now.

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

Support the show

Do iOS: https://do-ios.com


Rate me on Apple Podcasts.

Send feedback on SpeakPipe
Or contact me:

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

My book: Being a Lead Software Developer

Welcome to AppForce1 episode 96. My name is Jeroen Leenarts, and I’ve been developing software for over 20 years, developing iOS apps for over 10 years, and running the Dutch CocoaHeads for over 9 years.

If you are an iOS app developer, you should listen to my podcast because I will keep you updated on interesting articles, conferences, and events you might not have heard about.

In this episode, I’m going to talk about:

This episode is something special. According to the stats of my podcast hosting provider, this is my 200th episode. And what a ride I had between this episode and my previous one. My last episode was published two and a half weeks ago. And a lot of things happened since then.

  • I was still preparing for Do iOS on November 3 and 4. 
  • Had a weekend I kept going over my notes for Do iOS.
  • Then the Do iOS workshop started with Daniel Steinberg, and I was collecting and bringing some of the material we needed for Do iOS to Amsterdam. For lunch, I stopped at the workshop to check in on things and talk to a few people to get the vibe of the crowd at the workshop. It was pretty good.
  • Then it was November 8. Do iOS day. I was the stage host the entire day, but we started with onboarding everyone at the door. I spoke a few words with all attendees at registration. Then an entire day of talks, making sure catering was taken care of, taking care of little issues. And making sure we kept a good pace. We had a nice social drink with all attendees and a typical small Dutch snack.
  • The evening of the first conf day, we had a sort of casual dinner, and it got a bit out of hand. We raided a restaurant, and we stressed out the kitchen staff with such a big unannounced group. We smoothed this one over by indicating to prioritize other tables and to serve all my guest's food when ready. So we all ate a bit out of band with each other, but it allowed for people to listen for a while when they were eating.
  • The second conf day came quickly, I slept in the hotel, so travel was a nonissue. After breakfast, we had to start up the room and get ready for all attendees again. Since we badged everyone, this was a much easier thing compared to the day before. The day went quickly, and before we knew it, we were sending people off again with a big farewell.
  • The next 4 days after the conf I can't remember anymore what I did. My notes tell me they were all useful things. But after such an intense set of days, I needed time to catch my breath again. But soon had to close up the bookkeeping of Do iOS. It had a small positive financial result, exactly as intended.
  • Meanwhile, the whole Twitter thing unfolded, so I've been taking a long hard look at Mastodon, and I think it is starting to grow on me. Initially, it was all so similar but strange to me, I couldn't make heads or tails out of it. But I think there is some true value in there. So I am curious to find our what Mastodon will be to my online circle a couple of months from now. If you want to find me, search for anything@appforce1.net or look at the bottom of any of my website's pages. I've actually been thinking about setting up a personal Mastodon instance, but instead, I am considering moving my AppForce1 account over to iosdev.space. There is a nice thing you can do with the webfinger protocol on your own website.
  • And during all of the above, work just kept going, and I seem to finally be back into some form of control over everything.

Right now, I talked at length already about what I've been doing. And I am actually trying to write down a bit what it was like and what it took to organize a conference. I am kind of proud that true Do iOS execution from inital phone call and email untill the last conference day took 75 days. So putting together a conference is pretty easy if you have done it before. Do iOS has been had its fourth edition and I think so far the best one. I felt quite relaxed during the entire event, but afterwards I did feel how much energy it took to host both conference days.

The highlight of this entire period has been my neighbour, he mentioned Lisa, my oldest, now acts and seems much more relaxed and comfortable with herself. My wife and I knew she's loving going to school nowadays, but to actually hear such kind and honest feedback on her, that's just next level. And Milan, my youngest, he is turning more and more into a sort of prankster. He just loves playing with words and since Lisa switched schools, he is now acting up and claiming his space more and more. And he is starting to display eerlily similar behaviors as his sister. So for a few weeks now, his school is observing him and supplying him with work that is a bit more challenging for him. So fingers crossed we can figure out if he is in an ok school for him or not.

Anyways, let's get started with the articles. I have a bunch.

We start with an article by Tiago Lopes.

When does a SwiftUI Environment get retained?

*The answer depends on how we use SwiftUI. For an app entirely written using it, one might argue that it gets released whenever the app finishes. But what about an UIKit app that uses some SwiftUI views?

To answer this question, let’s explore some scenarios involving environmental objects. They have reference semantics, and we can track their instances using the memory graph.*

Next, I have 2 articles by Leonardo. I keep on liking his writings.

Animated Launch Screen in SwiftUI

In this article, you will learn how to create a Launch screen in SwiftUI using modern approaches like environment variables, create a state machine to control the animations, and also async/await to mock an API call.

The API call part is very important because after that is completed, it will trigger the dismissal of the Launch Screen, and this behavior is close to or if not identical to what we have in a lot of apps. Keep in mind the responsibility of everything here. The act of call to dismiss doesn’t come from the view itself as an external agent, but the dismissal itself is the responsibility of the Launch Screen State Manager.

And the second one by Leonardo

A Guided Tour for SwiftUI ForEach Structure

We will start this article by answering the first thing you need to know, and the exact definition that structures ForEach in SwiftUI. Then we will provide examples of how and when you can use it to improve your code.

ForEach in SwiftUI is one of the most basic structures out there and it is really important to have a good grasp of it.

What is ForEach in SwiftUI?

Continuing on on the article by Leonardo, Sarun hits a bit on the same thing

What is the difference between List and ForEach in SwiftUI

*ForEach is a view that creates an array of views from an underlying collection of data. The resulting views can be used within other container views, e.g., VStack, HStack, and List.

List is a container view that turns a collection of views into a list structure.*

We're now 4 articles in. Lee has an article called

How Does Swift Concurrency Prevents Thread Explosions?

A few weeks back, I read an article by Wojciech Kulik, where he talks about some of the pitfalls in the Swift Concurrency framework. In one of the sections, Wojciech briefly mentioned thread explosion and how Swift Concurrency can prevent it by limiting us from overcommitting the system with more threads than the CPU cores.

This makes me wonder… Is that the case? How does this work behind the scenes? Can we somehow cheat the system to create more threads than the CPU cores?

We are going to answer all these questions in this article. So without further ado, let’s jump right in.

Majid wrote about

Building custom layout in SwiftUI. Basics

SwiftUI provides the Layout protocol allowing us to build super-custom layouts by digging into the layout system without using GeometryReader. Layout protocol brings us the incredible power of building and reusing any layout you can imagine. This week we will learn how to use the new Layout protocol to build a flow layout in SwiftUI.

Amos has done a pretty great writeup on:

Using SwiftUI Effects Library: How to Add Particle Effects to iOS Apps

Creating particle animations similar to the iMessage screen and bubble effects in iOS can be difficult. The main reason is that the Core Animation Emitter Layer that allows you to animate, emit and render particle effects is complex to set up and configure due to its large number of parameters.

In this article, you will discover how to integrate and render particles such as snow, confetti, rain, smoke, and fireworks to iOS applications effortlessly and without knowing the Physics behind these animations.

And finally, Tibor has a nice surprise for you. Tibor has been kind enough to provide me with a free copy of his latest Swift cheatsheet.

Introducing - Swift cheatsheet - The.Swift.Dev.

A complete Swift programming language reference for beginners with more than a 100 snippets. Now available on Gumroad.

You should check this one, It's a very convenient resource.

And that's it again for this week.
If you have any feedback, please send me a message through Twitter or on Mastodon. My DMs are open. And don’t forget, you can buy me a coffee. Links for that are in the shownotes.