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

VersionCatalogを撫でる

 VersionCatalogを撫でる

akari317017

March 31, 2023
Tweet

Other Decks in Programming

Transcript

  1. VersionCatalogを撫でる
    2023.3.31 akari317017

    View Slide

  2. 買った人∼っ✋✋✋
    まだ電子版買えますよ!!!!!!!
    https://booth.pm/ja/items/4428455

    View Slide

  3. どんなことを話すの∼!?
    本当は前スライドの本に書いたことをまとめた、VersionCatalog
    の概要をはなすつもりでした🥺。。。が!
    今回の発表では、タイトルと相違しますがVersionCatalogに関す
    る最近更新された情報をメインにはなします🥺🤯🥺🤯
    VersionCatalogの基本的な構造などの話は、ぜひ前スライドの本
    を買って読んでください!!!

    View Slide

  4. 1. DependabotがVersionCatalogをサポートしたよ!編
    2. AndroidStudioがVersionCatalogをサポートしたよ!編
    3. KTS*plugins{}での回避策がいらなくなったよ!編
    今日はなすこと

    View Slide

  5. DependabotがVersionCatalogを
    サポートしたよ!編

    View Slide

  6. DependabotがVersionCatalogをサポートした
    2023/3/14にマージされていた!🎉
    現在対応しているのはlibs.versions.tomlのみ
    https://docs.github.com/en/code-security/dependabot/depe
    ndabot-version-updates/configuration-options-for-the-dep
    endabot.yml-file

    View Slide

  7. AndroidStudioがVersionCatalogを
    サポートしたよ!編

    View Slide

  8. AndroidStudioがVersionCatalogをサポート👏👏👏
    Android Studio GiraffeからVersionCatalogがサポートされて
    いる!🎉
    - コード補完、宣言元への遷移、ProjectStructureダイアログ
    からの編集など、VersionCatalog(TOMLファイル形式)が使い
    やすくなった。
    - Android Studio Giraffe Canary10から、新しいプロジェク
    トを作成した時に、VersionCatalog(libs.versions.toml)が
    使用されている。
    https://developer.android.com/studio/preview/features?hl=en#gradle-version-catalogs

    View Slide

  9. コード補完

    View Slide

  10. コード補完
    VersionCatalogを参照した依存関係をビルドファイルに追加する
    際に、いままではbuild.gradle.ktsでのみコード補完が効いてた
    build.gradle.ktsのコード補完
    は特に変わってなかった🥺

    View Slide

  11. コード補完
    build.gradleでもコード補完が効くようになった🎉
    aliasが全部出たり、右側にgroupとartifactが出る!!!
    めっちゃよい∼∼∼∼っっ😭😭😭

    View Slide

  12. 宣言元への遷移

    View Slide

  13. 宣言元への遷移
    TOMLファイル形式のVersionCatalogを使用している場合は、
    cmd+bなどでビルドファイル内の依存関係の参照から、
    VersionCatalogの宣言場所に遷移できるようになった。
    TOMLの宣言箇所から、cmd+bなどで参照先の検索はできない。
    bundlesもpluginsも遷移できる!最高∼って思ったんです!
    けど!!!!!!!

    View Slide

  14. 遷移できるビルドファイル
    遷移元となるビルドファイルは、
    Groovyで書かれたもののみ!!!!!
    KTSを使ってるとできない!!
    build.gradle.ktsなどは今まで通り、生成されたアクセサーに
    遷移する😫😫😫😫😫😫😫😫

    View Slide

  15. どのTOMLまで遷移できるんだい選手権
    VersionCatalog(遷移できなかったもの)
    - settings.gradle(.kts)に直接書く形式のVersionCatalog。こ
    れも今まで通り生成されたアクセサーに遷移する。
    VersionCatalog(遷移できたもの)
    - gradle/libs.versions.toml
    - -> のようにpathで取り込んだ
    TOMLファイル
    versionCatalogs {
    create("任意の名前"){
    from(files("TOMLファイルのパス"))
    }
    }

    View Slide

  16. どのTOMLまで遷移できるんだい選手権
    VersionCatalog(遷移できたもの)
    - Maven(LocalでもCentralでも)から取り込んだVersionCatalog
    も遷移できる。
    - from(components["versionCatalog"])で公開すると、
    -.tomlが生成されるため、
    そのTOMLファイルに遷移する。
    結論:GroovyDSLのビルドファイル*VersionCatalog(TOML形式)
    なら外から取り込んだものでも遷移できる!すごーい!

    View Slide

  17. Versionのwarning

    View Slide

  18. 古いバージョンにwarningが出るようになった!
    これは素直にとてもはっぴ∼!!

    View Slide

  19. ProjectStructureダイアログからの変更

    View Slide

  20. ProjectStructureからcatalogのversionの変更ができる
    ProjectStructure > Variables > 任意のVersionCatalogにて
    VersionCatalogに書かれている
    Versionのalias(Name)や
    version(Value)を変更すると、
    TOMLファイルに反映される。
    あれこれもしかして。。

    View Slide

  21. ProjectStructureから依存関係をTOMLに追加できる?
    ...は、まだできないらしい!!!!
    普通にbuild.gradle(.kts)に追加される。
    > This issue will be addressed in a future release.
    って書いてあったので、将来に期待!🫠🫠

    View Slide

  22. ProjectStructureからversionの変更
    ProjectStructure > Dependencies > app で、VersionCatalogで
    宣言しているVersionの指定ができるようになった!!

    View Slide

  23. KTS*plugins{}での回避策がいらなくなったよ!編

    View Slide

  24. 🥳🥳🥳🥳🥳🥳🥳
    kotlinDSLのplugins{}の中でversioncatalogを参照するとエラー
    が出ていた。
    gradle8.1-20230208002420+0000からなおってる!うれしい!
    🎉🎉🎉🎉🎉🎉🎉   
    https://github.com/gradle/gradle/pull/23639
    https://docs.gradle.org/8.1-rc-2/userguide/upgrading_version_8.html#kotlin_dsl_plugins_catalogs_workaround

    View Slide

  25. まとめ
    - 色んなものが少しずつサポートされてきて、これからもっと
    VersionCatalogが使いやすくなりそう。
    - はやくktsからcmd+bしたいよおおおおおおおおおおおお

    View Slide

  26. おしまい
    ありがとうございました󰵗󰵗󰵗

    View Slide