Swift by Sundell - Swift by Sundell Newsletter #21

View this email in your browser
The Swift by Sundell Newsletter
Issue #21 - May 2020

👋 Hi everyone

In the previous edition of this newsletter I shared some thoughts about potentially cancelling it, and asked for your feedback — and wow, did I get a lot of feedback!

I want to sincerely thank everyone who sent their thoughts and opinions my way, and while I replied to as many of you as I possibly could, it turned out to be impossible to reply to everyone. But, like always, I read every single piece of feedback that I got, and I really appreciate everyone who took the time to write to me.

It was really nice to see that, in general, your replies told a completely different story than my website analytics — it seems like this newsletter is in fact very appreciated by many people, despite its very low number of overall clicks.

Based on your feedback, and several other factors (some of which I wrote about in the previous edition), I’ve now decided what I’ll do with this newsletter going forward. I won’t cancel it, but it will change quite significantly, and it will be merged into a larger project that I’ve been working on for the past few months.

I’m not quite ready to reveal what that new project is though. My goal is to launch it along with next month’s newsletter, so on June 1st, but I’m still not 100% sure that I’ll be able to make it. It is, without a doubt, my most ambitious project yet.

So thanks again for reigniting my motivation in terms of working on this newsletter — I really appreciate it! But now, let’s get started with the recap of everything that was published on Swift by Sundell during the last month.

 

📖 Weekly articles

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

 

A guide to the SwiftUI layout system - Part 3

This article wraps up the SwiftUI layout system series with how we can customize the layout behaviors of our views using tools like layout priorities and alignment guides.

 

Published properties in Swift

Let’s explore the topic of published properties, by reimplementing Combine’s @Published property wrapper with support for earlier versions of Apple’s operating systems.

 

Mixing enums with other Swift types

Swift’s enums are really powerful, but they can often be made even more capable when mixed with other kinds of types — such as protocols and structs. Let’s take a look at a few examples of doing just that.

 

Querying collections in Swift

This article is about exploring how we can make use of the standard library’s built-in algorithms when performing various types of queries against collections of values.

 

✅ Basics

With the Basics series, my goal is to build up a comprehensive library of articles that cover most of the core aspects of Swift and iOS development. This article was published during the past month:

 

Protocols

What makes Swift a protocol-oriented language, and how can protocols be used to create abstractions and to enable code reuse? That’s what we’ll take a look at in this Basics article.

 

🎧 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:

 

70: “Risks and rewards”, with Christian Selig

Christian Selig, creator of the Apollo Reddit app, joined me to talk about building apps against third party APIs, and what sort of criteria an app needs to meet to be considered a “good platform citizen”. Also, REST vs GraphQL, architecting API clients, and more.

 

71: “Polymorphic interfaces”, with Dave Abrahams

Dave Abrahams joined me to talk about Protocol-Oriented Programming and how to make the most out of the Swift Standard Library. We also discussed Swift’s overall design, why it puts such a strong emphasis on value types and protocols, and how it’s been influenced by other languages.

 

⭐️ Swift tips

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

 

Handling keyUp and keyDown events on iOS 13.4 and later

How to observe and handle iOS 13.4’s new granular keyboard events.

 

Combining dynamic member lookup with key paths

How Swift’s @dynamicMemberLookup feature can be used in a completely type-safe manner.

 

Enums with custom raw types

It might initially seem like enums can only use built-in types (like Int and String) as their raw types, but they actually support using completely custom types as well.

 

📺 Videos

Swift Clips is a series of shorter YouTube videos covering Swift tips and techniques. This video was published during the past month:

 

Controllers in MVC

Let’s take a look at the role that controllers play within the MVC design pattern, and how we can avoid some of the most common issues when working with them — particularly around how we can break up Massive View Controllers into smaller building blocks.

 

😊 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 or .

Email Marketing Powered by Mailchimp

You Might Also Like

WP Weekly 191 - Essentials - Duplicate in Core, White Label Kadence, Studio for Mac

Monday, April 29, 2024

Read on Website WP Weekly 191 / Essentials It seems many essential features are being covered in-house, be it the upcoming duplicate posts/pages feature in the WordPress core or the launch of Studio

SRE Weekly Issue #422

Monday, April 29, 2024

View on sreweekly.com A message from our sponsor, FireHydrant: FireHydrant is now AI-powered for faster, smarter incidents! Power up your incidents with auto-generated real-time summaries,

Quick question

Sunday, April 28, 2024

I want to learn how I can better serve you ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌

Kotlin Weekly #404 (NOT FOUND)

Sunday, April 28, 2024

ISSUE #404 28st of April 2024 Announcements Kotlin Multiplatform State of the Art Survey 2024 Help to shape and understand the Kotlin Multiplatform Ecosystem! It takes 4 minutes to fill this survey.

📲 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 ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌