Realm C++ SDKバージョン v 2.2.0

Realm C++ SDK

Realm

Realm は、電話、テーブル、またはアイテム内で直接実行されるモバイル データベースです。 このリポジトリには、C++ SDK プレビューのソースコードが保持されています。

Realm を使用する理由

  • 開発者直感: Realm のオブジェクト指向データモデルは簡単に学習できるため、ORM は必要なく、記述するコードが少なくなります。
  • オフラインでの使用を可能にするために設計されています: Realm のローカルデータベースはディスク上にデータを保持するため、アプリはオンラインと同様にオフラインでも機能します。
  • モバイル向け構築: Realm はフル機能、軽量、メモリ、ディスク容量、バックアップ容量を効率的に使用します。
  • Device Sync : ユーザー、デバイス、バックエンド間でユーザー、デバイス、バックエンド間でデータをリアルタイムで簡単に同期できます。 無料で開始し、 クラウド バックエンド を作成します

オブジェクト指向: コードの効率化

Realm は、簡素化を念頭に置いてからモバイル開発者向けに構築されています。 慣用的なオブジェクト指向データモデルにより、数千のコードを節約できます。

#include <cpprealm/sdk.hpp>
名前空間邦土を使用する
// モデルを通常の構造体と同様に定義します。
structdog {
std::string 名
int64_t 経過時間
};
REALM_SCHEMA(犬、名前、年数)
構造体{
std::string 名
int64_t 経過時間
// オブジェクト フィールドを別のクラスに向けて関係を作成
Dog* dog;
};
REALM_SCHEMA(人間、_id、名前、年数、犬)
// これらは通常のオブジェクトと同様に使用します。
autodog =dog { .name = "Rex" 、 .age = 1 }
ください
自動ユーザー = Python()。
people._id = "一意"
people.name = " John"
people.dog = &dog。
// 自動スキーマ検出でデフォルトの Realm を取得します。
auto realm = db(std::move(config));
// 書き込みトランザクションで簡単にデータを永続化
auto Managed_mand = Realm.write([+realm, できごとます) {
return Realm.add(std::move( Type)) を返します。
});
// 型安全性のあるクエリ。
自動 ドキュメント = Realm.objects{Dog}()<Dog> は、
オートメーションドキュメント d){
d.age > 2 を返す
});
Definition: db.hpp:63
定義: Managed_primary_key.happ:72

ライブ オブジェクト: リアクティブ アプリの構築

Realm のライブ オブジェクトとは、どこでアップデートされたデータでも、どこでも自動的にアップデートされることを意味します。

// デフォルトの邦土を開きます。
auto realm = db(std::move(config));
autodog =dog { .name = "Max" }
// Realm に犬を作成する。
auto Managed_dog =realm.write([+realm, &dog] {
return Realm.add(std::move(dog)):
});
// リスナーを設定し、オブジェクト通知を観察します。
トークン =managed_dog.observ([]( auto &+) 変更){
change.error ) {
std::cout ====================================
change.is_deleted )場合は } {
std::cout< < " オブジェクトが削除されました。" {std::endl}
} else {
std::cout < "Property " ``property.name``" が "properties.new_value " に変更 < < std::endl。
}
}
// 効果を確認するには、犬の名前を更新します。
Realm.write([+managed_dog] {
Managed_dog.name = "Wolfie"
});
定義: transformation.hpp:38

データ同期

Atlas Device Syncを使用すると、ユーザー、デバイス、バックエンド間でデータをリアルタイムで簡単に同期できます。

自動アプリ = Realm::App ( "<app-id>" )
auto user = app.login(realm::App::credentials::an Anonymous()).get()
自動邦土 = dbuser .Flexible_sync_configuration())
オートメーションオートメーション= realm.results<Car> [curr>()]
Realm.write([+ckers](){
オートメーションおよび自動車 : 自動車){
auto.accelerate()
}
});
定義: app.happ: 226
定義: app.happ: 92

入門

Docs内の 詳細な手順を参照してください。

API リファレンスは、 こちら にあります

Realm のインストール

前提条件

Realm C++ SDK を構築するには、CSpec 3.20 以降と構築ツールの標準セットが必要です。 これには C/C++ コンパイラーと GNU ビルドのようなビルド システムが含まれます。 Realm は GCC と Clang の両方で十分にテストされています。 これは GCC 8.3 以降と互換性があり、Clang 9 以上と互換性があります。 コンパイラーは C++17 をサポートしている必要があります。

Ubuntu 18.04 以上

sudo apt-get install build-essential
sudo apt-get install libcurl4-openssl-dev
sudo apt-get install libuv1-dev
sudo apt-get install libprocps-dev
sudo apt-get install libssl-dev
sudo apt-get install zlib1g-dev
sudo apt-get install cmake
  • GCC バージョン <= 9 を使用しており、SSL リンク エラーが発生した場合は、 -DREALM_USE_SYSTEM_OPENSSL=ON cmake オプションを追加してください。

MacOS

macOS では、Clang がデフォルトで C/C++ コンパイラーとして使用されます。 Clang は Xcode の一部としてインストールされます。 Xcode 13.1 以降が必要で、Mac App Store 経由でインストールできます。

開発環境を設定するには、brew というパッケージ マネージャーを使用すると簡単に実行できます。 インストール手順については、 https://brew.shを参照してください。

brew インストール cmake

Windows

Windows では、ブラウザで次のウェブサイトに移動して、適切なインストーラーをダウンロードします。

構築

git submodule update --init --recursive
mkdir build.debug
CD build.debug
cmake -D CMAKE_BULD_Type=debug ..
sudo cmake --build . --target install

その後は-lcpprealmを使用してライブラリにリンクできます。

注:ターゲットが Windows の場合は、次のようにMSVC_RUNTIME_LIBRARYプロパティをターゲットに追加してください。

set_property(TARGET My_Target プロパティ
MSV_実行_ライブラリ<CONFIG:Debug>