2.0をリリースしました。Platformに対応し、サーバサイドとデータの同期が可能になりました。3の対応と不具合の修正のために非互換の変更が1つだけ含まれます。詳しくは下記をご覧ください。Platformのリリースのお知らせをご覧になっていない方は先にそちらをお読みいただき、その後この記事でCocoaに関する詳細を確認してください。一度設定を有効にすれば、あとは自動的にすべてのデバイスでデータが同期されます。ここからは技術的な詳細についてお話しします。Platformに対応するために、新しいクラスとAPIを追加しました。同期ユーザオブジェックトと認証オブジェクト同期ユーザはRealmを同期するための中心的な概念です。すべてのRealmはユーザに関連付けられます。ユーザはユーザ名/パスワードもしくは、Google、Facebook、iCloudなどの外部プロバイダによって認証することができます。詳しくはドキュメントのUsersセクションをご覧ください。同期設定Realmの同期設定を有効にするには、RLMRealmConfiguration/Realm.ConfigurationクラスのプロパティsyncConfigurationをセットします。realm://realm.example.com:9080/~/userRealm)のペアを渡します。詳しくはドキュメントをご覧ください。同期マネージャとセッション同期マネージャ(RLMSyncManager/SyncManager)はシングルトンオブジェクトで、すべての同期されたRealmを管理します。同期エンジンのログレベルの設定や、グローバルエラーのハンドリングはこのクラスを通じて行います。それぞれの同期されたRealmはセッション(RMLSyncSession/SyncSession)に関連付けられます。セッションはRealmの状態を表します。今後、より詳細な情報が取得できるように改善される予定です。プラットフォーム拡張はベータ版ですこれまでRealmは5年かもの間、改善を繰り返し、安定した動作を獲得しました。同様にAPIを少しずつ改善していくため、プラットフォーム拡張は現在ベータ版としてリリースしています。APIは今後のリリースで変更される場合があります。プラットフォーム拡張は、ローカルのRealmと同期されたRealmと明確に区別して設計されていますので、プラットフォーム拡張が不要な場合でも、これまでと同様にRealmを安定して利用することができます。2.0には非互換の変更は「ほとんど」ありませんこのリリースは大きな新機能を含むためにメジャーバージョンアップとなります。APIに非互換の変更はほとんど加えていません。直前のメジャーバージョンアップである1.0のリリースはわずか数か月前であるので、非互換のAPIに対応する時間を費やすことは避けたかったのです。1つだけ例外があります。1.1.0を先日リリースしましたが、その際に、Errorクラスがそのままでは標準ライブラリののSwift.Errorとコンフリクトして使いづらいというフィードバックを数多くいただきました。そこで、ErrorクラスはRealmのエクステンションとしてネストした型に変更することにしました。今回のリリースにおける非互換の変更はこの1つだけです。2.0はファイルフォーマットが刷新され、パフォーマンスの改善と不具合が修正されています。そのため、バージョン2.0で作られたファイルは1.x以前のバージョンからは読み込むことができなくなります。古いバージョンで作られたファイルを新しいバージョンのRealmで読み込むことは問題ありません。関連ファイルの削除.log、.log_a、.log_bという拡張子のファイルはRealmファイルに統合されたため、作られなくなりました。それにより、ファイルを開くときや、書き込みのパフォーマンスが向上し、トランザクション中に別のファイルを開く際の速度低下をなくすことができました。不具合の修正ゼロのプロパティでソートしたときにアサーションエラーが起こる問題を修正しました。同じファイルを開いている複数のプロセスがあるとき、コミットの途中で1つのプロセスがクラッシュすると、他のすべてのプロセスもクラッシュしてしまう問題を修正しました。オプショナルのfloatもしくはdouble型のプロパティが既存のモデルに追加されたとき、ゼロでなく正しく初期化されるようになりました。インデックスが付加されたString型のとても長いプロパティがスタックオーバーフローを引き起こす問題を修正しました。非同期クエリ、またはコレクションに対する通知において、クラッシュを引き起こすレースコンディションを修正しました。自分自身に関連付けられたオブジェクトを削除しようとした際に、データが不整合になる問題を修正しました。CoreストレージエンジンをRealmと組み合わせて使えますか?もちろんです!100%完全なオープンソースになったRealmをビルドして利用することができます。installするだけ)よりも複雑になりますが、realm-coreとrealm-cocoaに記してある手順にしたがってください。現在ocoaPodsを使って完全にソースコードからビルドできるように準備しています。2.2でも引き続きご利用いただけます。2.3に移行することをお勧めします。お読みいただきありがとうございます。Slack(日本語)、Twitter(日本語)、GitHub(英語)でご相談ください。subscription。