Test Plans are now Default for New Projects with Xcode 14.3

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 create new test plans from scratch. Test plans, if you are not familiar, allow one file to control one or more test configurationsContinue reading “Test Plans are now Default for New Projects with Xcode 14.3”

UI Test Changes to SwiftUI List and Stepper in iOS 16

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 and faster to release the feature, it also had the side effect of tying SwiftUI implementation to a lot of legacy code. With iOS 16,Continue reading “UI Test Changes to SwiftUI List and Stepper in iOS 16”

We’ll Miss You, 360 iDev

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 time, I stumbled upon this local conference named 360|iDev. What I found there was an awesome experience withContinue reading “We’ll Miss You, 360 iDev”

Improving Your User Interface Tests in Xcode and iOS

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 some useful tips and thoughts on that front. Hopefully these pointers will help you out with something with which you might be dealingContinue reading “Improving Your User Interface Tests in Xcode and iOS”

Working Around Xcode and Continuous Integration Issues on Apple Silicon

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 Jenkins with a pretty standard configuration to build and test our iOS apps. The initial transition was prettyContinue reading “Working Around Xcode and Continuous Integration Issues on Apple Silicon”

Retrying Failed Tests With Xcode 13 and Continuous Integration

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 tests can and will occasionally fail. For example, API’s may go down, dependent data may change, or the XcodeContinue reading “Retrying Failed Tests With Xcode 13 and Continuous Integration”

Creating Custom Parseable Format Styles in iOS 15

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 Apple has added other cool formatters such as the ByteCountFormatter, MeasurementFormatter, RelativeDateTimeFormatter, and ListFormatter. Now, as discussed in What’s New in Foundation atContinue reading “Creating Custom Parseable Format Styles in iOS 15”

Refactor or Rewrite? Tackling Legacy Apps

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 tons of legacy code. Perhaps you just started a new gig with lots of skeletons in the proverbial closet. Or you’re anContinue reading “Refactor or Rewrite? Tackling Legacy Apps”

Accessibility Gets an Upgrade in Xcode 13 Storyboards

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 accessibility. Apple has been making it simpler for developers to test key tools like Dynamic Type, DarkContinue reading “Accessibility Gets an Upgrade in Xcode 13 Storyboards”

Registering Collection View Cells in iOS 14

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 construct to swap between cell types based on the type of the item from the data source and related snapshot. While this methodContinue reading “Registering Collection View Cells in iOS 14”