Newsletter: April 2020
Here’s a quick summary of all Swift by Sundell content from the past month — 14 different articles, videos and podcast episodes. Feel free to share your favorites to help support the site, if you’d like to 🙂.
For 163 weeks, I’ve been publishing a new article about Swift every Sunday. These articles were added during the past month:
This article covers a few tips and techniques that can help us make our types more well-defined, by splitting them up once their responsibilities have started to grow beyond the ideal scope of a single type.
Let’s explore the topic of UI modularization in the context of SwiftUI, by taking a look at a few different techniques that can be useful in order to avoid trading Massive View Controllers for Massive Views.
A look at how even the smallest utility functions can have quite a big impact on the way we write code on a day-to-day basis, by making common tasks easier and preferred patterns simpler.
In my new three-part article series, we’ll explore the SwiftUI layout system by building a full-screen view from scratch. Along the way, we’ll use many different techniques and APIs, which lets us look into the underlying rules of the SwiftUI layout system.
In part two of my new series about SwiftUI’s layout system, we’ll take a look at a couple of more advanced layout techniques, such as how we can align views with dynamic dimensions and how to read a view’s geometry in order to build custom layouts.
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. These articles were published during the past month:
A look at the standard library’s Result type, what kind of situations that it might be useful in, and tips and tricks that can be good to keep in mind when working with it.
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:
Leah Culver, co-founder and CTO of the Breaker podcast app, joined me to talk about her journey from iOS developer to startup founder, building MVPs and prototypes, iterating on and maintaining a code base, and growing a development team. This episode contains lots of tips and learnings about everything from app architecture to hiring.
Holly Borla and Grace Kendall, both software engineers at Apple, joined me to go on a deep dive into the Swift Playgrounds app and Swift 5.2’s new diagnostics engine. Also, how Swift Playgrounds was ported to the Mac using Catalyst, and Swift’s role in education and as a language for beginners.
I love to share shorter tips, tricks and techniques with the community. These are the tips that I shared during the past month:
Using the standard library to generate random numbers and pick random collection elements, and a few tips that can be good to keep in mind when doing that.
How Swift’s memberwise initializers work, and the type of contexts in which those initializers can be used.
Implementing a property wrapper to enable certain properties to be overridden only in debug mode.
Giving the compiler a helping hand by adding type annotations to closure-based generic code.
A really convenient wrapper that enables either UIKit or AppKit views to be directly imported into a SwiftUI hierarchy.
Swift Clips is a brand new series of shorter YouTube videos covering Swift tips and techniques. These videos were published during the past month:
In this video, we’ll take a look at three different ways to manage the URLs and server endpoints that a Swift app is communicating with, and the sort of pros and cons that come with each approach.
I hope you enjoyed this summary, and all of the content that I published during March. Like always, I’d love to hear your feedback — so feel free to either email me, 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! 🚀