Tuist 1.7.1 - Edit all manifests, safer build settings API and SwiftUI projects
Tuist’s latest version, 1.7.1, has features developed by new contributors 👋🏻. Before joining me for an overview and other significant changes in this version, bear in mind that version 1.7.0 was published and we detected a critical bug due to a library incorrectly linked to the binary. After the community identified the bug, Pedro quickly fixed the issue and released 1.7.1. If you have issues with 1.7.0, you can read here how to fix it.
If you worked with many Project.swift files across different projects, chances are high that you got tired of
changing directories and running
tuist edit. Thanks to Julian’s
first contribution to Tuist, this is over. From now on,
tuist edit will find recursively all
files within your current directory and create an Xcode project with all of them.
Another addition in this release is related to defining project and targets settings. Before this version, one would define settings in the following way:
let baseSettings: [String: SettingValue] = ["ENABLE_BITCODE": "YES","SWIFT_COMPILATION_MODE": "wholemodule",]
This is not ideal. Having to repeat the strings manually and finding the possible values is not only tedious, but also
might lead to errors, since typos in strings are a common problem. Initially, I found myself using a few functions in
my project description helpers to make the settings both type safety and to reduce duplication
of the strings. I raised the topic in the Tuist Slack group and adding these functions to
ProjectDescription was a
welcome idea. This is exactly within the goals of Tuist: to make developers’ life easier and the task of generating
projects less error prone. From now on, the code above can be written like this:
let baseSettings = SettingsDictionary().bitcodeEnabled(true).swiftCompilationMode(.wholemodule)
Refer to the documentation to see the list of built in functions, and also to learn how you can add your own to your project description helpers. If you find yourself using a function that others can leverage as well, don’t hesitate to open a Pull Request adding them.
Thanks to the efforts of Marek and Daniel, Tuist now uses Apple’s Swift Argument Parser to parse the received commands instead of SPM’s parser (which will be eventually abandoned in favor of this new one). The refactor done to adopt the new parser required Tuist to have a better separation of concerns, so our code is even better now 💪.
Another contribution by Marek is the support for generating new SwiftUI-based project with the
If you would like to see all the changes in this version, check them out in the release page.