Swift by Sundell - Swift by Sundell Newsletter #27

View this email in your browser
The Swift by Sundell Newsletter
Issue #27 - November 2020

👋 Hi everyone

Swift by Sundell now includes over 400 freely available articles (not counting any podcast episodes or videos), which I’m incredibly proud of, but it has also resulted in a quite significant (although completely self-created) problem — it’s become increasingly difficult to get a good overview of everything that the site has to offer on a given topic.

Sure, there are category pages, a search feature, tags, and so on, but those all still require each user to actively search, browse and discover each topic on their own. So, over the past few months, I’ve been experimenting with various ways to make that process easier, and I eventually realized that the keyword that I was looking for was right there in the previous sentence — discover.

The result of all of those experiments is Swift by Sundell Discover, a brand new feature that lets you easily explore all of the articles, tips, podcast episodes and videos that I’ve published on a given topic. I picked SwiftUI as the first topic, and I’m aiming to publish another set of topics over the next few weeks.

I hope you’ll find this new feature useful, and that you’ll enjoy the rest of this month’s content, which includes 8 new articles and 2 new podcast episodes. Let’s dive in!

 

📖 Weekly articles

For 194 weeks, I’ve been publishing a new article about Swift every Sunday. These articles were added during the past month:

 

Testing networking logic in Swift

How networking code can be tested without needing to introduce complex abstractions within our production code, by using system-provided APIs for overriding and mocking various kinds of requests.

 

Handling loading states within SwiftUI views

A few different patterns and approaches that can be used to handle and render asynchronous loading states within SwiftUI-based views.

 

The power of extensions in Swift

An overview of the sort of patterns and techniques that Swift’s extensions enable us to adopt, and how extensions can turn out to be one of the most powerful features that the language has to offer.

 

Connecting and merging Combine publishers in Swift

How Combine’s operators for connecting and merging publishers can be used to solve real-world problems, such as nested network calls, handling multiple input sources, and more.

 

🎧 Podcast episodes

The Swift by Sundell podcast is a bi-weekly show featuring special guests from all around the Swift community. You can find it in your podcast player of choice, for example Apple Podcasts or Overcast. These episodes were published during the past month:

 

83: “Adventure into widgets”, with Simon Støvring

Simon Støvring, the developer behind several powerful iOS productivity apps, including Scriptable, joined me on this episode that’s all about the new home screen widgets introduced in iOS 14. Topics include how to create and update dynamic widgets, managing and sharing data between an app and its widgets, and much more.

 

84: “Key paths, functions and closures”, with Vincent Pradeilles

Vincent Pradeilles joined me to discuss various ways to use Swift language features like key paths and closures, how they relate to patterns typically used within functional programming, and when and how to adopt such patterns.

 

⭐️ Swift tips

I love to share shorter tips, tricks and techniques with the community. You can also find all of the tips that I’ve ever posted as mini-articles right here. These are the tips I shared during the past month:

 

Importing interactive UIKit views into SwiftUI

Importing static UIKit views into SwiftUI is often quite straightforward, but it can be somewhat trickier to bridge patterns like delegation and target/action with the declarative world of SwiftUI. So let’s take a look at how to do just that.

 

Lazy property observers

Property observers can now be attached to lazy properties, which makes it possible for us to automatically observe when a new value was assigned to a given property, even if its value is lazily loaded when first accessed.

 

Publishing constant values using Combine

Although Combine is definitely the most useful when it comes to building highly dynamic data pipelines for publishing streams of values over time, sometimes we might also want to use it to emit constant values as well. That’s what this article is all about.

 

⁉️ Questions & Answers

Answers to common questions about Swift development, or about my work in general. I answered this question during the past month:

 

When does the order of SwiftUI modifiers matter, and why?

A look at what goes on under the hood when we apply a modifier to a SwiftUI view, and why the order of certain modifiers can have a quite substantial impact on the rendered result of a given view.

 

😊 Until next time

That’s it for this edition! I hope you enjoyed this newsletter. I always love to hear your feedback, so feel free to either reply to this email, or contact me on Twitter @johnsundell. I read every single piece of feedback that I get, and I try to reply to as many people as I possibly can.

Thanks for reading! 🚀

- John

Copyright Š 2020 John Sundell, All rights reserved.
You are receiving this email because you signed up for the Swift by Sundell Newsletter at swiftbysundell.com/newsletter.

Our mailing address is:
John Sundell
Wadowicka 6B/4 SKR 002 A4
KrakĂłw 30-415
Poland

Add us to your address book


Want to change how you receive these emails?
You can update your preferences or unsubscribe from this list.

Email Marketing Powered by Mailchimp

Older messages

Swift by Sundell Newsletter #26

Thursday, October 1, 2020

Your summary of everything new on Swift by Sundell - all articles, podcast episodes and tips published during September 2020. View this email in your browser Issue #26 - October 2020 👋 Hi everyone Even

Swift by Sundell Newsletter #25

Friday, September 4, 2020

Your summary of everything new on Swift by Sundell - all articles, podcast episodes, answers and tips published during August 2020. View this email in your browser Issue #25 - September 2020 👋 Hi

Swift by Sundell Newsletter #24

Saturday, August 1, 2020

Your summary of everything new on Swift by Sundell - all articles, podcast episodes, answers and tips published during July 2020. View this email in your browser Issue #24 - August 2020 👋 Hi everyone

Swift by Sundell Newsletter #23

Wednesday, July 1, 2020

Your summary of everything new on Swift by Sundell - all articles, podcast episodes and tips published during June 2020. View this email in your browser Issue #23 - July 2020 👋 Hi everyone Wow, what a

Swift by Sundell Newsletter #22

Monday, June 1, 2020

Your summary of everything new on Swift by Sundell - all articles, podcast episodes, tips and videos published during May 2020. View this email in your browser Issue #22 - June 2020 👋 Hi everyone With

You Might Also Like

📲 Why Is It Called Bluetooth? — Check Out This AI Text to Song Generator

Sunday, April 28, 2024

Also: What to Know About Emulating Games on iPhone, and More! How-To Geek Logo April 28, 2024 📩 Get expert reviews, the hottest deals, how-to's, breaking news, and more delivered directly to your

Daily Coding Problem: Problem #1425 [Easy]

Sunday, April 28, 2024

Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Microsoft. Suppose an arithmetic expression is given as a binary tree. Each leaf is an

PD#571 Software Design Principles I Learned the Hard Way

Sunday, April 28, 2024

If there's two sources of truth, one is probably wrong. And yes, please repeat yourself. ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌

When Procrastination is Productive & Ghost integrating with ActivityPub

Sunday, April 28, 2024

Automattic, Texts, and Beeper join forces to build world's best inbox, Reflect launches its iOS app, how to start small rituals, and a lot more in this week's issue of Creativerly. Creativerly

C#503 Building pipelines with System.Threading.Channels

Sunday, April 28, 2024

Concurrent programming challenges can be effectively addressed using channels ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌

RD#453 Get your codebase ready for React 19

Sunday, April 28, 2024

Is your app ready for what's coming up in React 19's release ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌

☁️ Azure Weekly #464 - 28th April 2024

Sunday, April 28, 2024

Azure Weekly Newsletter Issue #464 powered by endjin Welcome to issue 464 of the Azure Weekly Newsletter. In AI we have a good mix of high-level and deep-dive technical articles. Next-Gen Customer

Tesla profits tumble, Fisker flatlines, and California cities battle for control of AVs

Sunday, April 28, 2024

Plus, an up-close look at the all-electric Mercedes G-Wagen and more View this email online in your browser By Kirsten Korosec Sunday, April 28, 2024 Welcome back to TechCrunch Mobility — your central

Sunday Digest | Featuring 'The Countries With the Most Air Pollution in 2023' 📊

Sunday, April 28, 2024

Every visualization published this week, in one place. Visual Capitalist Sunday Digest logo Apr 28, 2024 | View Online | Subscribe | VC+ The Best of This Week's Visuals Presented by Voronoi: The

Android Weekly #620

Sunday, April 28, 2024

View in web browser 620 April 28th, 2024 Articles & Tutorials Sponsored How DoorDash Manages Mobile Releases Ever wonder how the big names in mobile engineering manage the human side of their app