Win a ticket for the ARCtic Conference. Join here for free.
Give your simulator superpowers

RocketSim: An Essential Developer Tool
as recommended by Apple

Issue 203
Jan 23, 2024

Say hi to a new design!

As you might notice, this newsletter has a fresh design. I've updated the spacing and fonts, and I'm also revisiting the content.

First, I'll limit the number of curated articles to five weekly. This forces me to really pick the best five only, making the selection more valuable to you.

My goal is to make you a better developer every week. I want to keep you current and take away the hard work.

A missing piece in this story is updates on Swift Evolution. Which proposal is in review? Which proposals are coming to Swift 5.10?

Now, I won't list all open proposals in every weekly newsletter. I'm aiming to create a "what has changed this week" overview, so you'll be notified about any updates.

This edition doesn't contain it yet, as I'd love to get your thoughts on this first. The idea is to list state changes for the following process steps:
- Accepted
- Active Review
- Rejected
- Withdrawn
- Implemented

In other words: if a proposal went from awaiting review into active review, you would see:

ACTIVE REVIEW
[SE-0417] Task Executor Preference

If the week after the state didn't change, SE-0417 wouldn't be listed again in this newsletter.

What do you think? If you feel strongly about this, I'd love to get a reply to this email!

Enjoy this week's SwiftLee Weekly!

THIS WEEK'S BLOG POST

Handling bounces in your scrollable views is a common scenario to deal with. Besides knowing how to disable bouncing, it's essential to understand why a ScrollView sometimes becomes bouncable. It's crucial UX, which I'll explain in this week's article.

SPONSORED

In just a few lines of Swift, you can go from prototype to production-ready Video Calling. Practice your skills and build a production-ready, fully functional messaging app in SwiftUI. Try out the tutorial for free!

MONTHLY GIVEAWAY

This month’s giveaway allows you to win a ticket for the AppDevCon conference in Amsterdam! It’s one of my favorite conferences in the Netherlands. With Daniel Steinberg as a confirmed speaker, joined by speakers from American Express & Adobe, it is a conference you want to visit.

CURATED FROM THE COMMUNITY

You’re likely familiar with access modifiers like public, private, and internal, but do you also know the package modifier? This new modifier in Swift 5.9 and Marco Eidinger tells you all about it.

Your app icon might be the first piece a potential user sees in the App Store. Having a great icon is crucial, and Flora Damiano is here to help.

“There are the occasional exceptions where my brain, for whatever reason, can’t seem to get a hold of the essence of the API design.” This is how Ben Scheirman started this article, and it’s exactly why I decided to share this post. Alignment guides in SwiftUI are powerful yet hard to fully understand.

When you think about case insensitive string comparison, you might think: “I’ll just use lowercased() and I’m done”. I admit I’ve thought the same, but Natalia Panferova proved me wrong.

It’s great to welcome a new blogger! Scott Smith wrote his first article, and it’s a great topic: how to handle application launch states in SwiftUI. I like his approach, and I’ve been using something similar.

FEATURED SWIFTLEE JOBS

Join the SwiftLee Talent Collective if you're hiring mobile engineers or are open to exciting opportunities.

QUESTION OF THE WEEK

This week's question comes from Andrew Lord:

"Being the mobile lead of a small team, there are a million different things I could focus on and not enough time to ever do everything. Working out what is best to focus on can be a really big challenge. Balancing this with the fact that iOS constantly evolves makes it harder!"

I’m currently leading a team of five iOS engineers and fully recognize Andrew’s challenge. There’s only so much you can do, but much more you want to do.

My preferred way of leading the team is by enabling. I don’t want to be the one making the decisions; I want to facilitate the team to make the decisions. My impact is much more significant if I can enable the team to be proactive and independent. 

The same applies to creating focus and prioritization. I sometimes call myself the sh*t umbrella for the team: trying to take away any incoming requests that could distract the team from focusing on feature development. Doing so makes the team efficient, allowing them to retain focus on their current context without distractions. 

These techniques made our team more productive, allowing us to achieve more within the same time. Finally, prioritization is hard! We try to make things measurable: what is the return on investment? By quantifying initiatives, you can objectively compare tasks and make the best guess possible.

Want to have your question answered next week? Ask your question on LinkedIn or Twitter.