Author

Avatar image

Matt Neuburg

Senior Mobile Engineer

Matt has been writing and updating his well-known iOS programming books every year since 2010, and is widely considered a foremost educator about Swift, Xcode, and Cocoa. He has also written the definitive guide to AppleScript, as well as some other programming languages. He makes tech topics not only readable but enjoyable. Matt is also a former Classics professor. This means he can read Ancient Greek, which rarely comes up in iOS programming, but is really cool.

Published Posts

Tips On Small-Screen Development

Most of the development team here at BiTE are very well supplied with screen real estate; in fact, I can’t believe how wide and how numerous their monitors are. Very often, someone shares their screen with me, and it’s so insanely wide that it’s almost impossible to see it on my screen, because it has …

Tips On Small-Screen Development Read More »

laptop on desk with phone

Swift 5.5: Asynchronous Looping With Async/Await

In an earlier article, I introduced the Swift 5.5 async/await syntax that lies at the heart of Swift’s new structured concurrency. To do so, I demonstrated how to replace a common use case of Grand Central Dispatch (GCD) — switching from the main thread to a background thread and then back to the main thread …

Swift 5.5: Asynchronous Looping With Async/Await Read More »


Swift 5.5: Replacing GCD With Async/Await

Multithreading! The mere word sends shivers up one’s spine. And if it doesn’t, it should. Main thread and background threads. Code that runs asynchronously. Code that can run simultaneously with other code. Code that can run simultaneously with itself. Code that can share data across threads — possibly with disastrous consequences. Concurrency. Multithreaded code is …

Swift 5.5: Replacing GCD With Async/Await Read More »


Understanding Git Merge

Carrying on from my earlier article about some ways in which Git is commonly misunderstood — and how I think one should understand Git — I’d like to dive a bit deeper into one of the most important things Git knows how to do: merging. If Git is often misunderstood, merging is one of the …

Understanding Git Merge Read More »


Of Git and GitHub, Master and Main

Following on from my earlier blog post on understanding (and misunderstanding) Git, let’s dive deeper into some individual Git topics. Today’s article is about the branch names master and main. It’s the story of a change in the policies, at GitHub and within Git itself, about what the default initial branch name should be. This …

Of Git and GitHub, Master and Main Read More »


Taking Control of Rotation Animations in iOS

We all love to have animation in our app’s interface. But sometimes writing even the simplest animation can be rather elusive. Rotation is a case in point. As you probably know, the way to rotate a view (or a layer) is to change its transform, applying a rotation transform to it. But certain rotations are …

Taking Control of Rotation Animations in iOS Read More »


Picturing Git: Conceptions and Misconceptions

Usually, I write on this blog about matters directly related to developing for iOS on a Mac. I typically talk about Xcode, the Swift language, and of course iOS itself (in particular, aspects of Cocoa Touch and related frameworks). Today I’d like to switch gears and talk about another development-related topic that’s near and dear …

Picturing Git: Conceptions and Misconceptions Read More »


Little Swift Tricks: Boxing Multiple Types

Here’s a little Swift language trick I sometimes use — more often than you might suppose, actually. As I’m sure you know, Swift is very strict about the types of its objects. You have to declare clearly what type a reference is, and from then on, you have to stick to that. That’s one of …

Little Swift Tricks: Boxing Multiple Types Read More »