プログラムの事とか

お約束ですが「掲載内容は私個人の見解です」

XamarinでApple Watchアプリを作る(その1)

Xamarinでの時計開発は日本語どころか英語の記事もほとんどない状況なので、基本的なところだけでも書いておこうかと。 (バージョンの違いで内容が変わるから書けないのかも・・・)

2016/1/15時点での最新バージョンで可能な限りVisual Studio 2015+Xamarinでいきます。 あとこの記事に書いてある「できる/できない」は私の環境での話です。 環境作成がよくないことも多々あるとおもうのであくまで参考程度にしてください。(つっこみお待ちしています)

1回目はテンプレートをシミュレーターで起動するところまで。(それすら大変でした)

iPhoneアプリを作ります

f:id:puni-o:20160115110545p:plain

これはテンプレートそのままでいいですね。

作ったソリューションにApple Watchプロジェクトを追加します

f:id:puni-o:20160115110640p:plain

これもそのまま。

ここまでマウスだけしかつかってません。 ソリューションはこんな感じになります。 f:id:puni-o:20160115110720p:plain

シミュレーターで実行します

MacのXamarin Studioならこのまま実行できるんですけどね。 Visual Studioの場合ビルドすら失敗します。

Identifierの指定

f:id:puni-o:20160115110855p:plain

テンプレートのままだとiOSアプリはこんな感じ。 これにWatch側を合わせます。

WAppではCompanion App IDに上記Identifierを指定。(ここがなぜか合ってない) f:id:puni-o:20160115110917p:plain

WKExtensionは上で指定したWAppのIdentifierを指定します。 f:id:puni-o:20160115111056p:plain

参照の追加

iOSアプリにはWKExtensionの参照が必要です。 f:id:puni-o:20160115111139p:plain

以上でビルドが正常に通るはずです。 Xamarin Studioで作った場合ここまでを自動で設定してくれている、ってことですね。

改めてシミュレーターで実行します

WatchApp1.WKExtensionをスタートアッププロジェクトに設定しておくと、実行対象に「~ + Apple Watch -」が出てくるので、実行すればWatchのシミュレーターがMac上で立ち上がります。

f:id:puni-o:20160115111130p:plain

ここだけはVisual Studioの方が優れていて、なぜかXamarin StudioではApple Watchのシミュレーターを起動することができません。(当然デバッグもできません)

f:id:puni-o:20160115112040p:plain

実行できました。 マルチスタートアップはうまくいかなかったので、デバッグはどちらかしかできないです。

Xamarin Studio(Mac)でのシミュレーター実行

Watchシミュレーターを起動することはできないのですが、シミュレーターが立ち上がっていればiPhoneアプリのデプロイと同時にWatchアプリもシミュレーターに入ります。 デバッグはできませんが実際に動かすことはできます。