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。
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 を返す
});
定義: Managed_primary_key.happ:72
ライブ オブジェクト: リアクティブ アプリの構築
Realm のライブ オブジェクトとは、どこでアップデートされたデータでも、どこでも自動的にアップデートされることを意味します。
auto realm =
db(std::move(config));
autodog =dog { .name = "Max" }
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を使用すると、ユーザー、デバイス、バックエンド間でデータをリアルタイムで簡単に同期できます。
auto user = app.login(realm::App::credentials::an Anonymous()).get()
自動邦土 =
db (
user .Flexible_sync_configuration())
オートメーションオートメーション= realm.results<Car> [curr>()]
Realm.write([+ckers](){
で(オートメーションおよび自動車 : 自動車){
auto.accelerate()
}
});
スタートガイド
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>