Realm Blog

Realm Mobile Platformのご紹介

 

イントロダクション (0:00)

Realmについて関心があった方々には、Realm Mobile Platformがやってくるのは分かっていたかもしれません。少なくとも2年以上の歳月をかけたプロジェクトでしたので、調査の段階からかなり大変でした。

Realmの目標は、開発者がより優れたアプリを簡単に開発できるようにすることでした。驚くようなライブ体験やインタラクティブな機能を備えていて、迅速かつ簡単に構築できるものです。今このようなものを作るのは苦労します。

Realm Mobile Database (0:58)

Realmにはとても長い歴史があり、今ではすばらしいことを成果をあげています。オフィスはサンフランシスコやコペンハーゲンにあります(Realmはデンマークから始まりました)。社員は50名ほどいて、投資を受けている段階です。しかし、最初はこうではありませんでした。デンマークにいながらモバイルデータベースを作るというクレイジーなアイデアを持っていた私と共同創業者だけではじまったのは面白いでしょう。

まずY Combinatorに応募しました。Y Combinatorに応募すれば、みんな我々のことを知っているし、プロフィールにマッチした人がいるなどと言うのですが、私たちは二人ともずっとデンマークで一人で座っているような人でした。誰にも知られていなかったし、自分たちのスキルと、ノキアで長く携帯の仕事をしていたということ以外に資格はありませんでした。私たちは全く無名で、とても素朴でした。

それでも、アプリのビデオを送ると、受け取ってもらえたことには驚きました!これは長い話になりますが、たくさん努力して、あらゆるものを稼働させました。モバイルデータベースを作り始めたのです。私たちがやりたいことの核となるエンジンでした。

若い頃、「どれぐらいの時間がかかるだろうか」と考え始めました。この分野で多くの経験を積んでいたので、売れるようになるまでには半年ほどかかると見積もりました。そして数年後、実際、まともな製品になっています!2014年に会社を設立してからおよそ3年後にローンチしました。組み込みデータベースを構築するのには長い時間がかかります(特に、それが良いものの場合)。私たちが始めたときにはわからなかったことは、今思えばおそらく良いことです。なぜなら、何も始まっていないかもしれないからです。そして今はここにいます。最高です!

今は、この技術を適切に整え、開発し、すべてオープンソース化しました。これはとてもすごいことです。始めたときからオープンソース化することを約束していました。そして今、みなさんにRealmで何でもしたいことをしていただけます。世界に物を与えるのはいつでも楽しいです。

私が最も満足しているのは、こんなにたくさんの人がRealmを愛してくれていることです。 Realmがいかにクールかということを語っていただいているツイートやフィードバックがたくさんあります。Realmはまた、いたるところで使われています。素晴らしいです。たくさんのアプリを変えてきたと自負しています!

Realm Mobile Platform (5:04)

Realm Mobile Databaseをリリースしてから、次の段階に進む必要がありました。クールなデータベースを作って無料で提供するのはすばらしいことなのですが、それでは持続する会社を作ることにはなりません。Realm Mobile Platformが必要だったのです。

みなさん知らないと思いますが、私の会社でテキストエディタを作っており、Realmの元々のインスピレーションはあったのです。(Gitが作られる前の)Gitを組み込んだコラボレーションテキストエディタでした。リアルタイムコラボレーションをしたいと思っていました。私が探していたタイプのリアルタイムコラボレーションを行うのに十分な速さのデータベースはなかったので、自分のために作りたかったのです。それを作り始めましたが、全体の構想としては、人々がリアルタイムにデータを共有できる理想的なデータベースを構築することでした。実際にデータベースを作る必要があるため、時間がかかります。

同期に対してはたくさんのリクエストがありました。たくさんの人たちが、いつやって来るのかを知りたがっていました。今、リアルタイムで動作して、アップデートができて、リアクティブなものがほしいと思っているでしょう。今はアプリでリアルタイムに動くものを作るのは難しいです。UIにデータを接続するだけで、更新しなければなりません。Realm Mobile Platformでは、ほぼすべてのコードでこれらの機能を使うことができます。これは簡単です。

すべてのオブジェクトを作成してUIに接続するだけで、動作するためのリアクティブなセットアップが必要です。私の元のビジョンでは、それは連携できるものでなければなりません。誰もが携帯電話を持っているので、みなさんは連動することを望んでいます。すべてのアプリは連携している必要があります。猫の写真を共有するだけではなく、作るのに役立つはずです。ユーザーがすることを助けられる高品質のアプリを作る必要があります。誰もがオンラインでもオフラインでも機能するシームレスな体験をしたいと考えています。これがビジョンであり、ユーザーから聞いた声です。

Realm Mobile Platformは、データベースと同じものです。デバイス上に実際のデータベースを持っている場合にのみオフラインで行うことができます。これは重要なことです。それ以外の場合は、いつも失敗し、UXはよくありません。この魔法はあなたがデータベースを持つことができるということですが、データベースは単なるウェブページです。ディスク上のファイルパスを使ってデータベースを開くのではなく、URLを使ってファイルを開くだけです。Shared Realmを開き、それを1つ、10個、または数百個開くことができます。同じURLを開く人は、同時に同じデータをリアルタイムで持ちます。非常にシンプルなコンセプトですが、実際に作業するときはとても驚きます。

この構想は、データベースがオフラインであることです。実際のオブジェクトデータベースだからです。これは、OM層を持つSQLデータベースではなく、矛盾したデータで前後にデータをコピーします。リレーショナルデータベースなので、すべてのものにリンクすることができます。反応のあることを可能にするチェーン通知もあります。これで、ネットワーク処理を完全に抽象化できます。通信について考えるのではなく、URLでRealmを開くだけで、同じRealmを開いた人と勝手に同期します。

他のクールなものとしては、データベースとネットワークの両方で、今日あなたが間違いなく望んでいる暗号化が含まれます。これはリアルタイム同期を行い、実際にはイベント処理が行われるため、サーバー上でコードを実行し、応答の変化を見ることができます。

もちろん、実際の魔法は自動コンフリクト解決にあります。あなたが変更を調整できるという事実です。手動ではなく、自動コンフリクト解決を使うするのはなぜでしょう?問題は、手作業によるコンフリクトの解消を行うと、物事が止まるだけで実際にリアルタイムに行うことができないということです。本当にリアルタイムでそれが行なわれるようにしたいので、自動でなければなりません。

実際にスキーマを変えることができます。データをデバイスにプッシュでき、イベントフレームで既存のインフラに導入できます。すべてのデバイスがサーバーに接続しています。サーバーには、すべての自動コンフリクト解決が機能する同期エンジンがあります。これは、サーバー上でコードを実行するイベントフレームワークを持っています。もちろんダッシュボードがあるので、何が起きているのかを見ることができます。認証とアクセス制御があり、すべてのRealmがあります。すべてのデバイスにはそれぞれ固有のRealmがあり、Realmはすべてのデバイスで共有されます。欲しい数だけRealmを持つことができます!これにより、スケールアップできるようになり、数百万のRealmを持つことができます。基本的には、それらの周りにデータを広げることになります。他のサーバーにも接続できるため、バックエンドのデータベースやAPIを使用している場合は、実際にそれらのコネクタに接続することができます。既存のインフラに統合されます。

ライブオブジェクト (11:09)

これを可能にする重要なことは、すべてオブジェクトの下にあるという考え方です。それはオブジェクトであり、オブジェクトはライブです。すでにRealmを使用している場合は、複数のスレッドを使用していても、複数のスレッドを変更することはできますが、それでも安全であれば、他のスレッドに更新が表示されます。私たちはさらに一歩踏み出し、それはネットワークでも起こると言っておきます。複数のデバイスを持つことができ、すべてオブジェクトを更新しますが、いつも同じことです。ただのオブジェクトであり、変化します。オブジェクトはデータモデルであり、実際にメンタルモデルを単純化します。これは、アプリを構築し、維持することをとても簡単にします。この考えは、通常はそれを行うのと同じ構文でオブジェクトを正確に定義できるということです。

これらのオブジェクトは通常のオブジェクトのように作成しますが、突然それをスーパーチャージするようなものです。トランザクションとクエリを実行し、永続性を持たせることができ、すべてのトランザクションを自由に取得できます。それだけでうまくいきます。さらに、まだデータベースとしていっぱいですが、それはObservableです。これらの機能を使用すると、アプリで必要なものを作成することができます。

Realm Mobile Platformはすぐに利用できるので、今すぐダウンロードしましょう!開発者向けには完全無料版があります。自分のハードウェア上で実行し、必要なものを構築することができます。

また、エンタープライズのニーズを解決し、バックエンドとの統合や、サーバー側の処理、カスタム認証が強化された商用版(会社で使ってる方必見!)があります。しかし、無料版でも超強力です!レート制限なしでアプリを完全に構築することができます。あなたがしたいことは何でも、いつでも使うことができます。


Alexander Stigsen

Alexander is CEO & co-founder of Realm, a mobile platform that makes it easy to build modern reactive apps with sophisticated features. He’s driven by the mission to build a data layer that can deliver the full potential of the mobile internet. Alexander was a former Nokia systems engineer before launching Realm out of Y-Combinator with co-founder Bjarne Christiansen.

記事の更新情報を受け取る