Docs Menu
Docs Home
/ /
Atlas Device SDKs

Install Atlas Device SDK

On this page

  • Requirements
  • Install the SDK
  • Import the SDK
  • Platform-Specific Considerations

Atlas Device SDK for C++ enables client applications written in C++ to access data stored on devices and sync data with Atlas. This page details how to install the C++ SDK in your project and get started.

You can use the Atlas Device SDK for .NET to develop apps in C# .NET with several frameworks, including .NET MAUI, Xamarin, Avalonia UI, UWP, Unity, and others.

Use Atlas Device SDK to build a Flutter project or a standalone Dart project. This guide provides instructions for installing the SDK in a standalone Dart project. For details about installing the SDK in a Flutter project, refer to Install Atlas Device SDK for Flutter.

The Atlas Device SDK for JavaScript enables development of applications using the JavaScript and TypeScript languages. The JavaScript library is best suited for writing server-side applications. Your application could be one component in a wider stack that also includes iOS and Android apps.

The JavaScript library is not suitable for front-end application development.

The Atlas Device SDK for Kotlin supports the following platforms. Each has its own installation method and requirements:

  • Android

  • Kotlin Multiplatform (KMP)

Atlas Device SDK for Swift enables you to build iOS, macOS, tvOS, and watchOS applications using either the Swift or Objective-C programming languages. This page details how to install the SDK in your project and get started.

Atlas Device SDK for Swift enables you to build iOS, macOS, tvOS, and watchOS applications using either the Swift or Objective-C programming languages. This page details how to install the SDK in your project and get started.

The Atlas Device SDK for JavaScript enables development of applications using the JavaScript and TypeScript languages. The JavaScript library is best suited for writing server-side applications. Your application could be one component in a wider stack that also includes iOS and Android apps.

The JavaScript library is not suitable for front-end application development.

  • Minimum C++ standard: C++17.

  • For development on macOS: Xcode 11.x or later.

  • For development on Windows: Microsoft Visual C++ (MSVC).

  • Otherwise, we recommend git and CMake.

Before getting started, ensure you have installed Visual Studio:

For standalone Dart apps, you can install Dart in your development environment without Flutter. To learn how, refer to the official Dart Installation Guide.

The latest version of Atlas Device SDK requires Dart version 3.3.0 or later.

When using the SDK in a Flutter or standalone Dart project, you can build for the following platforms:

  • iOS

  • Android

  • macOS

  • Windows running on 64-bit architecture

  • Linux running on 64-bit architecture

Important

Unsupported Platforms

The SDK does not currently support the following platforms through the Dart or Flutter libraries:

  • Web

  • Windows running on ARM64 or 32-bit architectures

  • Linux running on ARM64 or 32-bit architectures

Visit the respective "Build for Platforms" page for more details about library and language support:

Before getting started, ensure your environment meets the following requirements:

  • Node.js version 12.x or later (including Node.js version 14)

  • Linux, macOS 10.8 (or later), or Windows 8 (or later)

Before getting started, ensure your development environment meets the following prerequisites:

  • Android Studio Bumblebee 2021.1.1 or higher.

  • JDK 11 or higher.

  • Kotlin Plugin for Android Studio, version 1.6.10 or higher.

  • An Android Virtual Device (AVD) using a supported CPU architecture.

Additionally, Kotlin Multiplatform (KMP) for mobile projects require the following:

For more details on setting up your KMP environment, refer to the official Kotlin Multiplatform for mobile documentation. To verify your environment setup, follow Kotlin's guide to checking your environment.

Tip

Kotlin Plugin Version

The Kotlin Multiplatform (KMP) ecosystem frequently changes. If you experience any issues installing the SDK, check your Kotlin Plugin version, since outdated plugins can lead to difficult to debug errors. To see which versions of the Kotlin Plugin are compatible with the SDK, refer to the Kotlin SDK changelog.

Kotlin Multiplatform (KMP) supports a wide range of application environments Refer also to Kotlin's Multiplatform Gradle DSL reference: Targets documentation.

The Kotlin library supports the following environments:

  • android

  • iosArm64

  • iosSimulatorArm64

  • iosX64

  • jvm

  • macosArm64

  • macosX64

The Kotlin library does not support the following environments:

  • androidNativeArm32

  • androidNativeArm64

  • androidNativeX86

  • androidNativeX64

  • iosArm32

  • js

  • linuxArm32Hfp

  • linuxArm64

  • linuxMips32

  • linuxMipsel32

  • linuxX64

  • mingwX64

  • mingwX86

  • tvosArm64

  • tvosSimulatorArm64

  • tvosX64

  • wasm32

  • watchosArm32

  • watchosArm64

  • watchosSimulatorArm64

  • watchosX86

  • watchosX64

If you want to build for an environment that the Kotlin library does not support, consider using one of the other libraries. For more information, refer to these "Build for Platform" pages:

Before getting started, ensure your development environment meets the following prerequisites:

  • Your project uses an Xcode version and minimum OS version that the library supports. Refer to Supported Target Environments on this page for more details.

  • Reflection is enabled in your project. The Swift SDK uses reflection to determine your model's properties. Your project must not set SWIFT_REFLECTION_METADATA_LEVEL = none, or the SDK cannot see properties in your model. Reflection is enabled by default if your project does not specifically set a level for this setting.

Important

There are special considerations when using the SDK with tvOS. See Build for tvOS for more information.

Changed in version 10.50.0: Minimum required Xcode version is 15.1

Supported OS
Realm Database
Atlas App Services
iOS 12.0+
X
X
macOS 10.14+
X
X
tvOS 12.0+
X
X
watchOS 4.0+
X
visionOS 1.0+
X
X

The SDK should only add around 5 to 8 MB to your app's download size. The releases we distribute are significantly larger because they include support for the iOS, watchOS and tvOS simulators, some debug symbols, and bitcode, all of which are stripped by the App Store automatically when apps are downloaded.

Before getting started, ensure your development environment meets the following prerequisites:

  • Your project uses an Xcode version and minimum OS version that the library supports. Refer to Supported Target Environments on this page for more details.

  • Reflection is enabled in your project. The Swift SDK uses reflection to determine your model's properties. Your project must not set SWIFT_REFLECTION_METADATA_LEVEL = none, or the SDK cannot see properties in your model. Reflection is enabled by default if your project does not specifically set a level for this setting.

Important

There are special considerations when using the SDK with tvOS. See Build for tvOS for more information.

Changed in version 10.50.0: Minimum required Xcode version is 15.1

Supported OS
Realm Database
Atlas App Services
iOS 12.0+
X
X
macOS 10.14+
X
X
tvOS 12.0+
X
X
watchOS 4.0+
X
visionOS 1.0+
X
X

The SDK should only add around 5 to 8 MB to your app's download size. The releases we distribute are significantly larger because they include support for the iOS, watchOS and tvOS simulators, some debug symbols, and bitcode, all of which are stripped by the App Store automatically when apps are downloaded.

Before getting started, ensure your environment meets the following requirements:

  • Node.js version 12.x or later (including Node.js version 14)

  • Linux, macOS 10.8 (or later), or Windows 8 (or later)

Tip

Atlas Device SDK and Realm

The SDK uses Realm Core database for data persistence on the device. When you install the SDK, the package names reflect Realm naming.

When developing with Xcode, you can use Swift Package Manager (SPM) to install the SDK's realm-cpp library.

1

In Xcode, select File > Add Packages....

2

Copy and paste the following into the search/input box.

https://github.com/realm/realm-cpp
3

Under Package Product, select realm-cpp-sdk. Under Add to Target, select the target you would like to add the SDK to. For example, the target might be the main executable of your app. Click Add Package.

You can use CMake with the FetchContent module to manage the SDK and its dependencies in your C++ project.

1

Create or modify your CMakeLists.txt in the root directory of your project:

  1. Add Include(FetchContent) to include the FetchContent module in your project build.

  2. Use FetchContent_Declare to locate the SDK dependency and specify the version tag you want to use.

  3. Use the FetchContent_MakeAvailable() command to check whether the named dependencies have been populated, and if not, populate them.

  4. Finally, target_link_libraries() links the SDK dependency to your target executable.

To get the most recent version tag, refer to the releases on GitHub: realm/realm-cpp.

Set the minimum C++ standard to 17 with set(CMAKE_CXX_STANDARD 17).

In a Windows install, add the required compiler flag:

if(MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zc:preprocessor /bigobj")
endif()

Example

cmake_minimum_required(VERSION 3.15)
project(MyDeviceSDKCppProject)
# Minimum C++ standard
set(CMAKE_CXX_STANDARD 17)
# In a Windows install, set these compiler flags:
if(MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zc:preprocessor /bigobj")
endif()
# Include the FetchContent module so you can download the C++ SDK
Include(FetchContent)
# Declare the version of the C++ SDK you want to download
FetchContent_Declare(
cpprealm
GIT_REPOSITORY https://github.com/realm/realm-cpp.git
GIT_TAG v1.0.0
)
# The MakeAvailable command ensures the named dependencies have been populated
FetchContent_MakeAvailable(cpprealm)
# Create an executable target called myApp with the source file main.cpp
add_executable(myApp main.cpp)
target_link_libraries(myApp PRIVATE cpprealm)
2

Run CMake in a gitignored directory, such as build, to generate the build configurations that you can then use to compile your app:

# build/ is in .gitignore
mkdir build
cd build
cmake .. # Create Makefile by reading the CMakeLists.txt in the parent directory (../)
make # Actually build the app

You can use CMake to generate more than simple Makefiles by using the -G flag. See the CMake documentation for more information.

Important

Install the SDK for all projects

If you have a multi-platform solution, be sure to install the SDK for all of the platform projects, even if the given project doesn't contain any SDK-specific code.

1

In the Solution Explorer, right-click your solution and select Manage NuGet Packages... to open the NuGet Package management window.

Open the NuGet Package management window.
click to enlarge

Note

Adding the package at the Solution level allows you to add it to every project in one step.

2

In the search bar, search for Realm. Select the result and click Add Package. If you are using Xamarin, you may be prompted to select which projects use the Realm package. Select all of the projects, and then click Ok.

1

In the Solution Explorer, right-click your solution and select Manage NuGet Packages for Solution... to open the NuGet Package management window.

Open the NuGet Package management window.
click to enlarge
2

In the search bar, search for Realm. Select the result and click Install. When prompted, select all projects and click Ok.

Search for Realm and add it to your project(s).
click to enlarge
1

To create a Dart project, run the following commands:

dart create <app_name>
cd <app_name>

For more information, refer to Dart's Get Started Guide for standalone Dart command-line and server applications.

2

To add the SDK to your project, run the following command:

dart pub add realm_dart

This downloads the realm_dart package, and adds it to your project.

In your pubspec.yaml file, you should see:

pubspec.yaml
dependencies:
realm_dart: <latest_version>

After the package is added, run the following command to install it:

dart run realm_dart install

This downloads and copies the required native binaries to the app directory.

To change the version of the SDK in your project, perform the following steps:

1

Update the package version in your pubspec.yaml file dependencies.

pubspec.yaml
dependencies:
realm_dart: <updated_version>
2

From the command line, run the following command to install the updated version:

dart pub upgrade realm_dart

Then, run the following command to install the updated SDK's native binaries:

dart run realm_dart install
3

Changes to the package version may affect the functionality of the object models. From the command line, run the following command to regenerate object models with new and updated functionality:

dart run realm_dart generate

Important

SDK v2.0.0 Breaking Change to Generated Files

SDK version 2.0.0 introduces an update to the builder, which impacts how files generate. In v2.0.0 and later, all generated files use the .realm.dart naming convention instead of .g.dart.

This is a breaking change for existing apps. For information on how to upgrade an existing app from an earlier SDK version to v2.0.0 or later, refer to Upgrade to Flutter SDK v2.0.0.

1

Create your Node.js project by creating a new directory for your project and running npm init in that directory. In the example below, replace MyApp with your desired project name. Answer all of the prompts to fill out the details of your project.

mkdir MyApp && cd MyApp && npm init
2

In your Node.js project directory, use the following command to add the SDK to your project:

npm install realm
3

TypeScript is a superset of JavaScript that adds static type checking and other features intended to make application-scale development more robust. If you'd like to use TypeScript, follow the TypeScript team's official Node Starter guide. The SDK supports TypeScript natively and integrates easily into a TypeScript project.

1

Add io.realm.kotlin, specifying the library version and apply false, to the list of plugins in your project-level Gradle build file, typically found at <project>/build.gradle:

Global build.gradle
plugins {
id 'io.realm.kotlin' version '1.16.0' apply false
}

Add the following to your app-level Gradle build file, typically found at <project>/app/build.gradle:

  • Add io.realm.kotlin to the list of plugins.

  • Add the following to the list of dependencies:

    • Add io.realm.kotlin:library-base to the dependencies block.

    • If using Device Sync in your application, add io.realm.kotlin:library-sync to the dependencies block.

  • To use coroutines with the SDK, add org.jetbrains.kotlinx:kotlinx-coroutines-core to the list of dependencies.

Module build.gradle
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id 'io.realm.kotlin'
}
android {
// ... build configuration settings
}
dependencies {
implementation 'io.realm.kotlin:library-base:1.16.0'
// If using Device Sync
implementation 'io.realm.kotlin:library-sync:1.16.0'
// If using coroutines with the SDK
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.0'
}
2

After updating the Gradle configuration, resolve the dependencies by clicking File > Sync Project with Gradle Files in the Android Studio menu bar. You can now use the SDK in your application.

1
  1. Add the following to your app-level Gradle build file, typically found at <project>/app/build.gradle:

    • Add io.realm.kotlin to the list of plugins.

    • Add the following to the list of dependencies:

      • Add io.realm.kotlin:library-base to the dependencies block.

      • If using Device Sync in your application, add io.realm.kotlin:library-sync to the dependencies block.

    • To use coroutines with the SDK, add org.jetbrains.kotlinx:kotlinx-coroutines-core to the list of dependencies.

    App build.gradle
    plugins {
    kotlin("multiplatform")
    kotlin("native.cocoapods")
    id("com.android.library")
    id("io.realm.kotlin") version "1.16.0"
    }
    version = "1.0"
    kotlin {
    android()
    iosX64()
    iosArm64()
    sourceSets {
    val commonMain by getting {
    dependencies {
    implementation("io.realm.kotlin:library-base:1.16.0")
    // If using Device Sync
    implementation("io.realm.kotlin:library-sync:1.16.0")
    // If using coroutines with the SDK
    implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.0")
    }
    }
    }
    }
  2. If you use any part of the SDK inside the Android module, add the following compile-time dependencies to your module-level Gradle build file, typically found at <project>/module/build.gradle:

    Android Module build.gradle
    dependencies {
    compileOnly("io.realm.kotlin:library-base:1.16.0")
    }
    // If using Device Sync
    dependencies {
    compileOnly("io.realm.kotlin:library-sync:1.16.0")
    }
2

After updating the Gradle configuration, resolve the dependencies by clicking File > Sync Project with Gradle Files in the Android Studio menu bar. You can now use the SDK in your application.

1

In Xcode, select File > Add Packages....

2

Copy and paste the following into the search/input box.

https://github.com/realm/realm-swift.git
3

In the options for the realm-swift package, we recommend setting the Dependency Rule to Up to Next Major Version, and enter the current Swift library version . Then, click Add Package.

4

Changed in version 10.49.3: Instead of adding both, only add one package.

Select either RealmSwift or Realm, then click Add Package.

  • If you use only Objective-C APIs, add Realm.

  • If you use Swift or Swift and Objective-C APIs, add RealmSwift.

5

To use the Privacy Manifest supplied by the SDK, build Realm or RealmSwift as a dynamic framework. If you build the library as a static framework, you must supply your own Privacy Manifest.

To build the library as a dynamic framework:

  1. In your project Targets, select your build target.

  2. Go to the General tab.

  3. Expand the Frameworks and Libraries element.

  4. For the Realm framework, change the Embed option from "Do Not Embed" to "Embed & Sign."

Now, Xcode builds Realm dynamically, and can provide the SDK-supplied Privacy Manifest.

If you are installing with CocoaPods, you need CocoaPods 1.10.1 or later.

1
2

If you do not already have a Podfile for your project, run pod init in the root directory of your project to create a Podfile for your project. A Podfile allows you to specify project dependencies to CocoaPods.

3

Add a use_frameworks! line to your Podfile if it is not already there.

Add the line pod 'Realm', '~>10' to your main and test targets.

When done, your Podfile should look similar to this:

platform :ios, '12.0'
target 'MyDeviceSDKProject' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# Pods for MyDeviceSDKProject
pod 'Realm', '~>10'
target 'MyRealmProjectTests' do
inherit! :search_paths
# Pods for testing
pod 'Realm', '~>10'
end
4

From the command line, run pod install to fetch the dependencies.

5

CocoaPods generates an .xcworkspace file for you. This file has all of the dependencies configured. From now on, open this file -- not the .xcodeproj file -- to work on your project.

Some developers experience build issues after installing the SDK via CocoaPods or Carthage. Common causes of these issues include:

  • Installation issues:

    • Initial install failed

    • Using an unsupported version of the dependency manager

  • Build tool issues:

    • Build tools have stale caches

    • Updating build tool versions

  • Making changes to your project setup, such as:

    • Adding a new target

    • Sharing dependencies across targets

A fix that often clears these issues is to delete derived data and clean the Xcode build folder.

1

Run these commands in the terminal, in the root of your project:

pod cache clean Realm
pod cache clean RealmSwift
pod deintegrate || rm -rf Pods
pod install --repo-update --verbose
# Assumes the default DerivedData location:
rm -rf ~/Library/Developer/Xcode/DerivedData
2

With your project open in Xcode, go to the Product drop-down menu, and select Clean Build Folder.

Select Product, then Clean Build Folder.
click to enlarge

If you are installing with Carthage, you need Carthage 0.33 or later.

1

Add the SDK as a dependency by appending the line github "realm/realm-swift" to your Cartfile.

You can create a Cartfile or append to an existing one by running the following command in your project directory:

echo 'github "realm/realm-swift"' >> Cartfile
2

From the command line, run carthage update --use-xcframeworks to fetch the dependencies.

3

Carthage places the built dependencies in the Carthage/Build directory.

Open your project's xcodeproj file in Xcode. Go to the Project Navigator panel and click your application name to open the project settings editor. Select the General tab.

In Finder, open the Carthage/Build/ directory. Drag the RealmSwift.xcframework and Realm.xcframework files found in that directory to the Frameworks, Libraries, and Embedded Content section of your project's General settings.

Drag the xcframework files into the Xcode project.
click to enlarge

Some developers experience build issues after installing the SDK via CocoaPods or Carthage. Common causes of these issues include:

  • Installation issues:

    • Initial install failed

    • Using an unsupported version of the dependency manager

  • Build tool issues:

    • Build tools have stale caches

    • Updating build tool versions

  • Making changes to your project setup, such as:

    • Adding a new target

    • Sharing dependencies across targets

A fix that often clears these issues is to delete derived data and clean the Xcode build folder.

1

Run these commands in the terminal, in the root of your project:

rm -rf Carthage
# Assumes default DerivedData location:
rm -rf ~/Library/Developer/Xcode/DerivedData
carthage update

Important

This will update all of your Carthage-managed dependencies, not just Atlas Device SDK.

2

With your project open in Xcode, go to the Product drop-down menu, and select Clean Build Folder.

Select Product, then Clean Build Folder.
click to enlarge
1

Download the latest release of the Swift library and extract the zip.

2

Drag Realm.xcframework and RealmSwift.xcframework (if using) to the File Navigator of your Xcode project. Select the Copy items if needed checkbox and press Finish.

Tip

If using the Objective-C API within a Swift project, we recommend you include both Realm Swift and Realm Objective-C in your project. Within your Swift files, you can access the Swift API and all required wrappers. Using the RealmSwift API in mixed Swift/Objective-C projects is possible because the vast majority of RealmSwift types are directly aliased from their Objective-C counterparts.

1

In Xcode, select File > Add Packages....

2

Copy and paste the following into the search/input box.

https://github.com/realm/realm-swift.git
3

In the options for the realm-swift package, we recommend setting the Dependency Rule to Up to Next Major Version, and enter the current Swift library version . Then, click Add Package.

4

Changed in version 10.49.3: Instead of adding both, only add one package.

Select either RealmSwift or Realm, then click Add Package.

  • If you use Swift or Swift and Objective-C APIs, add RealmSwift.

  • If you use only Objective-C APIs, add Realm.

5

To use the Privacy Manifest supplied by the SDK, build the library as a dynamic framework. If you build the library as a static framework, you must supply your own Privacy Manifest.

To build the library as a dynamic framework:

  1. In your project Targets, select your build target.

  2. Go to the General tab.

  3. Expand the Frameworks and Libraries element.

  4. For the RealmSwift framework, change the Embed option from "Do Not Embed" to "Embed & Sign."

Now, Xcode builds RealmSwift dynamically, and can provide the SDK-supplied Privacy Manifest.

If you are installing with CocoaPods, you need CocoaPods 1.10.1 or later.

1
2

If you do not already have a Podfile for your project, run pod init in the root directory of your project to create a Podfile for your project. A Podfile allows you to specify project dependencies to CocoaPods.

3

Add a use_frameworks! line to your Podfile if it is not already there.

Add the line pod 'RealmSwift', '~>10' to your main and test targets.

When done, your Podfile should look similar to this:

platform :ios, '12.0'
target 'MyDeviceSDKProject' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# Pods for MyDeviceSDKProject
pod 'RealmSwift', '~>10'
end
4

From the command line, run pod install to fetch the dependencies.

5

CocoaPods generates an .xcworkspace file for you. This file has all of the dependencies configured. From now on, open this file -- not the .xcodeproj file -- to work on your project.

Some developers experience build issues after installing the SDK via CocoaPods or Carthage. Common causes of these issues include:

  • Installation issues:

    • Initial install failed

    • Using an unsupported version of the dependency manager

  • Build tool issues:

    • Build tools have stale caches

    • Updating build tool versions

  • Making changes to your project setup, such as:

    • Adding a new target

    • Sharing dependencies across targets

A fix that often clears these issues is to delete derived data and clean the Xcode build folder.

1

Run these commands in the terminal, in the root of your project:

pod cache clean Realm
pod cache clean RealmSwift
pod deintegrate || rm -rf Pods
pod install --repo-update --verbose
# Assumes the default DerivedData location:
rm -rf ~/Library/Developer/Xcode/DerivedData
2

With your project open in Xcode, go to the Product drop-down menu, and select Clean Build Folder.

Select Product, then Clean Build Folder.
click to enlarge

If you are installing with Carthage, you need Carthage 0.33 or later.

1

Add the SDK as a dependency by appending the line github "realm/realm-swift" to your Cartfile.

You can create a Cartfile or append to an existing one by running the following command in your project directory:

echo 'github "realm/realm-swift"' >> Cartfile
2

From the command line, run carthage update --use-xcframeworks to fetch the dependencies.

3

Carthage places the built dependencies in the Carthage/Build directory.

Open your project's xcodeproj file in Xcode. Go to the Project Navigator panel and click your application name to open the project settings editor. Select the General tab.

In Finder, open the Carthage/Build/ directory. Drag the RealmSwift.xcframework and Realm.xcframework files found in that directory to the Frameworks, Libraries, and Embedded Content section of your project's General settings.

Drag the xcframework files into the Xcode project.
click to enlarge

Some developers experience build issues after installing the SDK via CocoaPods or Carthage. Common causes of these issues include:

  • Installation issues:

    • Initial install failed

    • Using an unsupported version of the dependency manager

  • Build tool issues:

    • Build tools have stale caches

    • Updating build tool versions

  • Making changes to your project setup, such as:

    • Adding a new target

    • Sharing dependencies across targets

A fix that often clears these issues is to delete derived data and clean the Xcode build folder.

1

Run these commands in the terminal, in the root of your project:

rm -rf Carthage
# Assumes default DerivedData location:
rm -rf ~/Library/Developer/Xcode/DerivedData
carthage update

Important

This will update all of your Carthage-managed dependencies, not just Atlas Device SDK.

2

With your project open in Xcode, go to the Product drop-down menu, and select Clean Build Folder.

Select Product, then Clean Build Folder.
click to enlarge
1

Download the latest release of the Swift library and extract the zip.

2

Drag Realm.xcframework and RealmSwift.xcframework (if using) to the File Navigator of your Xcode project. Select the Copy items if needed checkbox and press Finish.

Tip

If using the Objective-C API within a Swift project, we recommend you include both Realm Swift and Realm Objective-C in your project. Within your Swift files, you can access the Swift API and all required wrappers. Using the RealmSwift API in mixed Swift/Objective-C projects is possible because the vast majority of RealmSwift types are directly aliased from their Objective-C counterparts.

1

Create your Node.js project by creating a new directory for your project and running npm init in that directory. In the example below, replace MyApp with your desired project name. Answer all of the prompts to fill out the details of your project.

mkdir MyApp && cd MyApp && npm init
2

In your Node.js project directory, use the following command to add the SDK to your project:

npm install realm
3

TypeScript is a superset of JavaScript that adds static type checking and other features intended to make application-scale development more robust. If you'd like to use TypeScript, follow the TypeScript team's official Node Starter guide. The SDK supports TypeScript natively and integrates easily into a TypeScript project.

Tip

Atlas Device SDK and Realm

The SDK uses Realm Core database for data persistence on the device. When you import the SDK, the package names reflect Realm naming.

Make the SDK available in your code by including the cpprealm/sdk.hpp header in the translation unit where you want to use it.

Add the following line to the top of your source files to use the SDK:

Add the following line to the top of your source files to use the SDK:

Add the following line to the top of your source files (JavaScript or TypeScript) where you want to use the SDK:

In the files where you use the SDK, add the appropriate imports for the APIs you're using.

The Kotlin library APIs are divided into two modules:

  • Realm Kotlin SDK: APIs that deal with device database functionality, such as modeling data, reacting to changes, and type serializers.

  • Realm Kotlin SDK - Sync: APIs that deal with connecting to MongoDB for Device Sync, user authentication, calling an Atlas Function, and accessing MongoDB Atlas.

Refer to the API documentation for each respective module for API details.

Add the following line at the top of your source files to use the SDK:

Within your Swift files, you can access the Swift APIs and all required wrappers. The vast majority of RealmSwift types are directly aliased from their Objective-C counterparts.

In some cases, the Swift API reference documentation does not include details for the underlying Objective-C counterparts. You may need to drop down to the Objective-C API reference for more details.

Add the following line at the top of your source files to use the SDK:

Add the following line to the top of your source files (JavaScript or TypeScript) where you want to use the SDK:

#include <cpprealm/sdk.hpp>
using Realms;
ExampleFile.dart
import 'package:realm_dart/realm.dart';
import Realm from "realm";
// The documentation does not currently have this code example in Kotlin.
// Please refer to the other languages or related pages for example code.
#include <Realm/Realm.h>
import RealmSwift
import Realm from "realm";

For details about installing the SDK and building for a specific platform, refer to the relevant platform pages:

When building for Apple platforms, Apple requires any apps or third-party SDKs that use required reasons APIs to provide a privacy manifest. The manifest contains details about the app's or SDK's data collection and use practices, and it must be included when submitting new apps or app updates to the Apple App Store.

Some of the SDK language and framework libraries provide a privacy manifest to streamline this process. The .NET library does not provide a privacy manifest. If your application is a cross-platform app that you intend to submit to the Apple App Store, you may be required to provide your own version of this privacy manifest.

For details, refer to The Atlas Device SDK Apple Privacy Manifest.

When building for Apple platforms, Apple requires any apps or third-party SDKs that use required reasons APIs to provide a privacy manifest. The manifest contains details about the app's or SDK's data collection and use practices, and it must be included when submitting new apps or app updates to the Apple App Store.

Some of the SDK language and framework libraries provide a privacy manifest to streamline this process. Starting in version 2.2.0, the Dart and Flutter libraries provide a privacy manifest.

For details, refer to The Atlas Device SDK Apple Privacy Manifest.

The installation instructions on this page assume you're using the JavaScript library in a server-side environment. For instructions installing the library for Internet of Things (IoT) devices, refer to Build for IoT.

  • Front-end Web Applications: due to limitations of the browser environment, it is not possible to build a browser-based web app with this library. For front-end web applications, refer to Build for Web.

  • Mobile App Development: For cross-platform mobile app development, refer to Build with React Native.

When building for Apple platforms, Apple requires any apps or third-party SDKs that use required reasons APIs to provide a privacy manifest. The manifest contains details about the app's or SDK's data collection and use practices, and it must be included when submitting new apps or app updates to the Apple App Store.

Some of the SDK language and framework libraries provide a privacy manifest to streamline this process. The Kotlin library does not provide a privacy manifest. If your application is a cross-platform app that you intend to submit to the Apple App Store, you may be required to provide your own version of this privacy manifest.

For details, refer to The Atlas Device SDK Apple Privacy Manifest.

Apple requires any apps or third-party SDKs that use required reasons APIs to provide a privacy manifest. The manifest contains details about the app's or SDK's data collection and use practices, and it must be included when submitting new apps or app updates to the Apple App Store.

The Swift and Objective-C libraries provide a privacy manifest to streamline this process.

To include these manifests in a build target that uses the Realm library, you must build Realm as a dynamic framework. For details, refer to the Swift Package Manager Installation instructions step (Optional) Build RealmSwift as a Dynamic Framework.

For additional details, refer to The Atlas Device SDK Apple Privacy Manifest.

The Swift SDK supports Swift's concurrency-related language features. For best practices on using the Swift SDK's concurrency features, refer to the documentation below.

Starting with Swift SDK Versions 10.15.0 and 10.16.0, many of the SDK's APIs support the Swift async/await syntax. Projects must meet these requirements:

Swift SDK Version
Swift Version Requirement
Supported OS
10.25.0
Swift 5.6
iOS 13.x
10.15.0 or 10.16.0
Swift 5.5
iOS 15.x

If your app accesses the SDK in an async/await context, mark the code with @MainActor to avoid threading-related crashes.

For more information about async/await support in the Swift SDK, refer to Swift Concurrency: Async/Await APIs.

The Swift SDK supports actor-isolated realm instances. For more information, refer to Use Atlas Device SDK for Swift with Actors.

Apple requires any apps or third-party SDKs that use required reasons APIs to provide a privacy manifest. The manifest contains details about the app's or SDK's data collection and use practices, and it must be included when submitting new apps or app updates to the Apple App Store.

The Swift and Objective-C libraries provide a privacy manifest to streamline this process.

To include these manifests in a build target that uses RealmSwift, you must build RealmSwift as a dynamic framework. For details, refer to the Swift Package Manager Installation instructions step (Optional) Build RealmSwift as a Dynamic Framework.

For additional details, refer to The Atlas Device SDK Apple Privacy Manifest.

The installation instructions on this page assume you're using the JavaScript library in a server-side environment. For instructions installing the library for Internet of Things (IoT) devices, refer to Build for IoT.

  • Front-end Web Applications: due to limitations of the browser environment, it is not possible to build a browser-based web app with this library. For front-end web applications, refer to Build for Web.

  • Mobile App Development: For cross-platform mobile app development, refer to Build with React Native.

Back

Introduction

Next

Quick Start