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.

Happy Thanksgiving!

Better SwiftUI navigation APIs with Point-Free

Point-Free released a significant update to their SwiftUINavigationLibrary. All the details can be found in their extensive blog post linked below.

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.

You can

  • ✅ 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 an open-source, text-based 3D modeling tool for Mac and iOS.

Instead of haphazardly dragging polygons and vertices around in a GUI, ShapeScript lets you define your models precisely using code. No artistic skills are required - ShapeScript does all the drawing for you.

The ShapeScript app includes a parser for a simple language (also called “ShapeScript”). ShapeScript (the language) is a cross between a markup language and a programming language.

You don’t need to be a programmer to use ShapeScript. If you have ever worked with any kind of structured text like JSON or HTML then it should come naturally. But if you do have experience with programming, then you can apply those skills to create even more complex models by using loops, functions and variables to procedurally generate geometry.

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.