SwiftLint: Writing good quality code in Swift
SwiftLint
is a programming guide tool which can automatically check the code quality with certain rules such as https://github.com/github/swift-style-guide. The article will cover:
- How to install and configure
SwiftLint
- How to use
SwiftLint
- Customise SwiftLint rules
SwiftLint Installation
There are two ways of installations that we can either install SwiftLint
globally or per project.
Install SwiftLint globally
// install brew, if you have installed brew already, skip this step
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
// install swiftlint
brew install swiftlint
The output:
Install SwiftLint per project
If the SwiftLint was installed globally, open the Xcode project, select target
and go to Build Phases
:
Then click the + button as in the above screenshot to add a new Run Script Phase:
Add the following script:
if which swiftlint >/dev/null; then
swiftlint
else
echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi
Here if you installed the SwiftLint via cocoapod, replace the above script with:
"${PODS_ROOT}/SwiftLint/swiftlint"
How to use SwiftLint
If you have installed and integrated the SwiftLint to your project already, in Xcode, simply command+b
:
That is it! 🥳
There are 999+ warnings and 999+ errors. 😂😂😂
The reason might be the some of the SwiftLint rules might not suitable for your project, so you can customize the rules yourself.
Integrate with Git
With the support from git, we can use SwiftLint to check our submitted code every time when we are doing a git commit
, and here is how:
Find the file pre-commit
under the root directory of our project, /.git/hook
and replace it with the following:
By doing above, any violation of the SwiftLint rules can’t be committed until we fix it.
Customize SwiftLint rules
Go to the project root directory, create a new file named .swiftlint.yml. Be care this is a hidden file you might not be able to find it in your Finder. Here is an example:
disabled_rules: rules you don’t want to apply in your project. For more rule names and meanings, have a look at here: https://realm.github.io/SwiftLint/rule-directory.html
opt_in_rules: rules you want to apply in your project.
included: directories that you want to include.
excluded: directories that you don’t want to apply SwiftLint rules, higher priority than included
line_length: how many characters are allowed in one line. >200 gives error warning, >250 gives out error.
Custom rules
Besides above rules, we can also add some custom rules in the .swiftlint.yml, for example, only allows one space after the ,:
custom_rules:
comma_space_rule:
message: "Expected only one space after ',"
severity: warning
regex: ",[ ]{2,}"
After the customization, finally we get rid of 999+ warnings and 999+ errors.
Warnings
Please always remember to keep a copy of your files or backup before running:
Swiftlint autocorrect
.
Conclusion
We can either install the SwiftLint by project or globally. By the help of git, it is easily to check each of the commit to ensure the quality of the code, and of course we can customised the rules to fit in our project.
Reference
Originally published at https://needone.app on October 16, 2020.