Twitter の代替は Jake Wharton さんの Mastodon が最強じゃね?


👉 「Tweetbot」のTapbot、マストドンアプリ「Ivory」開発中 - ITmedia NEWS hatena-bookmark

そういえば、こんなの公開されてます。Twitter ではありません。

👉 Jake Wharton (@jw@jakewharton.com) - Mastodon hatena-bookmark


Singular Solution
Keep your Twitter follower count at zero by blocking and then quickly unblocking any new followers.

Available as a binary and Docker container.

👉 JakeWharton/singular-solution: Keep your Twitter follower count at zero by blocking and then quickly unblocking any new followers hatena-bookmark

docker + mastodon で Twitter クローン的なものを動かしてるのか、何なのか。

よく分かりませんが。

そういえば tweetbot 使ってましたね、Jake さんも。


【AndroidStudio】Wi-Fiワイヤレスデバッグ ペアリング済み端末の再接続

パソコンから接続していたAndroid端末に、気がつくと切断されている時がある。


パソコンや端末の電源を一度落としたり、OS の再起動や AndroidStudio の再起動は時間がかかるのでしたくない。

なるべくかんたんに素早く再接続する方法。


1. Connection Assistant「Restart ADB server」

2. ターミナルから「adb kill-server」

3. ワイヤレスデバック OFF → ON

4. 再ペアリング

上のどれかで再接続できるので操作が少ない 1. から順にやっていくと良い。

それぞれ操作後は、3〜10秒程度待つと再接続される。

Event log を見ながらやると分かりやすい。

 

📶 1. Connection Assistant「Restart ADB server」

AndroidStudio 上部から、Troubleshoot device connections を選択して、

NextNext で2画面を飛ばして以下画面から Restart ADB server

数秒待つと、端末と再接続されます。

 

📶 2. ターミナルから「adb kill-server」

ターミナルを開いて adb kill-server と打つだけ。

数秒後、再接続されます。

ADB server は kill されると、自動で起動し、ペアリング済み端末に接続にいくようです。

1. の機能もこのことを利用しているように思えます。



 

📶 3. ワイヤレスデバック OFF → ON

私、ずっとこの方法でやってました。

いちいち端末を手にとって、通知バーに入れたタイルから、一度 OFF して ON にする。

 

📶 4. 再ペアリング

上記の3つの方法で接続できない場合は、もう再ペアリングしちゃいます。

AndroidStudio 上部 Pair Devices using Wi-Fi からどうぞ。

 

📶 注意点

端末側がロック画面やスリープ状態だと再接続できないようです。

👉 Jake Wharton さん「Android12、ロック画面 / 常時表示の時計が良い。」 hatena-bookmark

あと、AndroidStudio の設定として、ADB 周りがデフォルト設定になっていることが必要です。

mDNS という仕組みを使って接続してるようです。

👉 【謎?】QRコードによるデバイスのペア設定 - Android11 hatena-bookmark

 

📶 まとめ

一度、ペアリング済みのWiFiワイヤレスデバッグの再接続は、Android Studio 画面上部から、


No Devices 

 ↓

Troubleshoot device connections

 ↓

Next

 ↓

Next

 ↓

Restart ADB server

とするだけでよい。上記 1. の方法です。


Kotlin 1.8 で JetpackCompose を使う

Kotlin を 1.7.21 から 1.8.0 に上げます。


[versions]

# kotlin = "1.7.21"
kotlin = "1.8.0"
compose-compiler = "1.4.0-alpha02"

build します。

はい、エラーでました。


e: This version (1.4.0-alpha01) of the Compose Compiler requires Kotlin version 1.7.21
but you appear to be using Kotlin version 1.7.21 which is not known to be compatible.
Please fix your configuration (or `suppressKotlinVersionCompatibilityCheck` but don't say I didn't warn you!).
https://developer.android.com/jetpack/androidx/releases/compose-kotlin#pre-release_kotlin_compatibility

表示されてるリンクに行きます。

はい、Kotlin 1.8 ありません。

👉 Compose to Kotlin Compatibility Map  |  Android Developers hatena-bookmark

さらに、そのページにあるリンク先へ。

ここにありますね。

👉 Compose Compiler Maven Index hatena-bookmark

さらに、このページにあるリンク先の記述を参考に変更します。


# libs.versions.toml

[versions]

# kotlin = "1.7.21"
# compose-compiler = "1.4.0-alpha02" # composeOptions ↔ kotlin 1.7.21

kotlin = "1.8.0"
compose-compiler = "1.4.0-dev-k1.8.0-33c0ad36f83"


// settings.gradle

dependencyResolutionManagement {
  repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
  repositories {
    google()
    mavenCentral()

    maven {
      url "https://androidx.dev/storage/compose-compiler/repository/"
    }


// build.gradle (:app)

composeOptions {
  kotlinCompilerExtensionVersion libs.versions.compose.compiler.get()
}

👉 jimgoog/ComposeAppUsingPrereleaseComposeCompiler: Demonstrates using Compose with pre-releases of KotlinCompiler and ComposeCompiler hatena-bookmark


 

■ まとめ

Kotlin バージョンと Compose Compiler のバージョンは密接に関係しています。

ちなみに、Compose UI 側のバージョンは以前のままの alpha03 (現最新) で、まあまあ良さげです。


[versions]

kotlin = "1.8.0"
compose-compiler = "1.4.0-dev-k1.8.0-33c0ad36f83"
compose-ui = "1.4.0-alpha03"


[libraries]

compose-ui = { module = "androidx.compose.ui:ui", version.ref = "compose-ui" }
compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling", version.ref = "compose-ui" }
compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview", version.ref = "compose-ui" }
compose-ui-test-manifest = { module = "androidx.compose.ui:ui-test-manifest", version.ref = "compose-ui" }
compose-ui-test-junit4 = { module = "androidx.compose.ui:ui-test-junit4", version.ref = "compose-ui" }