With the release of Swift 5.3, Swift Package Manager took a big step towards being able to replace legacy dependency managers like Carthage and CocoaPods. As detailed in WWDC Session 10169 Swift Packages now support the bundling of resource files within a module. What's more, as this is a new compiler feature we don't have to wait to drop pre-iOS 14 support to take advantage of it - we can begin using it as soon as we start building our apps with Xcode 12. However, at first glance it may appear that Apple has neglected to add support for module resources in Objective-C package targets, preventing us from adding SPM support to older framework projects. Fortunately this is not the case, and resource bundles are fully supported for Objective-C targets. Read more…
With Xcode 7, Apple introduced UI Testing to make it easy to add black-box user interface tests for our apps. While these allow us to automate much of our UI testing, the black-box nature of this environment means that we cannot test the underlying code in our applications while running these kinds of tests. If we want to do that, we need to rely on good old-fashioned unit tests. Read more…