Retrofit+MoshiでWebサービスへアクセス

投稿日:  更新日:

RetrofitはRESTに準拠したWeb APIです。

このRetrofitとMoshiを使って、Webサービスへアクセスする方法を、まとめました。

サンプルはAndroidのコードラボと同じ内容です。私はコードラボが理解し難かったので、不要な部分をそぎ落として、Retrofitに的を絞って説明しています。

※環境:Android Studio Ladybug Feature Drop | 2024.2.2
    Kotlin 2.0.0
    Moshi 1.15.2
    Retrofit2 2.11.0
    Coil 3.1.0
続きを読む

MoshiのカスタムJsonAdaperを作成

投稿日:  更新日:

MoshiでJSONをパース(JSONの記述⇔データクラスのオブジェクト)する場合に、一般クラスは未対応です。

例えば、データクラス以外の、ユーザ定義のクラスはパース出来ません。

対応させるためには、そのクラスのカスタムJsonAdapterを作成します。

そして、相互変換する方法をプログラマー側で定義します。

カスタムJsonAdapterの作成方法をまとめます。

※環境:Android Studio Ladybug Feature Drop | 2024.2.2
    Kotlin 2.0.0
    Moshi 1.15.2
続きを読む

MoshiでJSONをパース

投稿日:  更新日:

Kotlinで利用可能なJSONライブラリーには「GSON, Jackson, Moshi, Kotlin Serializationなど」があります。

始めの3つはJavaがベースです。その中のMoshiは、拡張機能によりKotlinとの親和性が高められています。

Kotlin SerializationはJSON以外(Protobuf, CBOR, Hocon, Properties )のフォーマットも扱えます。フォーマットを扱うというよりも、シリアル化の機能を重視したライブラリーのようです。

プログラム間でデータを受け渡す際に用いるのであれば、Kotlin Serializationが最も適しているかも知れません。

Kotlin Serializationに興味を引かれますが、後の機会に置いといて…

今回は、Moshiについて、まとめます。

※環境:Android Studio Ladybug Feature Drop | 2024.2.2
    Kotlin 2.0.0
    Moshi 1.15.2
続きを読む

Data BindingでViewの表示と状態(データ)を結合!

投稿日:  更新日:

Data BindingはViewシステムを用いている場合に、Viewの表示と状態(データ)を結合する仕組みです。

結合とは「状態の変化に連動して、表示を更新する」ことです。

Googleは「利点がある」と述べています。しかし、私は利点に感じないので、積極的な利用をしていません。

Googleが提供するAndroidアプリのサンプルで頻繁に登場し、よく見かけます。

ですので、ここに備忘録として、まとめます。

※環境:Android Studio Ladybug Feature Drop | 2024.2.2
    Kotlin 2.0.0
     (Viewシステムのプロジェクトは1.9.24が選ばれる)
     (Composeのプロジェクトは2.0.0が選ばれる)
続きを読む

Room Database:データベース(識別子)のOpenとClose

投稿日:  更新日:

Room(Android Jetpack)でデータベースを構築した場合、データベースへアクセスする際に、データベースのOpenとCloseという処理を伴います。

この点について、まとめました。

※環境:Android Studio Ladybug | 2024.2.1 Patch 3
    Kotlin 2.0.0
    androidx.sqlite:sqlite:2.4.0
    androidx.room:room-*:2.6.1

※サンプルの全体像は「Roomでデータベースを構築」を参照

続きを読む