Swiftlint ile Kod Kalitesini Arttırma
Swiftlint, Realm tarafından ortak swift stilini ve kurallarını uygulamak için geliştirlen 3. Parti bir araçtır. Swiftlint kod kalitesini arttırmak, daha temiz kod yazmak ve takımlar çalışmalarında verimliliği arttırmak için kullanılmaktadır.
Swiftlint yazdığımız kodu derlerken geliştiricinin belirlediği kuralları dikkate alarak, kurallara uymayan durumlarda hata veya uyarı’yı geliştiriciye bildirir.
Swiftlint kullanımının diğer bir güzelliği ise herkesin kendine has şekilde yazım stil’i yerine ortak bir stilde yazılmasını sağlaması, bu sayede takım çalışmalarında okunabilirliği arttırmasıdır.
Şimdi Swiftlint’i projemizde uygulamaya geçelim
İnternetten indirdiğim sample bir proje üzerinden örnekler ile ilerleyeceğiz.
Kurulum
Bilgisayarımızda terminali açtıktan sonra aşağıdaki kurulumu yapıyoruz
brew install swiftlint
kurulumu tamamladıktan sonra proje ismine tıklayıp “Build Phases” sekmesinde “+” butonuna basarak “New Run Script Phase” diyoruz ve aşağıdaki script’i ekliyoruz
export PATH=”$PATH:/opt/homebrew/bin”
if which swiftlint > /dev/null; then
swiftlint
else
echo “warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi
Yazım hatalarını compile’dan önce görmek için scriptimizi “Compile Sources” üzerine sürüklüyoruz.
Konfigürasyon Ayarları
Öncelikle terminal’i açıp proje dizinine gidiyoruz ve ardından,
Proje dizinindeyken “touch .swiftlint.yml” komutunu çalıştırarak swiftlink kural dosyamızı oluşturuyoruz.
Sonrasında “open .swiftlint.yml -a Xcode” komutunu çalıştırarak swiftlint kural dosyamızı xcode üzerinden açıyoruz.
Şimdi yazdığım örnek kuralı inceleyelim.
disabled_rules: Kullanılmasını istemediğimiz kuralları belirtiyoruz
opt_in_rules: Uygulanması istenen kurallar
included: Dahil edilen dizin
excluded: Düzenlenmesini istemediğimiz dosyaları belirtiyoruz
line_length: tek satırdaki içerebilecek max karakter kuralları
Bu işlemlerin ardından build alarak hatalarımızı görebiliriz.
Projenize eklemek istediğiniz daha fazla Swiflint kuralına aşağıda verdiğim adresten ulaşabilirsiniz.