ライフサイクル対応コンポーネント作成(DefaultLifecycleObserverを使用)

投稿日:  更新日:

Activityと同じライフサイクルを持たせたクラスを「ライフサイクル対応コンポーネント」と呼びます。

このコンポーネントを作成する際に、以前はアノテーション@OnLifecycleEventを付ける記述を行っていました。

現在(androidx.lifecycle:lifecycle-*:2.4.0以降)は、@OnLifecycleEventが非推奨となり、DefaultLifecycleObserverを使った記述が推奨になっています。

DefaultLifecycleObserverを使用したコンポーネントの作成方法をまとめます。

※ライフサイクル対応コンポーネントの詳細は「Lifecycleでライフサイクル対応コンポーネント作成」を参照
※androidx.lifecycle:lifecycle-*:2.4.0の詳細は「バージョン2.4」を参照

※環境:Android Studio Meerkat | 2024.3.1 Patch 1
    Kotlin 2.0.0
    androidx.lifecycle:lifecycle-*:2.6.2
続きを読む

startActivityでYouTube動画を再生

投稿日:  更新日:

アプリケーションコンポーネントの連携は、容易にアプリの機能を拡充できる、優れた仕組みです。

このコンポーネントの連携でYouTube動画を再生する場合、インテントの解決に癖があり、少々難解です。

ですので、後々、困らないように、ここへまとめます。

※環境:Android Studio Meerkat | 2024.3.1 Patch 1
    Kotlin 2.0.0
続きを読む

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

投稿日:  更新日:

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

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

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

※環境:Android Studio Meerkat | 2024.3.1
    Kotlin 2.0.0
    Kotlin serialization json 1.7.1
    Retrofit2 2.11.0
    Coil 3.1.0
続きを読む

ユーザ定義クラスのカスタムSerializer(Handwritten版)

投稿日:  更新日:

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

例えば、データクラス(コンストラクタの引数でプロパティを指定するクラス)以外の、ユーザ定義のクラスはパース出来ません。また、ライブラリ提供のクラスもパース出来ません。

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

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

カスタムSerializer(ユーザ定義クラス、Handwritten版)の作成方法をまとめます。

※環境:Android Studio Meerkat | 2024.3.1
    Kotlin 2.0.0
    Kotlin serialization json 1.7.1
続きを読む

ライブラリ提供クラスのカスタムSerializer(Surrogate版)

投稿日:  更新日:

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

例えば、データクラス(コンストラクタの引数でプロパティを指定するクラス)以外の、ユーザ定義のクラスはパース出来ません。また、ライブラリ提供のクラスもパース出来ません。

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

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

カスタムSerializer(ライブラリ提供クラス、Surrogate版)の作成方法をまとめます。

※環境:Android Studio Meerkat | 2024.3.1
    Kotlin 2.0.0
    Kotlin serialization json 1.7.1
続きを読む