品質の良いアプリを短期間で

Realm Mobile Database

ソースコードは完全にオープンソースとして
公開されていて、無料で利用できます。
10万人以上のアクティブな開発者のみなさまに
支援されているモバイルデータベースです。

Realm Mobile Platform

リアルタイムの共同編集やオフラインファーストの
モバイル体験を実現できます。
クライアント、サーバーサイド両方の
データプラットフォーム。

無料で利用できます

双方向のデータ同期、リアルタイム共同編集, オフラインファースト、APIブリッジ、サーバープッシュ

世界中で利用されるアプリを
作ることは簡単ではありません

Realm Mobile Platformを利用すると、双方向のデータ同期やリアルタイムの共同編集といった複雑な機能を持ったアプリを短期間に作れるようになります。浮いた時間はサービスの本質的な機能の開発に使えます。

さらに詳しく

リアルタイムの共同編集を
たった10行以下のコードで実現します

Realm Mobile Platformのデモアプリケーションとデベロッパーエクスペリエンスをご覧ください

ビデオを再生

Realm Mobile Platform

モバイルアプリでデータ同期を可能にします。リアクティブなアプリをたった10行以下のコードで実現します。Realm Mobile Platformは、Realm Object ServerとRealm Mobile Databaseを統合した製品です。

さらに詳しく
// Authenticating the User
[RLMSyncUser logInWithCredentials:[RLMSyncCredentials credentialsWithGoogleToken:@"google token"]
                    authServerURL:[NSURL URLWithString:@"http://realm.example.com:9080"]
                     onCompletion:^(RLMSyncUser *user, NSError *error) {
  if (user) {
    // Opening a remote Realm
    NSURL *realmURL = [NSURL URLWithString:@"realm://realm.example.com:9080/~/userRealm"];
    RLMRealmConfiguration *config = [[RLMRealmConfiguration alloc] init];
    config.syncConfiguration = [[RLMSyncConfiguration alloc] initWithUser:user realmURL:realmURL];
    RLMRealm *realm = [RLMRealm realmWithConfiguration:config error:nil];
    // Any changes made to this Realm will be synced across all devices!
  } else if (error) {
    // handle error
  }
}];
// Authenticating the User
SyncUser.logIn(with: .google(token: "google token"),
               server: URL(string: "http://realm.example.com:9080")!)
{ user, error in
  if let user = user {
    // Opening a remote Realm
    let realmURL = URL(string: "realm://realm.example.com:9080/~/userRealm")!
    let config = Realm.Configuration(syncConfiguration: SyncConfiguration(user: user, realmURL: realmURL))
    let realm = try! Realm(configuration: config)
    // Any changes made to this Realm will be synced across all devices!
  } else if let error = error {
    // handle error
  }
}
// Authenticating the User
User user = User.login(Credentials.google("google token"),
                       "http://realm.example.co:9080/auth");
// Opening a remote Realm
String realmURL = "realm://realm.example.com:9080/~/userRealm";
SyncConfiguration configuration = new SyncConfiguration.Builder(user,
                                                                realmURL).build();
Realm realm = Realm.getInstance(syncConfiguration);
// Any changes made to this Realm will be synced across all devices!
// Coming Soon
// Coming Soon

Realm Mobile Database

品質の良いアプリには良いデータベースが必要です。Realm Mobile Databaseを使うことで、わずかな時間でアプリを開発できます。RealmオブジェクトデータベースはSQLiteやCore Dataをよりシンプルな形に置き換えます。そしてオープンソースです。

さらに詳しく
class Dog {}

Dog.schema = {
  name: 'Dog',
  properties: {
    name: 'string',
    age: 'int',
  }
};

let realm = new Realm();
realm.write(() => {
  realm.create('Dog', {name: 'Rex', age: 1});
});

let pups = realm.objects('Dog').filtered('age > 2');
@interface Dog : RLMObject
@property NSString *name;
@property NSInteger age;
@end
@implementation Dog
@end

Dog *dog = [Dog new];
dog.name = @"Rex";
dog.age = 1;

RLMRealm *realm = [RLMRealm defaultRealm];
[realm transactionWithBlock:^{
  [realm addObject:dog];
}];

RLMResults<Dog *> *allDogs = [Dog allObjects];
RLMResults<Dog *> *pups = [allDogs objectsWhere:@"age < 2"];
class Dog: Object {
  dynamic var name = ""
  dynamic var age = 0
}

let dog = Dog()
dog.name = "Rex"
dog.age = 1

let realm = try! Realm()
try! realm.write {
  realm.add(dog)
}

let pups = realm.objects(Dog.self).filter("age < 2")
public class Dog extends RealmObject {
  public String name;
  public int age;
}

Dog dog = new Dog();
dog.name = "Rex";
dog.age = 1;

Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
realm.copyToRealm(dog)
realm.commitTransaction();

RealmResults<Dog> pups = realm.where(Dog.class)
                               .lessThan("age", 2)
                               .findAll();
public class Dog : RealmObject 
{
  public string Name { get; set; }
  public int Age { get; set; }
}

var realm = Realm.GetInstance();
realm.Write(() => 
{
  var mydog = realm.CreateObject<Dog>();
  mydog.Name = "Rex";
  mydog.Age = 1;
});

var pups = realm.All<Dog>().Where(d => d.Age < 2);
Amazon、Google、Hipmunk、StarbucksなどRealmを利用している企業のロゴ

Realmは10億人の人びとに利用されています

フォーチュン500やフォーブス・グローバル2000に掲載されている企業や、AppStore総合1位を獲得したアプリでRealmが利用されています。Realmは毎日、数億の人びとに使用されています。

コミュニティ活動

コミュニティのページでは各プログラミング言語やプラットフォームの最新情報を提供しています。世界中のデベロッパーカンファレンスや、Realmが開催するミートアップ、イベントの様子を録画し、公開しています。より良いアプリを作るためにお役立てください。

なぜRealmが10万人以上の開発者に選ばれるのか、
使って確かめてください


使ってみる