How to format your Android project with ktlint

date
Jun 15, 2023
slug
how-to-format-your-android-project-with-ktlint
status
Published
tags
Programming
summary
如何使用 ktlint 快速排版你的程式碼
type
Post
現在寫程式的時候,開發體驗也是很重要的事情。前段時間我寫了滿長時間的 Flutter,在使用 Android Studio 開發的時候覺得他的 format 功能滿有邏輯的,但寫 Android 的時候就覺得 Android Studio 的 format 總是跟預想的不一樣不太好用。

使用 ktlint

如果你是用 Kotlin 寫 Android,那推薦一下滿多人使用的 ktlint 這個 linter(我後來才發現他是 Pinterest 的開源專案)。
可以參考這裡安裝 ktlint,不過我是 Mac 使用者我可以使用 Homebrew:
安裝好之後,可以直接在你的專案目錄執行 ktlint 來提示你的 coding style 問題。
如果要針對 Android 專案做 format,可以加上 -a 或是 --android 的 tag(不過官方說可能會把 -a deprecate 掉,使用時可能要再注意一下)。
如果你想要他自動 format 幫你修正這些 lint,可以加上 -F 的 tag:

使用 ktlint 的 Android Studio Plugin

如果有在使用 Android Studio,也可以使用這個非官方的 Ktlint plugin
可以把 Android Mode (—-android) 跟 Run ktlint --format on save 勾起來,就可以按 Command + S 儲存後自動排版了。
notion image

使用 ktlint-gradle 在執行時自動排版

後來我發現還可以使用 ktlint-gradle 這個 Library,在 Run App 的時候自動排版好。這樣就不用每次到 CLI 執行 ktlint -a -F 了,不過專案內需要做一些小設定。
首先,先在 app 資料夾的 build.gradlebuild.gradle.kts 加上這個 Plugin
  • Groovy (build.gradle)
    • Kotlin (build.gradle.kts)
       
      按下 Sync Project 後,就可以在下面開始對 ktlint 做一些設定了
      • Groovy (build.gradle)
        • Kotlin (build.gradle.kts)
          最後在 appbuild.gradlebuild.gradle.kt 加上:
          這樣 Run App 的時候就會自動排版好啦!

          Reference


          © Ricky 2023 - 2024