専門家:クーリエアプリMVVM Jetpack(HMS CloudDBキット)をKollinで使用しているアンドロイド-パート3

6718 ワード

**

概要


**
この記事では、HMSアカウント、AuthService、PushおよびCloud DBキットなどのHMSコアキットを統合するKotlinを使用して、Courier Androidアプリケーションを作成します.
このシリーズのパート2でHMSプッシュキットを使用して、パート1とクライアントプッシュ通知でHMSアカウントとAuthServiceキットを統合しました.以下のリンクをご覧ください
第1部
第二百四十六七十九条
アプリケーションは、DataBinding、AndroidViewModel、オブザーバー、LiveDataなどのJetpackのコンポーネントを使用してAndroid MVVMのクリーンなアーキテクチャを使用するようになります.
本稿では,観測可能なパターンを用いたデータベース化を実装する.
**

https://forums.developer.huawei.com/forumPortal/en/topic/0202841957497640128 クラウドDBキット紹介


**
Huawei雲DBは、デバイスクラウドとデバイス間のシームレスなデータ同期を可能にするデバイスクラウドシナジーデータベース製品であり、迅速にアプリケーションを操作すると、すぐにデバイスの雲とマルチデバイスシナジーアプリケーションを開発支援をサポートします.
**

https://forums.developer.huawei.com/forumPortal/en/topic/0201847982965230092 前提条件


**
1 . Huawei電話エミュ3.0以降.
2非Huawei電話アンドロイド4.4以降(APIレベル19以上).
3 hmsコアAPK
アンドロイドスタジオ
5 appgalleryアカウント
**

アプリケーションギャラリー統合プロセス


**
1 . AppGallery Connectポータルのプロジェクトにログインし、作成または選択します.
2 .プロジェクト設定に移動し、設定ファイルをダウンロードします.
3 .一般的な情報に移動し、データストレージの場所を提供します.
4 .プロジェクトに移動し、[プロジェクト設定]「ビルド」「クラウドDB」をクリックします.
5追加
6 .エクスポートをクリックし、Java、Android、およびパッケージ名を選択し、[ OK ]をクリックします.
**

アプリ開発


**
必要な依存関係を追加します.
Androidのスタジオを起動し、新しいプロジェクトを作成します.プロジェクトが完了したら.
Gradleスクリプトフォルダに移動し、ビルドを開きます.Gradle (モジュール: app ).HMSのクラウドDBキットの次の依存関係を追加します.
implementation 'com.huawei.agconnect:agconnect-cloud-database:1.5.0.300'
    implementation "com.huawei.agconnect:agconnect-auth-huawei:1.6.0.300"
    implementation 'com.huawei.agconnect:agconnect-auth:1.5.0.300'
Gradleスクリプトフォルダに移動し、ビルドを開きます.Gradleプロジェクト.
 ext.kotlin_version = "1.4.21"
    repositories {
        google()
        jcenter()
        maven {url 'https://developer.huawei.com/repo/'}
    }
    dependencies {
        classpath "com.android.tools.build:gradle:4.0.1"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.huawei.agconnect:agcp:1.4.2.300'
**

コード実装


**
以下のパッケージモデル、CloudDB、ViewModelを作成しました.
モデル:プライマリフォルダで新しいパッケージを作成し、モデル名を指定します.
CloudInfo .ジャバ
package com.hms.corrierapp.clouddb;

import com.huawei.agconnect.cloud.database.CloudDBZoneObject;
import com.huawei.agconnect.cloud.database.annotations.DefaultValue;
import com.huawei.agconnect.cloud.database.annotations.EntireEncrypted;
import com.huawei.agconnect.cloud.database.annotations.Indexes;
import com.huawei.agconnect.cloud.database.annotations.NotNull;
import com.huawei.agconnect.cloud.database.annotations.PrimaryKeys;

@PrimaryKeys({"CourierID"})
@Indexes({"ID:CourierID"})
public final class CourierInfo extends CloudDBZoneObject {
    private Integer CourierID;

    @NotNull
    @DefaultValue(stringValue = "Courier Name")
    private String CourierName;

    @DefaultValue(stringValue = "Desc")
    private String Desc;

    @EntireEncrypted(isEncrypted = true)
    private String FromAdress;

    @EntireEncrypted(isEncrypted = true)
    private String ToAddress;

    public CourierInfo() {
        super(CourierInfo.class);
        this.CourierName = "Courier Name";
        this.Desc = "Desc";
    }

    public Integer getCourierID() {
        return CourierID;
    }

    public void setCourierID(Integer CourierID) {
        this.CourierID = CourierID;
    }

    public String getCourierName() {
        return CourierName;
    }

    public void setCourierName(String CourierName) {
        this.CourierName = CourierName;
    }

    public String getDesc() {
        return Desc;
    }

    public void setDesc(String Desc) {
        this.Desc = Desc;
    }

    public String getFromAdress() {
        return FromAdress;
    }

    public void setFromAdress(String FromAdress) {
        this.FromAdress = FromAdress;
    }

    public String getToAddress() {
        return ToAddress;
    }

    public void setToAddress(String ToAddress) {
        this.ToAddress = ToAddress;
    }

}


オブジェクトセットジャバ
package com.hms.corrierapp.clouddb;

import com.huawei.agconnect.cloud.database.CloudDBZoneObject;
import com.huawei.agconnect.cloud.database.ObjectTypeInfo;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public final class ObjectTypeInfoHelper {
    private static final int FORMAT_VERSION = 2;
    private static final int OBJECT_TYPE_VERSION = 1;

    public static ObjectTypeInfo getObjectTypeInfo() {
        ObjectTypeInfo objectTypeInfo = new ObjectTypeInfo();
        objectTypeInfo.setFormatVersion(FORMAT_VERSION);
        objectTypeInfo.setObjectTypeVersion(OBJECT_TYPE_VERSION);
        List<Class<? extends CloudDBZoneObject>> objectTypeList = new ArrayList<>();
        Collections.addAll(objectTypeList, CourierInfo.class);
        objectTypeInfo.setObjectTypes(objectTypeList);
        return objectTypeInfo;
    }
}


**

ビルド結果


**


**

ヒントとトリック


**
アイデンティティキットは、最初にHuawei ID登録またはサインをページに表示します.ユーザーは、登録されたHuawei IDを使用して署名した後のみIDキットによって提供される機能を使用することができます.
必ずSHA - 256指紋を加えたことを確認してください.
MinSDKのバージョンを24またはそれ以降に設定します.そうでない場合は、AndOneManifestマージの問題を取得します.
**

結論


**
この記事では、AndroidアプリケーションでHuawei ID、プッシュ、クラウドDBキットを統合する方法を学びました.完全にこの記事をユーザーが簡単にHuawei IDとクライアント側のプッシュ通知を実装することができますし、クーリエのAndroidアプリケーションでKotlinを使用してクラウドDB上のクーリエ情報を送信することができます.
この記事を読んでくれてありがとう.あなたがそれが役に立つとわかるならば、この記事に好きで、コメントしてください.それは私にたくさん意味します.
**

参考文献


**
HMSドキュメント


https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides/introduction-0000001050048870
クラウドDBキットトレーニングビデオ
https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides/service-introduction-0000001050040060