Realm Professional Editionのリリース: モバイルアプリにおけるリアクティブプラットフォーム
Realmのミッションは、デベロッパーのみなさまがより良いアプリを迅速に開発できるようにすることです。デベロッパーがRealmのライブオブジェクトを用いて簡単にモバイルアプリを開発できるようになり、リアルタイムで自動的にデータが同期され、データの変更に応じて簡単にサーバーサイドのロジックを動かすことができるといった、モバイルのインターネットに精巧に統合されたデータレイヤーの明確なビジョンを私たちは描いています。そのビジョンを現実のものにするために、Realm Mobile DatabaseとRealm Mobile Platformの機能を継続的に改善し続けてきました。
そのビジョンをさらに推し進め、より簡単にRealmをみなさまのアプリで利用できるようになる2つのお知らせがあります。一つ目は、本日、新しい価格設定でより利用しやすくなったRealm Mobile Platform Professional Editionをリリースします。もう一つは、IBMの協力によって実現したScannerというProfessional Editionのためのデモアプリケーションです。ScannerはIBM Watsonを用いて高度に洗練された画像解析を行います。画像解析と連携するリアクティブなモバイルアプリのテンプレートしても利用できるよう、オープンソースで提供されます。
RMP Professional Edition
Professional Editionは中規模の企業向けにデザインされた新しいライセンス形態です。Professional Editionではリアルタイムの自動データ同期などのDeveloper Editionで利用できるすべての機能に加え、イベントハンドリングやサーバーサイドのデータアクセスといったEnterprise Editionに含まれる機能も利用できます(詳しくは後述します)。Professional Editionは同期の機能やリアルタイム性は欲しいけれども、Enterprise Editionに求められるような大規模なスケーラビリティは必要ない、といった方に最適です。Professional Editionは本日よりダウンロードできます。60日間は無料で試用できます。
Professional Editionのリリースは、Realmの機能をダウンストリームに継続的に移行し、新しい価格設定とパッケージングにより、さらに多くのデベロッパーの方々に利用していただけるという、非常に長期にわたって続くパターンを確立します。 RMPには3つのバージョンがあります。Developer Editionは、完全に無料で誰でも利用できます。プロフェッショナル版は、中規模の企業を対象とし、月間1500ドルから利用可能です。数万人の同時接続ユーザーを処理できます。Enterprise Editionは、最大のユーザー数を扱うことができ、ユースケースの規模に基づいて価格設定されます。すべての機能が利用できます。私たちは、みなさまのニーズを理解するために緊密に連携していますので、各エディションと価格についてご質問があれば、こちらまでご連絡ください。
Scannerの紹介: IBMとRealmのコラボレーション
Professional Editionの初期バージョンをIBMに公開すると、すぐに非常にクリエイティブなアプリを作ってくれました。それがScannerです。Scannerは画像分類、顔検出、テキスト認識などの洗練されたサーバーサイドの画像解析を用いて、ユーザーが撮影したものは何でも解析することができるRealmのデモアプリケーションです。ScannerはIBM WatsonのVisual Recognition APIに加え、Professional Editionの重要な機能であるリアルタイムデータ同期とイベントハンドリングを利用しています。さまざまなリアルタイム性を必要とするアプリでこのようなコードが利用できるであろうことを想像してみてください。VRアプリにおける位置検出、セキュリティ分野の顔認識システム、科学研究における画像分類、小売業で用いられるラベルの自動認識などです。これからは想像するだけではなく、実際にプログラミングすることができるようになります。Scannerアプリのコード(SwiftとAndroid)はオープンソースプロジェクトとして公開されています。先にチュートリアルを読むのもいいでしょう。IBMチームからは私たちとのコラボレーションについてのブログエントリが公開されていて、そこにはデモアプリの動画も含まれています。
Scannerが採用しているアーキテクチャはRealm Mobile Platformを使う上で非常によく使われるパターンです。これをAPI mobilizationと名付けました(一般的には「API bridging」とも言われています)。反応が良く、優れたUXが求められるモバイルアプリで必要とされますが、そのようなアプリはしばしば同時に既存のAPIと連携することも求められます。既存のAPIはIBM WatsonのようなモダンなAPIの場合も、古いレガシーシステムと連携しなければならない場合もあります。モバイルデベロッパーにとって、もっとも困難なことは、すべてのネットワークアクセスは非同期で行われ、通信はいつでも失敗する恐れがあることです。複雑なビジネスロジックを処理するために、決まった順序でAPIアクセスを行わなければならないプロジェクトをたくさん知っています。ネットワークアクセスを管理し、非常の多くの異常ケースに対応するために、膨大なコードが必要になります。その上、APIから取得したデータをJSONのような別の形式に変換する際には、シリアライゼーション/デシリアライゼーションが必要で、データ構造が変わった際には新たな不具合を発生させてしまう恐れがあります。
API mobilizationはRealm Platformをミドルウェアとして利用します。モバイルアプリケーションはRealm DatabaseをiOSやAndroidといったクライアントサイドから利用します。Realm Platformによってデータは自動的にサーバーサイドに同期されます。サーバーサイドではRealm Platformのイベントハンドリングを利用して、クライアントサイドからデータが変更されたことを検知します(例: 新しい画像がアップロードされた)。データをWatsonによって処理し、結果をサーバーサイドのRealmに保存すると、それは自動的にクライアントサイドにも反映されます。このようにすることで、ネットワークアクセスや、データ変換のコードをアプリケーションから取り除くことができます。Realm Platformはデータ転送における複雑な処理をすべて肩代わりするので、デベロッパーのみなさまは、使い慣れたプログラミング言語でローカルのRealm Databaseを操作するだけで済むようになります。
使ってみてください
デベロッパーのみなさまがRealmを使ってアプリを開発してくれることを楽しみにしています。無料トライアルのProfessional Editionをダウンロードして使ってみてください。Scannerアプリを動かしてみたり、自分のアプリに組み込んでください。フィードバックや感想はこちらまでお知らせください。