1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SwiftAdvent Calendar 2021

Day 3

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

Last updated at Posted at 2021-12-03

はじめに

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

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

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

確認環境

  • macOS Catalina Version 10.15.7
  • Xcode Version 12.4

実行手順

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

本稿では、Swiftパッケージマネージャーを使用して、Couchbase Liteをセットアップする手順を紹介します(Swiftパッケージマネージャーを使用してCouchbaseLiteSwiftをインストールするにはXcode12 +が必要です)。

Xcodeで、新しいプロジェクトを作成します:File > New > Project

Pasted Graphic 8.png

今回は、「SwiftUI」ではなく、「UIKit」を使います。

Pasted Graphic 9.png

下記のように、Swift Packages画面を表示します。

Pasted Graphic 10.png

「+」アイコンを押下し、「Choose Package Repository」ダイアログを表示します。

入力欄に次のURLを入力します。

https://github.com/couchbase/couchbase-lite-swift-ee.git

「Next」ボタンを押下します。

Choose Package Repository.png

「Choose Package Options」ダイアログが表示されます。

下記のように「Version」入力欄に、3.0.0-beta02と入力します。

「Next」ボタンを押下します。

Choose Package Options.png

パッケージ追加が始まります。

Add Package to CBLiteTestUlKit.png

下記のように、「CouchbaseLiteSwift」パッケージが表示されます。チェックし、「Finish」ボタンを押下します。

Add Package to CBLiteTestUIKit.png

下記のように、「CouchbaseLiteSwift」パッケージがプロジェクトに登録されます。
追加されたパッケージの名前、バージョン、URLが表示されています。

Pasted Graphic 15.png

これで、CouchbaseLiteSwiftをインポートして、アプリで使用できます。

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

ソースコード編集

今回は、稼働確認のため、ViewController.swiftを以下のように編集しました。

import UIKit
import CouchbaseLiteSwift

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        
        getStarted(testReplication: false)
    }

    func getStarted (testReplication: Bool) {
            // データベース作成または取得(再実行時)
            let database: Database
            do {
                database = try Database(name: "mydb")
            } catch {
                fatalError("Error opening database")
            }

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

            // ドキュメント保存
            do {
                try database.saveDocument(mutableDoc)
            } catch {
                fatalError("Error saving document")
            }

            // ドキュメント取得、変更、保存
            if let mutableDoc = database.document(withID: mutableDoc.id)?.toMutable() {
                mutableDoc.setString("田中", forKey: "name")
                do {
                    try database.saveDocument(mutableDoc)

                    let document = database.document(withID: mutableDoc.id)!
                    print("ドキュメント更新完了 - ドキュメントID: \(document.id), 名前: \(document.string(forKey: "name")!)")
                } catch {
                    fatalError("Error updating document")
                }
            }

            // クエリ
            print("クエリ実行")
            let query = QueryBuilder
                .select(SelectResult.all())
                .from(DataSource.database(database))
                .where(Expression.property("type").equalTo(Expression.string("user")))

            do {
                let result = try query.execute()
                print("ドキュメント数 : \(result.allResults().count)")
            } catch {
                fatalError("Error running the query")
            }

        }

}

ログ

以下のログが出力されます。

ドキュメント更新完了 - ドキュメントID: -YamrzlmIFovzOXYUp1YWDo, 名前: 田中
クエリ実行
ドキュメント数 : 1

データベースファイル

ターミナルで、作成されたデータベースファイルを確認します。

$ cd ~/Library/Developer/CoreSimulator/Devices
$ find . -name "mydb.cblite2"
./5C245945-C956-495A-B7CB-D646905E95C7/data/Containers/Data/Application/4E0B4959-9D0B-4181-A2E6-F3D3A233D5A9/Library/Application Support/CouchbaseLite/mydb.cblite2

最後に

本稿では、Swiftアプリケーション開発のために、プロジェクトにCouchbase Liteをダウンロードし、基本的な操作が行えるところの確認までを行いました。

モバイルアプリケーション開発に組込データベースを使った経験のある方であれば、以降の応用は、比較的簡単に可能かと思います。

最後に、さらなるステップに進むための情報を示して、本稿の締め括りとしたいと思います。

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

本稿の記事の内容(インストール、動作確認)に関する、一次情報として、下記のドキュメントがあります(Swiftパッケージマネージャーを使う以外の方法も説明されています)。

Couchbase Lite(のみを「スタンドアローン」で)を使ったチュートリアルとして、以下が公開されています。

上記チュートリアルからはじめ、さらに進んだトピックとして、「クエリ」、「Couchbase Serverとの同期」、「バックグラウンドでのフェッチ」までがカバーされています。

また、上記とは別に、サンプルアプリケーションを動作させる環境の構築を通じて、Couchbase Serverとのデータ同期をカバーした、以下のチュートリアルがあります。

上述のチュートリアルは、全てCouchbase社によるものでしたが、それとは別に下記のようなチュートリアルも公開されています(こちらも、Couchbase Serverとの同期までをカバーしています)。

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

1
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?