Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kotlin Notebookを プラグイン開発に活用する

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for k-tomoyasu k-tomoyasu
February 19, 2026
30

Kotlin Notebookを プラグイン開発に活用する

2026/02/12開催のpixiv App Talkの発表資料です。
https://pixiv.connpass.com/event/382298/

Avatar for k-tomoyasu

k-tomoyasu

February 19, 2026
Tweet

Transcript

  1. Kotlin Notebookとは • データ分析などに広く使われるJupyter NotebookのKotlin版 • コードセルとドキュメントセル(Markdown)で構成されるインタラクティブな開発 環境 ◦ ドキュメントとコード、実行結果(図表などを含む)が一体になった実行可能なドキュメント

    ◦ 依存ライブラリの記述やプロジェクト内のコードの実行も可能 • IntelliJプラグインのプロトタイピングへの活用が今回のメイントピック ◦ プラグイン開発に使うIntelliJプラットフォームAPIをNotebook上で実行可能 4
  2. 5

  3. 導入 • Kotlin Notebookプラグインをインストール • File > New > Kotlin

    Notebookでファイル作成 ◦ プロジェクトを新規作成せずに既存プロジェクトに追加できるのでサクッと始められる 7
  4. 今回つくるプラグイン • デザインシステムに則ったカラーパレットの可視化 ◦ ピクシブのデザインシステム「Charcoal」 ▪ サービスのブランドカラーを示す brand などのトークンにライト/ダークテーマごとに具 体的な色を割り当てている

    ▪ OSSとして実装が公開されている • トークンと色の対応表を表示するUIをプラグインとして実装 ◦ トークンと色の組み合わせを開発中にすぐに確認できるようにする 13
  5. 開発環境 • Android Studio Panda 2 | 2025.3.2 Canary 3

    ◦ 今回紹介する範囲では問題なく利用できたが、一部IDEAでは動くがAndroid Studioで動かない機能があっ たので、IDEAの方が安定しそう ▪ 実行結果の出力タイプがhtmlだと表示されなかった 15
  6. 準備 • Run in IDE Process を選択 • %use intellij-platform

    をコードセルで実行 ◦ プラグイン開発に必要なものがインポートされる 16
  7. プラグインのUI実装の選択肢 • Swing ◦ IntelliJプラットフォームの基盤になっているJava製のUIライブラリ。汎用性は最も高い ◦ 手続き的な記述 • Kotlin UI

    DSL ◦ 宣言的に記述できるDSL • Compose / Jewel ◦ Jewel: IntelliJプラットフォーム用のUIをComposeで提供するライブラリ ▪ プラグイン開発での利用は公式にサポートされていないが、Android Studioの実装でも使われている https://github.com/JetBrains/intellij-community/tree/master/platform/jewel ◦ Kotlin Notebook上での利用は2026/2時点では開発中 ▪ Kotlin Conf 2025のセッションでデモを交えて紹介された https://www.youtube.com/watch?v=bkd6EAPIVe0 21
  8. プラグインのUI実装の選択肢 • Swing ◦ IntelliJプラットフォームの基盤になっているJava製のUIライブラリ。汎用性は最も高い ◦ 手続き的な記述 • Kotlin UI

    DSL ◦ 宣言的に記述できるDSL • Compose / Jewel ◦ Jewel: IntelliJプラットフォーム用のUIをComposeで提供するライブラリ ▪ プラグイン開発での利用は公式にサポートされていないが、Android Studioの実装でも使われている https://github.com/JetBrains/intellij-community/tree/master/platform/jewel ◦ Kotlin Notebook上での利用は2026/2時点では開発中 ▪ Kotlin Conf 2025のセッションでデモを交えて紹介された https://www.youtube.com/watch?v=bkd6EAPIVe0 22
  9. 28

  10. 29

  11. 30

  12. 31

  13. 32

  14. PSIからトークン・色の組み合わせを取得 34 • アプリのコードに依存せずに、コードの静的解析で取得する ◦ アプリ側のコードを実行してトークン・色の組み合わせを取得していた箇所を置き換える • PSI (Program Structure

    Interface) ◦ ソースコードを解析してIDEが扱うためのデータ構造にしたもの・その仕組み • PSIを利用してコードの静的解析を行う ◦ PSIからトークン・色の組み合わせを抽出する
  15. 37

  16. 38

  17. 39

  18. 参考 • IntelliJ Platform SDK ◦ https://plugins.jetbrains.com/docs/intellij/welcome.html • intellij-community ◦

    https://github.com/JetBrains/intellij-community/tree/master • Kotlin Notebook Meets IntelliJ Platform | PluginDevConf2025 ◦ https://www.youtube.com/watch?v=OC5u7_c3m9w • Compose Prototyping in Kotlin Notebooks | Kotlin Conf 2025 ◦ https://www.youtube.com/watch?v=bkd6EAPIVe0 42