0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

アノテーション処理のKAPTとKSPの違い

0
Posted at

Androidアプリ開発でアノテーション処理を使う場合に使用されるのが KAPT か KSP です。どちらも処理をしてコードを生成する仕組みですが、仕組みや用途の違いをまとめます。

KAPT(Kotlin Annotation Processing Tool)

KAPT は Kotlin で Java 用のアノテーションプロセッサを使うためのツールです。Kotlinから Java に変換してバイトコードを生成しています。

メリット
・Java 用アノテーションプロセッサをそのまま利用可能
デメリット
・KSPと比較してコンパイル時間が長くなる
・Kotlin 特有の文法(null 安全性やプロパティ)は完全には反映できない

KSP(Kotlin Symbol Processing)

KSP はKotlin 専用に設計されたアノテーションプロセッサです。コンパイラと直接連携してKotlin のシンボル情報(クラス、関数、プロパティなど)をそのまま解析します。

メリット
・Kotlin の型情報やプロパティを正確に扱える
・KAPT よりコンパイルが高速
・Kotlin 専用に最適化されている

デメリット
・Java 用アノテーションプロセッサはそのまま使えない

選び方のポイントは次の通りです。プロジェクトの採用言語や実装仕様に合わせて選びましょう。
→KAPT を選ぶ
・既存の Java ライブラリを使う場合
・既に Java 用に作られたアノテーションプロセッサをそのまま利用できる

→ KSP を選ぶ
・Kotlin ネイティブな処理や高速化を重視する場合
・Kotlin の型情報やプロパティを正確に扱える
・コンパイル時間も短縮できる

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?