Docs Menu
Docs Home
/ /
Atlas Device SDK
/ /

Realm ファイルのバンドル - React Native SDK

項目一覧

  • 手順
  • バンドルする Realm ファイルの作成
  • アプリに Realm ファイルをバンドルする
  • アプリで Bundle Realm を開きます

Realm は Realm ファイルのバンドルをサポートしています。 Realm ファイルをバンドルする場合、データベースとそのすべてのデータをアプリケーションのダウンロードに含めます。

これにより、ユーザーは初期データセットを使用して初めてアプリケーションを起動できます。 同期済み Realm の場合、バンドルにより、ユーザーが初めてアプリケーションを開くときに長時間かかる初期ダウンロードを回避できます。 代わりに、ユーザーは、バンドル ファイルの生成以降に発生した同期された変更のみをダウンロードする必要があります。

重要

ローカル Realm にのみ適用

このページのコンテンツは、ローカル Realm にのみ適用されます。

警告

エクスポート アプリには適用されません

React Native アプリケーション用の Realm ファイルを作成してバンドルするには、次の手順に従います。

1

React Native アプリ用のバンドルされた Realm を作成する最も簡単な方法は、バンドルを作成するための別の Node.js スクリプトを記述します。

バンドルを作成するには、 @realm/reactではなく、 realmパッケージを使用する必要があります。

  1. アプリケーションのデータモデルを共有する一時的な Realm アプリを構築します。

  2. Realm を開き、バンドルするデータを追加します。 同期された Realm を使用する場合は、Realm が完全に同期するまで時間を待ちます。

    create- Bundled-realm.js
    import Realm from "realm";
    import { Dog } from "./schemas";
    // open realm
    const config = {
    schema: [Dog],
    path: "bundle.realm",
    };
    const realm = await Realm.open(config);
    // add data to realm
    realm.write(() => {
    realm.create("Dog", { name: "Jasper", age: 10, type: "Golden Retriever" });
    realm.create("Dog", { name: "Maggie", age: 12, type: "Collie" });
    realm.create("Dog", { name: "Sophie", age: 6, type: "German Shepard" });
    });
    realm.close();
  3. バンドルされている Realm ファイルのファイルパスに注意してください。 次のセクションで説明されているように、本番アプリケーションでバンドルされた Realm を使用するにはこのファイルが必要になります。

    temp_realm_app
    .
    ├── bundle.realm
    ... rest of files in _temp_ application
2

初期データを含む Realm のコピーが作成できたら、バンドルされている Realm ファイルを本番アプリケーションに追加します。 バンドルされている Realm を配置する場所は、iOS と Android のビルドで異なります。

  1. Android Studio で React Native によって生成されたandroidフォルダーを開きます。

  2. Projectツリーで、 app > src > mainに移動します。 mainディレクトリを右クリックします。 assetsという名前の新しいサブディレクトリを作成します。

  3. バンドルされている Realm ファイルをassetsディレクトリにドラッグします。

  1. Xcode で、React Native によって生成されたiosディレクトリ内のyour_project_name.xcworkspaceファイルを開きます。

  2. プロジェクト ナビゲータでアプリを選択し、プロジェクト概要で [ Build Phases ] タブを選択します。

  3. Copy Bundle Resourcesアイテムを展開します。

  4. +アイコンをクリックします。

  5. Add Other...ボタンをクリックします。

  6. バンドルされた Realm ファイルを見つけて追加します。 デフォルト設定を変更せず、 Finishボタンを選択します。

3

Realm はバンドルされており、ユーザーがアプリをダウンロードするときに含まれます。 バンドルされている Realm ファイルをアプリのドキュメント ディレクトリに追加するには、 Realm. copyBundedRealmFiles()を呼び出します Realm を開く前に、

Realm.copyBundledRealmFiles() は、アプリケーション バンドルからすべての*.realmファイルをアプリケーション ドキュメント ディレクトリに追加します。 このメソッドは同じ名前の既存のファイルを上書きしないため、アプリを起動するたびに呼び出しても安全です。

バンドルされた Realm を最初に作成したときに指定した名前と構成で、バンドルされた Realm を開きます。

本番アプリケーションに含まれる Realm のコピーが作成できたら、それを使用するためのコードを追加する必要があります。

import React from 'react';
import {createRealmContext, Realm} from '@realm/react';
import {Dog} from './schema';
Realm.copyBundledRealmFiles();
const realmContext = createRealmContext({schema: [Dog], path: 'bundle.realm'});
const {RealmProvider} = realmContext;
export default function OpenBundledRealm() {
return (
<RealmProvider>
{/* Rest of app has access to objects pre-populated
in the bundled realm. */}
<RestOfApp />
</RealmProvider>
);
}

戻る

Realm の構成