なかしょの技術日誌

業務でプログラミングをしなくなったのでプライベートで調査した技術情報を書き留めていきます。

Xamarin.Formsでスマートウォッチアプリ開発

f:id:nakasho_dev:20171210023727p:plain

はじめに

本エントリーは Xamarin Advent Calendar 2017 11日目のエントリーです。 スマートウォッチアプリ開発というとAndroid Wearかwatch OSを思い浮かべ、本記事を開いた方もいらっしゃるのではないでしょうか。ですが、その両OSともにXamarin.Formsでの開発に対応していません。
以下のRoadmapにもありません。 forums.xamarin.com

そもそも、スマートウォッチアプリのようなUIが特殊で機能が限定されているものにXamarin.Formsは向かないような気もします。そんな中、Xamarin.Formsでスマートウォッチアプリが開発できる環境が誕生しました。それがTizen.NETです。 本記事ではTizen OS搭載スマートウォッチアプリを.NETで開発する環境構築方法を紹介します。

Tizen.NETについて

Tizenの.NET対応については、こちらの記事をご覧ください。

nakasho-dev.hatenablog.jp

本記事執筆時点の最新バージョンはTizen 4.0 M2です。
このバージョンからWatch用のエミュレータも提供されています。

Tizen.NETの環境構築

こちらの記事にて説明があります。

developer.tizen.org

前提条件

  • 1.5GB以上のディスクスペース
  • Visual Studio 2017:以下のオプションは必須
    • .NET desktop development
    • .NET Core cross-platform development
  • Java Development Kit (JDK) 8
    • OpenJDKは非対応

エミュレータの必要条件

  • Intel Hardware Accelerated Execution Manager(HAXM)のインストール
  • Hyper-V の無効化

Visual Studio Tools for Tizen のインストール

  • 拡張機能と更新プログラムから「Tizen」をキーワードに検索
    • 検索でヒットした「Visual Studio Tools for Tizen」をインストール

Tizen Baseline SDK のインストール

  • ツール > Tizen > Tizen Package Manager を選択してダイアログを表示
    • Install new Tizen SDKを選択
    • 利用規約を承諾
    • インストール先のフォルダを指定後、インストールが開始

エミュレータイメージのインストール

  • ツール > Tizen > Tizen Package Managerを選択してダイアログを表示
    • 4.0 WEARABLE (Preview)の行のINSTALLボタンを押下

以上で準備が整いました。

Tizen.NETアプリの作成

  • Visual Studio の新規プロジェクトからVisual C# > Tizen > Cross-Platform > Blank App(Xamarin.Forms)を選択

f:id:nakasho_dev:20171210232642p:plain

  • Project Wizardにて、Profileの項目で「Wealable(preview)」を選択

f:id:nakasho_dev:20171210232715p:plain

これでアプリができました。ソリューションエクスプローラーの構成は以下になります。

f:id:nakasho_dev:20171210233020p:plain

${ソリューション名}.Tizen.Wealable のプロジェクトを右クリックしてデバッグ > 新しいインスタンスを開始 でエミュレータが立ち上がり、アプリが起動します。

f:id:nakasho_dev:20171210233411p:plain

以上でXamarin.FormsでTizenOSのスマートウォッチアプリの開発環境が準備できました。



Xamarin.Forms以外でのTizenアプリ開発

Xamarin.Formsで提供されるUI部品はOSネイティブのそれと比べるとプアであることは否めません。
Tizen用アプリでXamarin.FormsよりもリッチなUIを使いたい、TizenのネイティブUIを使いたい、という要望もあるかと思います。安心してください、あるんです。

f:id:nakasho_dev:20171210234423p:plain

最新の開発環境ではXamarin.Formsの他にElmSharpとTizen.NUIを選択できます。

  • ElmSharp
    • Tizen NativeのUI FrameworkであるEFLをベースに開発したもののようです。
  • Tizen.NUI (Natural User Interface)
    • Tizen Nativeで用意されているAPIの.NETのラッパーです。

去年のConnect();2016で発表された際は、UI部分をXamarin.FormsでまかないNativeのUI部品は可能な限り対応する、という後ろ向きな内容でしたが、1年経った今、NativeのUI部品も充実してきました。
Windows 10 Mobileの新規機能が事実上終了した今、第3のOSとしてTizenに注目があつまっていることでしょう。
Tizen.NETの正式リリースが待ち遠しいですね。