Tích hợp SwiftLint vào dự án Swift

Tram Ho

Giới thiệu

SwiftLint là công cụ thực thi mã nguồn tuân theo theo phong cách và quy tắc của ngôn ngữ Swift.

Nó sẽ tích hợp trong Source Kit framework của Apple để phân tích mã nguồn của dự án và đảm bảo cú pháp và phong cách của mã nguồn tuân theo các quy ước đã thống nhất trong dự án.

Các bước tích hợp SwiftLint

Để tích hợp SwiftLint vào dự án ta cần thực hiện các bước dưới đây:

  • Cài đặt SwiftLint
  • Tích hợp với XCode
  • Kiểm chứng quá trình tích hợp
  • Cấu hình các luật và quy tắc

Bước 1: Cài đặt SwiftLint

Ta có thể cài đặt SwiftLint bằng nhiều cách

Cài đặt qua Brew

brew install swiftlint

Cài đặt qua CocoaPods

Ta sẽ phải theo dòng dưới đây vào trong file Podfile
pod 'SwiftLint'
Nó sẽ cho phép ta tải về mã nguồn và các gói cần thiết của SwiftLint khi chạy lệnh pod install và khi chạy script ${PODS_ROOT}/SwiftLint/swiftlint trong build phase

Cài đặt qua Mint

$ mint install realm/SwiftLint

Cài đặt sử dụng pre-build package

Ta có thể tải và cài đặt pre-build package SwiftLint.pkg trên Github
Quá trình cài đặt có thể xuất hiện thông báo dưới đây

Ta cần cấp quyền thực thi cho file SwiftLint.pkg bằng cách Menu > System Preferences… > Security & Privacy > General sau đó click nút Open Anyway

Tích hợp với XCode

Ta sẽ cần tích hợp với Xcode để SwiftLint phân tích code và hiển thị các cảnh báo và lỗi trên IDE khi build code.
Ta sẽ thêm ““Run Script Phase” với nội dung như sau:

Kiểm chứng quá trình tích hợp

Để kiểm tra việc tích hợp đã thành công hay chưa?
Ta chỉ cần thực hiện build dự án Product > Build (⌘B), nếu ta nhìn thấy nhiều cảnh báo, hay lỗi liên quan tới cú pháp và style của code thì có nghĩa là quá trình tích hợp đã thành công

Cấu hình các luật

SwiftLint bundle bao gồm hơn 75 luật cơ bản và không phải lúc nào chúng ta cũng sử dụng các luật này.
Do đó ta sẽ cấu hình những luật sẽ sử dụng trong dự án thông qua file .swiftlint.yml

Ta thử cấu hình theo nội dung sau:

Với cấu hình trên ta sẽ nhận được cảnh báo khi một dòng code dài trên 200 ký tự, nhận được thông báo lỗi khi một dòng code dài trên 250 ký tự.
Không hiển thị cảnh báo khi force_castforce_unwrapping

Cấu hình luật bao gồm:

  • disabled_rules: danh sách các luật không sử dụng
  • opt_in_rules: danh sách các luật sử sụng
  • analyzer_rules: các luật cho bộ phân tích cú pháp

Ta có thể tham khảo file cấu hình dưới đây cho dự án của mình

Nguồn tham khảo

https://medium.com/flawless-app-stories/how-to-enforce-swift-style-and-conventions-into-the-project-using-swiftlint-7588b4ffba66

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo