【macOS Sonoma + Google 日本語入力】かな英数入力切替時に入力先付近に切り替え状態が表示されるやつ便利

かな ↔ 英数 切り替えすると

切り替え先が表示されるように

なってました。

【Google 日本語入力】かな英数切替時に入力先付近に切り替え状態が表示されるやつ便利

いつの間にか知らないうちに更新された便利新機能のようです。

ユーザーによっては、更新されなかったり、されていたり、ばらつきがあるようです。

Google日本語入力の更新についてですが、こちらは自動で更新されるものなのでしょうか?また、いつ更新されたのかなど、更新内容の情報は、どこかに記載されているのでしょうか?

はい、PC 版 Google 日本語入力も自動で更新されます。

👉 Google日本語入力の更新について - Gboard コミュニティ hatena-bookmark

強制的に更新したい場合は、一度アンインストールしてから再インストールしかないのかもしれません。

ちなみに、表示された時点でのバージョンは以下でした。

【Google 日本語入力】かな英数切替時に入力先付近に切り替え状態が表示されるやつ便利

👉 Google 日本語入力 – Google hatena-bookmark

 

😲 あれ、これ実は?!

いや、よく考えたらこれ macOS Sonoma の新機能 だよな!!

クリックで切り替えもできるし!!



 

😲 言語切替時のカーソルインジケータを無効化する

無効に設定したい場合は以下。


sudo mkdir -p /Library/Preferences/FeatureFlags/Domain
sudo /usr/libexec/PlistBuddy -c "Add 'redesigned_text_cursor:Enabled' bool false" /Library/Preferences/FeatureFlags/Domain/UIKit.plist

👉 Disable macOS Sonoma Text Insertion Point (Cursor) / Caps-lock Indicator - Stack Overflow hatena-bookmark


【Mac Sonoma】「壁紙をクリックしてデスクトップを表示」をさせない方法

アップデート後、デスクトップが謎の挙動。

新機能ですね。

 

■ どういう機能か



壁紙をクリックすると、すべてのウィンドウが画面の外に移動して、デスクトップ項目やウィジェットにアクセスしやすくなります。

とのこと。

 

■ とりあえず機能を止める


「設定」

  |

「デスクトップとDock」

  |

「デスクトップとステージマネージャ」

  |

「壁紙をクリックしてデスクトップを表示」

  |

「ステージマネージャ使用時のみ」

【Mac Sonoma】「壁紙をクリックしてデスクトップを表示」をさせない方法

 

■ まとめ

とりあえず、無効にしておきます。

そのうち使いたくなるのかもしれません。

👉 How to disable 'Click wallpaper to reveal desktop' on macOS hatena-bookmark


Jetpack Compose Dependency versions API-33 vs API-34

 

💻 Dependencies のバージョンがきれいに揃わない

ひとつづつ地道にバージョンを上げていったもののここまでしか上げることができない。

Jetpack Compose Dependency versions API-33 vs API-34

これ以上の安定版バージョンもすでに公開されているのだが、どうしても、

「API-33 ではこのバージョンは使えないので API-34 に上げてください」

というような SDK のバージョンアップを促されるメッセージが表示され、ビルドできない。

👉 Dependency 'androidx.emoji2:emoji2-views-helper:1.4.0' requires version 34 or later [295457468] - Visible to Public - Issue Tracker hatena-bookmark


 

💻 プロの回答

Android 14 の API 34 が完成したことにより、すべての新しい Jetpack ライブラリ リリースが API 34 でコンパイルされ始めました。つまり、アプリも API 34 でコンパイルする必要があります。targetSdk は、多くのことができるまったく異なるものであることに注意してください。


すなわち、


compileSdk 34
targetSdk 33

でビルドせろ。ということなのか。

 

💻 Android Studio Giraffe

現在の Android Studio Giraffe | 2022.3.1 では、最新のサポートする API レベルは「33」。


👉 Android Studio Giraffe | 2022.3.1  |  Android Developers hatena-bookmark

これ、34 に上げてもいいの ?

 

💻 まとめ

Jetpack ライブラリの安定版最新を使いたい場合は、

Android Studio Girrafe でなく、まだ、ベータ版の Hedgehog | 2023.1.1 を使ったほうがいいんでないの?

一見、きれいに通っているように見える。


compileSdk 34
targetSdk 34

それとも、すべて安定版のまま、我慢の開発を続けるか。

👉 JetBrains Toolbox で Android Studio の Stable/Beta/Canary が同時に管理できる? hatena-bookmark


Gson が R8 で落ちる

Gson が R8 で落ちる
Android Studio, Gradle, SDK のアップデートで避けては通れない。

いろいろ悩む前に、通信周りは R8 の変化を気にしおくといい、


# Prevent R8 from leaving Data object members always null
-keepclassmembers,allowobfuscation class * {
  @com.google.gson.annotations.SerializedName <fields>;
}

# Retain generic signatures of TypeToken and its subclasses with R8 version 3.0 and higher.
-keep,allowobfuscation,allowshrinking class com.google.gson.reflect.TypeToken
-keep,allowobfuscation,allowshrinking class * extends com.google.gson.reflect.TypeToken

👉 gson/examples/android-proguard-example/proguard.cfg at main · google/gson hatena-bookmark

ここらは、Gson 以外の JSON パーサーにも似たようなことが言える。

Retrofit を使ってる方は、必須の注意事項。

どんなライブラリよりも先に疑った方がいい。



【Kotlin DSL】Deprecated な packagingOptions が fun Packaging.() に変換される件

これは?

【Kotlin DSL】packagingOption  が  fun Packaging.()  に変換される件

以下の記述が


packagingOptions {
  resources {
    excludes += "META-INF/rxjava.properties"
  }
}

これになりました。


fun Packaging.() {
  resources {
    excludes += "META-INF/rxjava.properties"
  }
}

なんだかおかしいです?

該当部分のコードを確認します。


    /**
     * Specifies options and rules that determine which files the Android plugin packages into your
     * APK.
     *
     * For more information about the properties you can configure in this block, see [Packaging].
     */
    @Deprecated("Renamed to packaging", replaceWith = ReplaceWith("packaging"))
    val packagingOptions: Packaging

    /**
     * Specifies options and rules that determine which files the Android plugin packages into your
     * APK.
     *
     * For more information about the properties you can configure in this block, see [Packaging].
     */
    @Deprecated("Renamed to packaging", replaceWith = ReplaceWith("packaging"))
    fun packagingOptions(action: Packaging.() -> Unit)

    /**
     * Specifies options and rules that determine which files the Android plugin packages into your
     * APK.
     *
     * For more information about the properties you can configure in this block, see [Packaging].
     */
    val packaging: Packaging

    /**
     * Specifies options and rules that determine which files the Android plugin packages into your
     * APK.
     *
     * For more information about the properties you can configure in this block, see [Packaging].
     */
    fun packaging(action: Packaging.() -> Unit)

👉 build-system/gradle-api/src/main/java/com/android/build/api/dsl/CommonExtension.kt - platform/tools/base - Git at Google hatena-bookmark

こうですね。


packaging {
  resources {
    excludes += "META-INF/rxjava.properties"
  }
}

ついでに、短くしておきます。


packaging {
  resources.excludes += "META-INF/rxjava.properties"
}

これでOK。

👉 How to replace deprecated packagingOptions in Android Gradle build files - Stack Overflow hatena-bookmark