Photo by Michael Long

The real question is whether or not they’ll keep listening.

With Xcode 13.2, “you can now use Swift Concurrency in applications that deploy to macOS 10.15, iOS 13, tvOS 13, and watchOS 6 or newer. This support includes async/await, actors, global actors, structured concurrency, and the task APIs.”

That’s a direct quote from the Xcode 13.2 Beta Release Notes.


SwiftUI, MVVM, and Protocol-Oriented-Programming are a perfect match… when done correctly. Find out how.

Photo by Teer XC on Unsplash

One of the most commonly used iOS application architectures is MVVM: Model View View-Model.

As you’re no doubt aware, MVVM was proposed to combat the tendency towards “Massive” View Controllers when doing classic MVC (Model View Controller) development in UIKit. …

This is one design pattern you definitely don’t want to use. Here’s why.

Photo Adam Nieścioruk on Unsplash.

Design patterns come and go, and one of the fads currently ascendant in the iOS/Swift programming world is the concept of Immutable Objects.

To quote Wikipedia:

In object-oriented and functional programming, an immutable object is an object whose state cannot be modified after it is created.

Pretty straightforward. Immutable objects…

Bring a Kotlin like functional pattern to your Swift toolkit

Photo by Patrick Ward on Unsplash

We’ve all written code where we need some function to create and return a configured object.

func makeButton(_ title: String?) -> UIButton {
let button = UIButton()
button.translatesAutoresizingMaskIntoConstraints = false
button.titleLabel?.text = title
button.titleLabel?.font = .headline
button.setTitleColor(.red, for: .normal)
return button

The pattern is the same. Create a variable…

Jetpack Compose by Google

SwiftUI is a powerful tool, but Android’s version is better. Here’s why.

If you’re an Apple developer then there’s no doubt you’ve seen and heard all about SwiftUI, Apple’s new declarative framework for creating apps that run on iOS, iPadOS, macOS, watchOS, and tvOS.

But what you may not know is that Android also has a brand new declarative framework for creating… iPad Pro Order Page

WWDC 21, iPadOS 15, the M1 chip, mismanaged expectations, and cancelled orders.

Apple announced iPadOS 15 during WWDC 21 and — to put it mildly — this wasn’t the iPadOS I was looking for.

Time to move along.

False expectations

To understand exactly what it was I was looking for, and why, we need to go back in time to Apple’s “Spring Loaded” event.

Photo by Adrià Tormo on Unsplash

A case for and against (mostly against) using classic DTO’s.

In a recent article, Using Data Transfer Objects (DTO) in Swift Code, Steven Curtis makes an argument for using DTO’s in Swift code as a standard practice. I disagree with that premise, and in this article I hope to demonstrate why.

Domain Models and Domain Transfer Objects

First, we need to define our terms. Here I’m…

Michael Long

I write about Apple, Swift, and technology. I’m a Lead iOS engineer at CRi Solutions, a leader in cutting edge mobile corporate and financial applications.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store