Realm と Xamarin を使用したリアルタイム データベース アプリの作成

2017年 2月 14日、Realm から Realm Mobile Database の新バージョン 1.0 のリリースおよび Realm Mobile Platform における Xamarin のサポートが発表されました。それに伴い、今回ブログを通して皆様に Realm と Xamarin を使用したリアルタイムで同期するコラボレーション アプリの素早い作成方法と、RealmDraw アプリの修正方法の概要を簡単にご紹介したいと思います。

Azure で Realm Object Server の設定

まず初めに、以下が Azure で開発サーバーを設定するための簡単なガイドになります。

  • Create a Linux VM on Azure using the Portal (ポータルを使用して Azure で Linux VM を作成)」ドキュメントに従い、Ubuntu サーバー 16.04 LTS のインスタンスを作成します
  • Opening ports to a VM in Azure using theAzure portal (Azure ポータルを使用し
    て Azure で VM のポートを開放)」のガイドに従い、ポート 9080 を開きます。サーバーに既に Network Security Group がある場合には、新しく作成する必要はありませ
    ん。SSH を使用して接続するポート 22 の定義が含まれていることが確認できます。
  • SSH を使用してサーバーに接続し、ターミナル セッションを確立します。
  • 最後に、以下の Realm Object Server のインストールの手順に従って、Realm Object Server を起動します。

SkiaSharp による設定

  • iOS と Android に新規の Single View プロジェクトを作成します。共通コード用に共有プロジェクトを使用します。
  • NuGet SkiaSharp.Views を追加すると同時に SkiaSharp も追加されます。
  • 最後に、テンプレートの UI を削除し、SkiaCanvas を追加して各プロジェクトを整理します。

すると、白い背景に青い円が描画されるのを確認できます。

描画にタッチを追加

これから作成するアプリは、シェイプ ベクター描画アプリケーションではなく、ホワイトボードのようなものであり、タッチをトラックし、タッチ間の直線を描画します。描画速度が速いほど、図面の精度は荒くなります。適切なテスト環境の例の 1つとして挙げられるのは、iPad Pro の Apple Pencil です。

Realm でポイントを記憶

連続ストロークである Paths にグループ化され、ローカルの Realm に保存されたポイントにより、アプリケーション終了後も再度描画に戻ることができます。実際に Realm を追加するために、ビルド時にのみ必要となる多数のサポートを含んだ Realm NuGet パッケージを iOS と Android のプロジェクトに追加する必要があります。より多くのロジックを共有し、個々の UI プロジェクトからロジックを取り除くことによってより多くのコードを共有できます。

Realm Mobile Platform による図面の共有

ローカルの Realm の使用から同期までのステップは非常にわずかです。

  • まず、サーバーがどこにあるのか把握する必要があります。
  • 通常は、クライアント アプリをサーバーに認証する必要があります。
  • ローカルのタッチではなく、Realm を更新することで、描画を起動する必要がありま
    す。

ほとんどの作業は、GUI から入り、タッチと描画のレスポンスをトラックできます。Realm を追加してデータを管理するのは、クラスを追加してデータ構造体を管理するよりも、即座に描画から保存したデータを使用して描画へ移行するよりもわずかな作業量となります。

ネイティブ UI プロジェクトを使用したコードを含む詳しいチュートリアルは、こちらのページからご覧ください。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする