Consider the following situation: A team is asked by their Product Manager to implement features X, Y, and Z into an existing system. The team then organizes itself and executes the project. After a certain amount of time, they delivered exactly what was asked of them. But then, one of these things happens (choose at […]
In iOS 18, UIKit automatically tracks when you access a trait, removing the need to manually register for trait change notifications. Automatic Trait Tracking (iOS 18) In iOS 18, UIKit supports automatic trait tracking in layout update methods in views and view controllers. See the Apple documentation for the full list of supported methods. It […]
The UIKit combination of UICollectionView and the UICollectionViewFlowLayout gives a lot of flexibility and control to build grid-like flow layouts. How do we do that with SwiftUI? Self-Sizing Flow Layouts The UICollectionViewFlowLayout documentation describes a flow layout as laying out a collection of items using a fixed distance in one direction and a scrollable distance […]
In iOS 18, Apple added an optional isEnabled parameter to many of the accessibility modifiers. Conditional Accessibility Modifiers (iOS 18) Apple added the isEnabled parameter to .accessibilityLabel, .accessibilityInputLabels, .accessibilityValue, .accessibilityHint and many other accessibility modifiers. This has the effect of only applying the modifier when the isEnabled parameter is true. This is useful in situatons […]
Working at a large company like Apple or Google is such a common goal in the tech industry that there’s even a market for selling courses and books designed to help people achieve this goal. But one thing that I’ve learned in my career is that working at such companies is not for everyone. The […]
Two new sizes as the Pro phones grow in size, and weight, and get even smaller bezels. Here’s what you need to know about the iPhone 16. The New Models in a Nutshell As in earlier years, Apple has discontinued the iPhone 15 Pro models and added features to the base iPhone 16 models. Apple […]
SwiftData gained support for predicate expression in iOS 18. How does it compare to the expressions we can use with Core Data? Core Data Queries with NSExpression When Apple launched SwiftData with iOS 17 there were some gaps compared to Core Data. A big one for me was the ability to create an aggregate query […]
Throughout my life, I have met several people who struggle to learn a new language, with some of them being unable to communicate at a basic level despite having studied for several years. I believe that learning a language is not a matter of talent, but that of dedication and following a good process. In […]
Apple added the Previewable macro to iOS 18. This generates the boilerplate wrapper view you need to preview a view with State bindings. What’s The Problem? I have mixed feelings about SwiftUI previews. When they work they can make creating a view an interactive experience. They can also be slow, break with confusing errors, and […]
Xcode 16 added a property to asset catalogs to opt-out of asset symbol generation. This is especially useful for Swift Packages which had no way to disable the project settings they inherited. Asset Catalog Symbol Generation – A Recap Xcode 15 introduced a feature to create Swift, and Objective-C, symbols for colors and images in […]