Retorofit + JSON には「Kotlin Serialization Converter」がよい。

Retrofit は非常に有名なSquare製のJavaで書かれたAndroid 向け HTTP クライアントです。

👉 square/retrofit: Type-safe HTTP client for Android and Java by Square, Inc. 

その内部には Kotlin Serialization はサポートされていませんが、オブジェクトのシリアル化のためのコンバータファクトリを追加することができます。独自のコンバータファクトリを作成することもできますし、Jake Wharton が書いたものを使うこともできます。

👉 JakeWharton/retrofit2-kotlinx-serialization-converter: A Retrofit 2 Converter.Factory for Kotlin serialization. 

Retrofit2 Converter.Factory を利用するには、ライブラリ dependencies に追加したあと、Retorofit インスタンス生成時に、Extension Function である asConvertFactory を使ってそれを追加します。


val contentType = "application/json".toMediaType()

val retrofit = Retrofit.Builder()
 .baseUrl("https://www.example.com")
 .addConverterFactory(Json.asConverterFactory(contentType))
 .build()

簡単ですね!

ちなみに、.toMediaType() とは、


okhttp3.MediaType.Companion.toMediaType

です。

👉 「Kotlinx Json」の登場でサードパーティJSONライブラリは不要となる。 


"意図しない入力文字の自動変換"

半角のクォーテーションや連続するハイフンが勝手に変換される。



エディタの設定ではなく、OSの設定だとか!

macOSの設定


「システム環境設定」

    |

「キーボード」

    |

「ユーザ辞書」

    |

「スマート引用符とスマートダッシュを使用」をOFFに。

テキストエディットの設定


「環境設定」

    |

「スマート引用符」をOFF

「スマート引用符とスマートダッシュ記号はリッチテキスト書類のみで使用」も注意です。

「スマート」って?

スマート引用符
スマートダッシュ
スマートコピー
スマートペースト
スマートリンク
スマートクォート
スマートクォーテーション
スマートハイフン

まとめ

私は、IMEとしてGoogle日本語入力を使っていますが、ここにも自動変換の設定があります。

よって、意図しない文字が入力される場合

- OS
- IME(ATOKやGoogle日本語入力)
- 入力先アプリ

の3つの設定の「スマート***」や「自動変換」あたりを確認する必要があるようです。

おせっかいぢゃんね?

便利かな?

スマートかな?


設定「画面の自動回転」は OFF で良い。

急いでいるときに、

スマホを操作するとき、

画面が回転してイラッとする。

以前に考え方について書いてはみましたが。

👉 【Android Pie】Auto-rotate (自動回転) OFF のときの挙動 

今現在のAndroid最新は「Anroid10」=「Android Q」ですが、画面回転の設定に関しては同様なことが言えます。

自動画面回転はOFFにしておくべき

考え方としては、

画面固定(自動回転OFF)にしておいて、画面回転するかしないかはサジェスチョンボタンで操作する

がオススメです。

これは、「Android OS 9 Pie」でも「Android OS 10 Q」でも同様です。


Gradle Build Scan は設定不要!!


👉 Getting started with build scans | Gradle Inc. 

無料です。

A build scan is a shareable and centralized record of a build that provides insights into what happened and why. By applying the build scan plugin to your project, you can publish build scans to https://scans.gradle.com for free.

👉 Creating Build Scans 

ターミナルから実行です。設定記述の追加は不要になりました。


./gradlew assembleDebug --scan

出力されるURLクリックから結果を見ることができます。

実行時間の一覧を見せてくれたり、

Gradle は 6.0、org.gradle.parallel=true をサジェストしてくれたりします。

有料版では、さらに高機能に使うことができるようです。


【Gboard】QWERTYキーが3種類あってはまる件【日本語入力】

前にも書きましたが。

👉 入力文字の 日本語 と 英数記号 切り替えをシンプルにする設定 

今現在の Gboard でもなんだか気持ちが悪いのですが。

 

QWERTYキーが3種類ある

日本人が使おうとするとき、QWERTYキーは3種類あります。

次のようにキーのレイアウトと表示される候補が違うのがわかります。

「日本語12キーから設定する英字QWERTY」

「日本語QWERTY」

「英語QWERTY」

このことが設定を分かりづらくさせています。

 

3種類を比較する

英語QWERTYでは、キー上をなぞって高精度に素早く英単語を変換できる「グライド入力」を使うことができます。

よって、3種類を表にすると以下のようになります。

QWERTY 変換候補 グライド入力
12英字 英語 2列
日本語 日本語 2列
英語 英語 1列

 

そもそもどう入力したいのか?

私の場合ですが。

日本語文字
→ 12キー【フリック入力】で
→ 【日本語単語】候補表示・選択
→ 入力欄に反映

英数文字
→ QWERTYキー【グライド入力】で
→ 【英単語】候補表示・選択
→ 入力欄に反映

 

まとめ

そんな設定にしたい人用にまとめておきます。

1. 「キーボードの言語とレイアウト」は、「日本語 12」と「英語(米国) QWERTY」のみ。

2. 「グライド入力」は、すべて有効化。

3. 「12キーレイアウトの設定」は「英字入力は QWERTY」をOFF。

4. 「キー」は「言語切り替えキーを表示」をON。

5. 日本語と英数の切り替えは「多言語切り替えボタン」で行う。

最後に、設定画面上のQWERTYキー設定位置を図にして概念的に分かりやすくしておきます。

使いたいQWERTYキー1つだけを有効にすることが大事です。

みんなはどうしてますか?

ちなみに、複数のキーボードアプリ間を切り替え利用したいときにも「多言語切り替えボタン」は役に立ちます。

👉 初めての Gboard キーボードのレイアウト設定 
👉 Android 端末 キーボード切り替え方法あれこれ