私は、サードパーティに販売される静的ライブラリであるSDKを開発中です。この静的ライブラリは、データストアとしてRelamを使用します。Relamの複数のインスタンスを維持
私のクライアントにも彼のアプリにRelamを使ったデータストアがあるというシナリオを考えています。自分のSDKを組み込んでいるため、データストアを変更/移行する必要はありません。
Relamを使用する場合、複数のデータストア/インスタンスを使用できますか?
この状況を処理する他の方法はありますか?
私は、サードパーティに販売される静的ライブラリであるSDKを開発中です。この静的ライブラリは、データストアとしてRelamを使用します。Relamの複数のインスタンスを維持
私のクライアントにも彼のアプリにRelamを使ったデータストアがあるというシナリオを考えています。自分のSDKを組み込んでいるため、データストアを変更/移行する必要はありません。
Relamを使用する場合、複数のデータストア/インスタンスを使用できますか?
この状況を処理する他の方法はありますか?
私は2つの部分でこれをお答えします:
パート1 - あなたは内部ライブラリーでレルムを使用している、とあなたがレルムの使用がかもしれないと心配している場合は、コードのアーキテクチャ
Realmを使用している場合はユーザーのコードに流出するため、これを軽減する方法があります。
RLMRealmConfiguration
を使用すると、大部分のRealm実装を適切に分離することができます。 fileURL
プロパティを使用すると、Realmファイルが保存される場所を明示的に指定できます。objectClasses
プロパティでは、自分のRLMObject
クラスのみが保存されることを明示的に定義できます。
これはテストが必要な場合もありますが、それとは逆のこともあります。 RealmはObjective-Cリフレクションを使用して、デフォルトですべてRLMObject
クラスを追加します。そのため、ユーザが設定にobjectClasses
も指定しない限り、ライブラリのモデルオブジェクトのスキーマがRealmファイルに表示されることがあります。これは無害ですが、ユーザーにとっては不思議に思えるかもしれません。
パート2 - 流通
それは1つの静的バイナリに同じフレームワークの2つのコピーを持っているのは素晴らしいではありません。特に、ユーザーがあなたのライブラリにあるものよりも新しいバージョンのRealmを使用し始めることが考えられる場合、したがって、私はRealmをライブラリの動的なフレームワークの依存関係として保つことをお勧めします。ライブラリとユーザのコードの両方が同じコードベースをターゲットにすることができます。
Relamのドキュメントhttps://realm.io/docs/objc/latest/#realm-configurationを参照していました。別の構成でこれを解決できますか? – rustylepord