なかしょの技術日誌

業務では非MS系のものばかりですが、ここではMS系の技術やサービスを中心に書いていきたいと思います。

Xamarin.FormsでTizenアプリの開発

Connect(); // 2016 初日にTizenがXamarin.Formsに対応したことが発表されました。 スマートフォン後発のTizenにとって、クロスプラットフォーム環境に参入することで、アプリ開発者を増やしTizenのシェアを上げたいのだと思います。
(それはUWPアプリを作ってほしいMSも同じだろうけど。)

そんなわけでTizenアプリのテンプレートからプロジェクトを作成し、Emulatorでの実行まで試してみました。
基本的にはこのページから読み進めていけばサンプルアプリが実行できます。

developer.tizen.org

Tizenの.NET Architectureは以下のようになっているようです。
Xamarin.Formsでのコードの共通化とプラットフォーム固有のAPIを使い分けてアプリが開発できることが見て取れます。 f:id:nakasho_dev:20161118015607p:plain

では、さっそく、インストールから進めていきます。

Visual Studio Tools for Tizen Previewのダウンロード

以下のサイトから「VisualStudioToolsforTizen-preview.exe」をダウンロードします。

developer.tizen.org

環境の準備

Visual Studio Tools for Tizenの動作には以下の環境が必要です。

事前にインストールすべきもの

  • Visual Studio 2015 Update 3
  • Xamarin for Visual Studio
    • TizenのページではXamarin v3.1.1と書いてありますが、最新のv4.2.61 で動作します。
  • .NET Core 1.0.0

事前に設定すべきもの

Tizen Emulatorの動作にHAXM(Hardware Accelerated Execution Manager)環境が必要です。
そのため、Hyper-V環境を有効にしている場合は無効にする必要があります。以下のサイトを参考に無効にしてください。

developer.tizen.org

無効に設定後、以下からHAXMのインストーラを取得してください。
AndroidSDK Managerで取得したインストーラでも構いません。

developer.tizen.org

私はTizenのサイトで古いHAXMのインストーラを取得してしまい、エミュレータが正常に動作しませんでした。最新のインストーラを取得するように注意ください。

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

以下のサイトを参考に、先ほど取得した「Visual Studio Tools for Tizen」と「HAXM」のインストーラを実行してください。

developer.tizen.org

証明書とToolの設定

開発を始める前にに証明書やNugetの設定をする必要があります。
若干、イケてないなぁとは思いますがPreview版なのでしょうがないかな。

以下のURLを参考にしてください。 developer.tizen.org

証明書の設定

f:id:nakasho_dev:20161118022805p:plain 「ツール > オプション >Tizen > Certification」と進み、Author CertificateのPasswordに「author_test」を入力します。
たぶん、商用を配布する際などは独自の証明書を用意しないといけないと思われます。

ツールの設定

「ツール > オプション >Tizen > Tools」でTizenのツールのパスを設定します。
こちらはデフォルトでは変更する必要はないようです。
念のため設定しているフォルダのパスに「Tools」フォルダが存在し、その「Tools」フォルダ内に「sdb.exe」があることを確認ください。

NuGetパッケージマネージャの設定

「Nugetパッケージマネージャの設定 > パッケージマネージャ設定 > 全般」で「Visual Studioでのビルド中に見つからないパッケージを自動的に確認」のチェック項目を無効にします。 f:id:nakasho_dev:20161118023450p:plain

以上で環境構築は完了です。

プロジェクトの作成&ビルド

プロジェクトの新規作成をおこなうと、「Visual C#」のカテゴリにTizenの項目が表示され、3つのテンプレートが表示されます。

f:id:nakasho_dev:20161118023905p:plain

ここではBlank App (Tizen Xamarin.Forms Portable)を選択しました。
作成されたプロジェクトは以下のようにエラーでいっぱいですが、ソリューションを右クリックし「NuGetパッケージの復元」を実行することでエラーはなくなります。 f:id:nakasho_dev:20161118024241p:plain

そしてビルドを実行すると問題なく成功するはずです。

エミュレータの起動、プログラムの実行

「Launch Tizen Emulator」のボタンをクリックし、Emulatorを起動します。
この時、Hyper-Vの設定が有効でHAXMが実行できない環境のままだと以下のようなエラーが発生します。 f:id:nakasho_dev:20161118024835p:plain

正常に起動すると以下のようにタイトルが出た後、ホーム画面が表示されます。
f:id:nakasho_dev:20161118025308p:plain f:id:nakasho_dev:20161118025315p:plain

Emulator起動後に「Launch Tizen Emulator」だったボタンが「Emulator (tizen-3.0_mobile_x86_64_hd)」というボタンに変わるのでそれをクリックします。 Debuggerが起動し、Emulator上にプログラムが転送・実行され 「Welcome to Xamarin Forms !」が表示されます。
f:id:nakasho_dev:20161118025655p:plain

この時、前述の証明書の設定を怠ると「Tizen Package not found. Please build. Can not start debugger.」というメッセージがコンソールに出力されて、プログラムは実行されないようです。

いかがでしたでしょうか。
どんなプログラムもHello World的なプログラムが初めて動いたときはうれしいですよね。ぜひ、皆さんも試してみてください。