ChatGPTを使って、AndroidアプリのGradleスクリプトをGroovyからKotlin スクリプト(KTS)に変換する
AndroidのGradleスクリプトは、Groovyで記述されていますが、最近ではKotlinで記述することが推奨されています。
しかし、既存のGroovyで書かれたスクリプトをKotlinに変換するのは、かなり面倒な作業です。
少なくとも、2023/10/01現時点では、公式のマイグレーションツールは提供されていません。
そんな作業も、ChatGPTを利用すれば簡単に行うことができます。
今回やったこと
私が個人開発しているアプリのスクリプトを、ChatGPTを使ってKotlinに変換しました。
実際の会話ログはリンク先を参照してください。
build.gradleをbuild.gradle.ktsに変換する
あなたは優秀なAndroidエンジニアです。
以下のbuild.gradleをbuild.gradle.ktsに書き換えてください。
====
ここにbuild.gradleの内容をコピペ
出力された内容をコピーし、build.gradle.ktsに貼り付けます。
app/build.gradleをbuild.gradle.ktsに変換する
続いて、以下のapp/build.gradleも.ktsに書き換えてください。
====
ここにapp/build.gradleの内容をコピペ
dependenciesが省略されてしまう場合は、以下のように追加で指示を行ってください。
dependenciesも省略せず全て書いてください。
出力された内容をコピーし、app/build.gradle.ktsに貼り付ける。
バージョンカタログを適用する
ありがとうございます。
続いて、これらのGradleファイルに、Version Catalogsを適用してください
出力された内容をコピーし、gradle/libs.versions.tomlに貼り付けます。[1]
ChatGPTの情報は若干古いため、以下の追加を指示されますが、最新バージョンでは不要です。
次に、settings.gradle.kts または settings.gradle に以下の設定を追加して、Version Catalogsの機能を有効にします。
enableFeaturePreview("VERSION_CATALOGS")
今回は、ChatGPTの回答が期待通りでなかったため、以下の追加指示を行いました。[2]
省略せず全て書いてください。
また、librariesは以下のように記述すべきではないでしょうか。
====
[libraries]
androidx-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "ktx" }
適宜、手作業で直す
当然ながら、ChatGPTによる変換は完璧ではありません。今回の場合、 minifyEnabled = true
を isMinifyEnabled = true
に直すなど、いくつか修正が必要でした。
しかし、全てを手作業で行うよりはずいぶん楽でした。
公式の移行ガイドを見ればおおよそ問題なかったです。
まとめ
GroovyからKotlinへの変換や、バージョンカタログの適用は、人力で行うのはかなり面倒な作業です。
いずれ自動化されるのではないかと期待していますが、いつになるか分かりませんし、ChatGPTを使える環境であればぜひ使ってみてください。
Discussion