Since Xcode 11, when Apple introduced Xcode Test Plans for simpler, more configurable test management and execution, both new and existing projects had to manually convert to using the new system or c…
Since SwiftUI came out, the extremely useful List control, for creating scrolling, single column, table-style views has been backed under the hood by UITableView. While this probably made it simpler a…
As a budding mobile developer back in early 2012 working on my first app, everything about iOS was new and different from the .NET world with which I was familiar. Living in the Denver area at the tim…
Since writing about dealing with continuous integration and Apple Silicon as well as retrying failed tests, I've been thinking some more about iOS and Xcode test automation and would like to share som…
So like probably more than a few people, we jumped in and bought two of the new Apple silicon M1 Mac Mini's to replace a couple aging Intel-based build servers at work. Our old servers were running Je…
As developers we never want our tests to fail, but there are often real world cases, especially with UI and integration tests against actual API (as opposed to a stable mock API or static data), where…
Since way back in iOS 2.0, the venerable Formatter class and its derivations such as DateFormatter and NumberFormatter have been the go-to for converting values to and from strings. Over the years App…
If you've been programming for any length of time, you'll likely run across apps or other projects that need major work and revisions to keep going. Maybe your company acquired another company with to…
WWDC 2021 is behind us and there are so many new and exciting features available to us as developers. One of those areas that has been getting much more love from Apple over the last few years is acce…
In my last post, I looked at handling diffable data sources with different types of object data, focusing primarily on the venerable UITableView for my examples. We looked at a simple if...else constr…
Since iOS 13, we've been able to revamp the way our table and collection views work by using diffable data source classes (UITableViewDiffableDataSource and UICollectionViewDiffableDataSource respecti…
One of the nice new features that came out with iOS 14 were some new options around the venerable UIDatePicker. There are now some choices other than just the slot machine-style wheels! Since iOS 2.0,…
If you've been doing any sort of app development with iconography since iOS 13 came out, there's a good chance you leveraged the original SF Symbols app. With around 1,600 scalable, vector-based symbo…
If you've been doing any kind of file uploads, downloads, previews, and such in past versions of Xcode and needed to deal with MIME types or file extensions, you've probably had to deal with Uniform T…
Prior to macOS 11 Big Sur, cleaning up development disk space by deleting old iOS or watchOS device support versions and Xcode caches was something of a pain, requiring command-line calls to directori…
As expected, there was so much goodness in WWDC 2020 last week. From exciting new software changes in Swift UI, collection views, and much more to the anticipated move away from Intel to Apple Silicon…
Just some quick and simple Swift stuff in this post around writing cleaner code. It's pretty common to see a pattern like the following in existing code when evaluating enumerations.
If you've ever distributed an app to the Apple App Store, you've probably generated an iOS Distribution certificate (either from Xcode or directly from the Apple Developer site. With Xcode 11, Apple r…
Last time we took a look at the very useful RelativeDateTimeFormatter to create localized strings describing date differences programmatically. In this post we'll look at a better way to handle presen…
Prior to iOS 13, converting a date from the Date object to a nicely formatted string such as "10 days ago" or "next month" required a lot of custom coding or maybe third-party libraries to manage the…
With iOS 13, Apple finally made some long overdue changes to support more effective customizations of the tab bars, and tool bars in your apps. The new UITabBarAppearance, UIBarAppearance, and related…