Docs Menu
Docs Home
/ /
Atlas Device SDK
/ /

Realm 파일 번들 - React Native SDK

이 페이지의 내용

  • 절차
  • 번들할 Realm 파일 만들기
  • 앱에 Realm 파일 번들
  • 앱에서 번들 Realm 열기

Realm은 Realm 파일 번들 을 지원합니다. Realm 파일을 번들로 제공하면 애플리케이션 다운로드에 데이터베이스와 모든 해당 데이터가 포함됩니다.

이를 통해 사용자는 초기 데이터 설정하다 로 애플리케이션을 처음 시작할 수 있습니다. 동기화된 Realm의 경우 번들을 사용하면 사용자가 애플리케이션 을 처음 열 때 시간이 오래 걸리는 초기 다운로드 를 방지할 수 있습니다. 대신 사용자는 번들 파일 을 생성한 이후 발생한 동기화된 변경 사항만 다운로드 해야 합니다.

중요

로컬 Realm에만 적용

이 페이지의 내용은 로컬 영역에만 적용됩니다.

경고

Expo 앱에는 적용되지 않음

다음 단계에 따라 React Native 애플리케이션을 위한 Realm 파일을 만들고 번들로 만들 수 있습니다.

1

React Native 앱에 번들 영역을 생성하는 가장 쉬운 방법은 별도의 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 파일의 파일 경로를 확인합니다. 다음 섹션에 설명된 대로 프로덕션 애플리케이션에서 번들 영역을 사용하려면 이 파일이 필요합니다.

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

이제 초기 데이터가 포함된 Realm의 복사본이 있으므로 번들로 제공되는 Realm 파일을 프로덕션 애플리케이션에 추가합니다. 번들 Realm을 배치하는 위치는 iOS 및 Android 빌드에 따라 다릅니다.

  1. React Native에서 생성한 android 폴더를 Android Studio에서 엽니다.

  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. 번들 영역 파일 을 찾아 추가합니다. 기본값 설정을 변경하지 않은 다음 Finish 버튼을 선택합니다.

3

이제 영역 이 번들로 제공되며 사용자가 앱 을 다운로드할 때 포함됩니다. 번들 Realm 파일 을 앱의 문서 디렉토리 에 추가하려면 Realm .copyBundledRealmFiles( ) 영역 을 열기 전에 .

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 구성