macOS Ventura で iPhone を WEBカメラ として使う

iPhone 側で「連携カメラ」をONにしておくと、

Mac側では、カメラを使用したアプリからの選択切り替えができるようになります。

また、以下からも外付けカメラとして切り替えできます。

まずは、試してみましょう!!

 

■ iPhone カメラへの切り替え

👉 Macで外付けカメラを使用する - Apple サポート (日本) hatena-bookmark


設定

 ↓

アクセシビリティ

 ↓

ポインタコントロール

 ↓

ヘッドポインタ の右のオプション(i)

 ↓

カメラオプション

 ↓

カメラ

 ↓

iPhone のカメラを選択




 

■ デスクビュー アプリの起動

Finder から


システム

 ↓

ライブラリ

 ↓

CoreServices

 ↓

Applications

 ↓

デスクビュー

面倒なので、Spotlight から起動すると早いです。

👉 MacのSpotlightで検索する - Apple サポート (日本) hatena-bookmark

👉 AndroidスマホをWEBカメラとして使う【macOS】 hatena-bookmark


【Gradle Version Catalog】libs.versions.toml キー名の形式 camelCase vs kebab-case

一流のプログラマーのコードには、それぞれのこだわりや哲学があります。

Gradle Version Catalog で利用される設定ファイルの libs.versions.toml を眺めながら、気になったことがありました。

キー名の形式です。

Gradle Version Catalog

 

■ いろんな形式がある

Naming convention (programming)
👉 Naming convention (programming) - Wikipedia hatena-bookmark

 

■ TOML 的には

Case についてははっきりとしたきまりはないようです。

キーはベア・キー、クォート付きキー、ドット付きキーのいずれかです。
ベア・キーはASCII英数字とアンダースコア、ダッシュのみで構成されます(A-Za-z0-9_-)。 ASCII数字のみでも構いませんが、文字列として解釈されることに注意してください(例: 1234)。

👉キー TOML: 日本語 v1.0.0-rc.2 hatena-bookmark

こんなきまりもあります。

インライン・テーブルは一行で表現されるべきです。インライン・テーブルでは、配列と違って、最後の要素のあとにコンマを足すことはできません。波括弧の内側では改行は認められません。ただし、それぞれの値の中で改行することは、それぞれの値型で認められている範囲でできます。ですが、できるとしてもインライン・テーブルを複数行に分割することはなるべく避けるべきです。もしあなたがその必要があるように感じたのならば、普通のテーブルを用いるべきです。


name = { first = "Tom", last = "Preston-Werner" }
point = { x = 1, y = 2 }
animal = { type.name = "pug" }

👉 インライン・テーブル TOML: 日本語 v1.0.0-rc.2 hatena-bookmark

 

■ GitHub で見てみる

camelCase


[libraries]
androidPlugin = { module = "com.android.tools.build:gradle", version = "4.2.2" }
robovmPlugin = { module = "com.mobidevelop.robovm:robovm-gradle-plugin", version.ref = "robovm" }
kotlinStdLib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" }
kotlinCoroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version = "1.5.1" }
okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" }

👉 retrofit/libs.versions.toml at 5180f481c58b0be80ad81a0c1ec540fe7e91ee81 · square/retrofit hatena-bookmark

kebab-case


[libraries]
plugin-android = { module = "com.android.tools.build:gradle", version.ref = "plugin-android" }
plugin-kotlin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "plugin-kotlin" }
plugin-kotlin-serialization = { module = "org.jetbrains.kotlin:kotlin-serialization", version.ref = "plugin-kotlin" }
plugin-gver = { module = "com.github.ben-manes:gradle-versions-plugin", version.ref = "plugin-gver" }

👉 kmm-production-sample/libs.versions.toml at aed57893bab7e88a0df50285196e942be6934bf8 · Kotlin/kmm-production-sample hatena-bookmark
👉 PosterBox/libs.versions.toml at 9e988e7fb62620a6913493aeecc51cb71aba3595 · JakeWharton/PosterBox hatena-bookmark
👉 awesome-kotlin/libs.versions.toml at ae83263c467da6f81bb1abc7536ab6af7bc5b4d0 · KotlinBy/awesome-kotlin hatena-bookmark

camelCase - kebab-case


[libraries]
gradlePlugin-android = { module = "com.android.tools.build:gradle", version = "4.2.2" }
gradlePlugin-kotlin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlinCompiler" }
gradlePlugin-dokka = { module = "org.jetbrains.dokka:dokka-gradle-plugin", version = "1.6.20" }

👉 leakcanary/libs.versions.toml at f9462209ab553c76ad77673f7bebbd155fa76fa9 · square/leakcanary hatena-bookmark

その他


jsoup = { module = "org.jsoup:jsoup", version.ref = "1.15.3" }

でなく


jsoup = "org.jsoup:jsoup:1.15.3"

とも書ける。

👉 okhttp/libs.versions.toml at a94769c31ff18c5c768f790a92eab1de9b27fd83 · square/okhttp hatena-bookmark

あと、どこを選択するか、という問題もある。


com.google.firebase:firebase-bom
                    ^^^^^^^^^^^^

com.google.firebase:firebase-*
                    ^^^^^^^^^^

com.google.accompanist:accompanist-*
    ^^^^^^.^^^^^^^^^^^

com.google.accompanist:accompanist-imageloading-core
    ^^^^^^.^^^^^^^^^^^.            ^^^^^^^^^^^^^^^^^

com.google.accompanist:accompanist-glide
    ^^^^^^.^^^^^^^^^^^.            ^^^^^

com.google.android.libraries.places:places
    ^^^^^^.^^^^^^^.          ^^^^^^

com.google.maps.android:*
    ^^^^^^.     ^^^^^^^.^

com.google.maps.android:android-maps-utils
    ^^^^^^.     ^^^^^^^.        ^^^^^^^^^^

com.google.maps.android:maps-ktx
    ^^^^^^.     ^^^^^^^.^^^^^^^^

👉 refreshVersions/google-version-alias-rules.txt at main · jmfayard/refreshVersions hatena-bookmark

 

■ まとめ

「.(ドット)」に置き換えられて読み込まれる build,gradle 側の考慮も必要になります。

「重複しない直感的に分かりやすい名前」「kebab-case」にするのがスッキリしていいように思うけどみんなはどうしてますか?

👉 Jetpack Compose Samples でも使われている「Version catalog update plugin」で libs.versions.toml を書き出してみる hatena-bookmark
👉 Gradle Version Catalog への書き換えツールを作る【python】 hatena-bookmark
👉 「⚠ This project uses Gradle Version Catalogs: this tool may not behave as expected.」→ 今現在、Gradle Version Catalog には gradle-versions-plugin が必須では? hatena-bookmark


「⚠ This project uses Gradle Version Catalogs: this tool may not behave as expected.」→ 今現在、Gradle Version Catalog には gradle-versions-plugin が必須では?

使ってみました、Gradle Version Catalog。

こんなのでました。

Gradle Version Catalog

⚠ This project uses Gradle Version Catalogs: this tool may not behave as expected.

どうします? dependencies の 更新。

suggestions も出ないし。

 

👌 ben-manes/gradle-versions-plugin で確認する

現在、スター 3.4k のスーパープラグインを使いましょう。

ben-manes/gradle-versions-plugin: Gradle plugin to discover dependency updates

👉 ben-manes/gradle-versions-plugin: Gradle plugin to discover dependency updates hatena-bookmark

使い方は、プラグインにセットして


# gradle/libs.versions.toml

[plugins]
gradle-versions-plugin = { id = "com.github.ben-manes.versions", version = "0.43.0" }


// app/build.gradle

plugins {
  alias libs.plugins.gradle.versions.plugin
}

実行します。


./gradlew dependencyUpdates

現在利用中のライブラリーのバージョンと各公開されてるリポジトリのバージョンを比較して表示だけ してくれます。

ツールからは gradle/libs.versions.toml の書き換えは行ないません。安心です。

gradlew dependencyUpdates

しかし、これ何ですかね。


The following dependencies have later milestone versions:
 - org.jacoco:org.jacoco.ant [0.8.3 -> 0.8.7]
     http://jacoco.org

👉 org.jacoco:org.jacoco.ant dependency not found? · Issue #534 · ben-manes/gradle-versions-plugin hatena-bookmark

無視で良さそうです。

👉 Gradle Version Catalog への書き換えツールを作る【python】 hatena-bookmark
👉 【Gradle Version Catalog】libs.versions.toml キー名の形式 camelCase vs kebab-case hatena-bookmark
👉 Jetpack Compose Samples でも使われている「Version catalog update plugin」で libs.versions.toml を書き出してみる hatena-bookmark