Open Source Updates for Swift Projects - Issue #9
Welcome to the 9th issue of the bi-weekly newsletter “Open Source Updates for Swift Projects”. Learn about new projects and innovations of popular projects that help you as a Swift / iOS developer.
I’d love to receive your input and suggestions to include in this newsletter. Please share them with me via email.
Better SwiftUI navigation APIs with Point-Free
I am impressed by the code examples I have seen, and I will try out the library myself in one of my next personal projects.
Navigation in SwiftUI can be complex, but it doesn't have to be that way. We are releasing a
new version of our SwiftUI Navigation library that makes it easier to use NavigationStack,
alerts, confirmation dialogs, and even fixes a few bugs in SwiftUI.
Enforce code style & conventions with SwiftLint
The "best" linting tool for Swift projects released a significant update with 0.50.0. You can find the full changelog through the link below.
My personal key takeaways:
Faster lining with higher accuracy because SwiftSyntax libraries have been updated
Swift Package Build Tool Plugin is available with support for Swift Packages and Xcode projects.
SwiftLint now requires Swift 5.7 (= Xcode 14) or higher to build.
Developers using the SwiftLintFramework module programmatically might be impacted by breaking changes.
SwiftPM plugin in SwiftFormat
In the very first issue of this newsletter, I announced that I have an open-source implementation of a Swift Package Command Plugin that uses Nick Lockwood's SwiftFormat project.
I am happy to share that the latest version of SwiftFormat contains the very same Swift Package Command Plugin implementation because I contributed to it.
There is also a new docComments rule (to convert between regular and documentation comments) and several bug fixes.
Install and run Swift CLI tools with Mint
If you need to install and run executable Swift packages, for example, in your CI/CD pipeline, then I recommend Mint.
✅ easily run a specific version of a package
✅ link a package globally
✅ builds are cached by version
✅ use different versions of a package side by side
✅ easily run the latest version of a package
✅ distribute your own packages without recipes and formulas
✅ specify a list of versioned packages in a Mintfile for easy use
Especially if you want to use the latest SwiftLint version, then you will appreciate the updates and bug fixes in Mint's latest version 0.17.3
3D modeling in Swift with ShapeScript
Nick Lookwood is known for his SwiftFormat, but he also invests quite some time in providing text-based 3D modeling possible in Swift.
He updated several updates for his three related open-source projects.
ShapeScript is implemented on top of Euclid, a cross-platform 3D modeling library written in Swift. Anything you can construct using ShapeScript can be replicated programmatically in Swift using Euclid.