LoginSignup
1
0

More than 1 year has passed since last update.

Kotlinアプリケーション開発に、NoSQLドキュメント指向モバイルデータベースCouchbase Liteを使ってみる

Last updated at Posted at 2021-12-08

はじめに

本稿では、Kotlinアプリケーション開発に、NoSQLドキュメント指向モバイルデータベース Couchbase Liteを使うための具体的な方法について解説します。

本稿では、Couchbase Lite 3.0.0ベータ版をKotlinアプリケーションで利用する際の動作確認までを行います。

Couchbaseをモバイルアプリケーションで利用する意義については、以下の記事をご参考ください。

確認環境

  • macOS Catalina Version 10.15.7
  • Android Studio 4.1.3

実行手順

プロジェクト作成・Couchbase Liteインストール

Android Studioで新しい「Empty Activity(空のアクティビティ)」プロジェクトを作成します

build.gradleファイル編集

新しく作成したプロジェクトで、アプリケーションレベルのbuild.gradleファイルを編集します。

androidセクション

androidセクションのminSdkVersion22にします。

今回検証したプロジェクトのbuild.gradleファイルのandroidセクション全体を示します。minSdkVersion以外は、変更していませんが、compileOptionskotlinOptionsのバージョンに注意してください。

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.3"

    defaultConfig {
        applicationId "com.example.cbl_kotlin"
        minSdkVersion 22
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }

}

repositoriesセクション

repositoriesセクションに以下を含めます。

repositories {
  maven { url 'https://mobile.maven.couchbase.com/maven2/dev/' }

//   ... 省略
}

dependenciesセクション

dependenciesセクションに以下を含めます。

dependencies {

  implementation 'com.couchbase.lite:couchbase-lite-android-ee-ktx:3.0.0-beta02'

//   ... 省略
}

以上の変更を加えた後に、プロジェクトをビルドすると、Couchbase Liteがプロジェクトにプルダウンされます。

プログラミング・実行結果確認

MainActivityファイル編集

image.png

インポート文として、下記を追加します。

import android.content.Context
import android.util.Log
import com.couchbase.lite.*

MainActivityクラスを以下のように編集します。

class MainActivity : AppCompatActivity() {

    private var TAG = "CBL-TEST"
    private var cntx: Context = this

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // Couchbase Lite 初期化
        CouchbaseLite.init(cntx)
        Log.i(TAG,"Couchbase Lite 初期化完了")

        // データベース作成
        Log.i(TAG, "データベース作成開始")
        val cfg = DatabaseConfigurationFactory.create()
        val database = Database("kotlindb", cfg)

        val docId = "test"

        // ドキュメント作成
        var mutableDoc = MutableDocument(docId).setString("type", "user")

        // ドキュメント保存
        database.save(mutableDoc)

        // ドキュメント取得、変更、保存
        mutableDoc = database.getDocument(docId)!!.toMutable().setString("name", "田中")
        database.save(mutableDoc)


        // ドキュメント取得、ログ出力
        val document = database.getDocument(docId)!!
        Log.i(TAG, "ドキュメントID : ${document.id}")
        Log.i(TAG, "名前 : ${document.getString("name")}")

        // クエリ
        val rs = QueryBuilder.select(SelectResult.all())
                .from(DataSource.database(database))
                .where(Expression.property("type").equalTo(Expression.string("user")))
                .execute()
        Log.i(TAG, "ドキュメント数 : ${rs.allResults().size}")

    }

}

ビルドし、エミュレーターで実行します。

ログ

logcatウィンドウに以下のようなログが表示されます。

image.png

データベースファイル

メニューから、Device File Explore(View > Tool Window > Device File Explore)を開きます。

「Name」セクションのdata > dataを開きます。
image.png

アプリケーションのパッケージ以下のfilesに下記のように作成したデータベース(フォルダー)を確認することができます。

image.png

最後に

本稿では、Kotlinアプリケーション開発のために、プロジェクトにCouchbase Liteをダウンロードし、基本的な操作が行えるところの確認までを行いました。
モバイルアプリケーション開発に組込データベースを使った経験のある方であれば、以降の応用は、比較的簡単に可能かと思います。
最後に、さらなるステップに進むための情報を示して、本稿の締め括りとしたいと思います。

Couchbase Liteについての記事を以下の投稿で整理していますので、ご関心に応じて、参照してみてください。

Kotlinについては、まず今年2021年に発表されたビデオを紹介します。

Kotolinではなく、Android Javaが利用されていますが、Couchbase Liteを用いた以下のようなチュートリアルが存在します。

こちらも、Kotolinではなく、Android Javaが利用されていますが、サンプルアプリケーションを動作させる環境の構築を通じて、Couchbase Lite利用のみではなく、Couchbase Serverとのデータ同期までをカバーした、以下のチュートリアルがあります。

上記のチュートリアルの内容をベースに日本語化したものを下記で確認いただけます。

Kotlinを使ったチュートリアルとして、Couchbase Liteではなく、Couchbase Serverとの連携を扱ったものとして以下があります。

本稿で扱っていない、Couchbase Serverについては、日本語で読むことができるまとまった情報として、次の拙著を紹介させていただきます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0