Android Studio Electric Eel で KMM プロジェクトテンプレートが消えてる件

Android Studio Electric Eel に更新しました。

KMM プロジェクトテンプレートが消えてます。

以前は、以下のようにありました。

たまらず、kdoctor。


❯ kdoctor
[✓] Operation System
[✓] Java
[✓] Android Studio
[✓] Xcode
[✓] Cocoapods

Conclusion:
  ✓ Your system is ready for Kotlin Multiplatform Mobile Development!

いけてます。

あれ、どうだったけか。

👉 【KMM】KDoctor って生きてるの? hatena-bookmark

 

📱 Kotlin Multiplatform Mobile プラグインを再度入れる

プラグインが更新時に消えてますね。

JetBrains Marketplace のサイトから Android Studio にプラグインをインストールしてるがどうかを確認できます。

ブラウザ上で右上のボタンからです。

👉 Kotlin Multiplatform Mobile - Android Studio Plugin | Marketplace hatena-bookmark

または、Android Studio 内、設定のプラグイン画面からインストールします。

インストール後は、Android Studio を再起動すると、KMMテンプレートも表示されるようになります。

しかし、ビルドできません。

JDK 11 を再度設定するといけました。

しかし、iOS側がコケる。

ERROR: JAVA_HOME is set to an invalid directory: /Users/jim/Library/Application Support/JetBrains/Toolbox/apps/AndroidStudio/ch-0/213.7172.25.2113.9014738/Android Studio.app/Contents/jre/Contents/Home

Dolphin の embed JDK のパスが残ってます。


👉 Android Studio Releases List | IntelliJ Platform Plugin SDK hatena-bookmark

ここか。

Xcode Settings - Location - Custom Paths


👉 kmm | #Android ファショ通 hatena-bookmark


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


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

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

👉 Jake Wharton (@[email protected]) - 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 を選択して、

Next → Next で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" }


Google Fit アプリの 体重グラフ Android版 と iPhone版の表示の違い

Google Fit のグラフ表示。

体重だけではないですが、なんか見づらくありませんか。

新年そうそう、体重の増減を確認します。

Android / iPhone アプリでグラフを見ます。

それぞれの OSで、表示されるグラフは、


- トップ画面

- 週

- 月

- 3か月

- 年

と、5種類あります。

同じデータでも、グラフの山の計算方法や、表示される期間が違います。

以下、2023年元旦の時点で表示されるグラフです。

 

■ Android

トップ画面

週

月

3か月

年

 

■ iPhone

トップ画面

週

月

3か月

年

 

■ まとめ

2023年、元旦の時点では、

iPhone 版の 3か月 表示が一番体重の増減が分かりやすいように思います。

表示期間の範囲設定が少し微妙に思えます。

しかし、まあ、正月は太るので嫌ですね。

👉 Google Fit hatena-bookmark