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」でも同様です。