ゆうなんとかさんの雑記帳的な。

Twitterで踊ったり音ゲーしたりしてるあの名前がよくわからない人が書いてるらしいよ。

Xamarin.Formのチュートリアルやってみた

お仕事では使ってないけれど、プラットフォーム間で極限まで共通化されたコードが書けるってすごく魅力的ですよね!というわけで今回はこのチュートリアルをやってみます。

きっかけは?

これいじょうは何も言うまい。

サンプルはこちら

Xamarin.Forms Quickstart - Xamarin

アルファベットを数字に変換して、電話アプリにそれを渡してあげるというサンプルです。英語圏ではこんな感じで電話番号を覚えるようですね。英語が読めなくても、「Phoneword」という名前でソリューションを作って、コードをコピペして同じように書いていけば動きます。

どれくらい共通化できたの?

このチュートリアルのアプリは、電話アプリに電話番号を渡す部分以外のコードが共通化できています。すごい!

↑叫びたくもなるよね、わかる

しかも、UIはOSの世界観に合わせて、AndroidiOS向けにそれぞれ構築されます。これがほんとすごい。

共通プロジェクトがビルドできないときは…

今回手元のMacBook Proでやってみたのですが、去年UnityをインストールするときにXamarin Studioをインストールしていたせいか、どうしても共有部分のビルドができませんでした。
仕方ないのでXamarin Studioの再インストール&プロジェクトの作り直しをするとなんとか動かせました。
再インストールするときはXamarin Studio本体とXamarin.iOS/Android/Macを一旦全部消します。PCLはMonoに含まれているっぽいのでこちらも消しましょう。エディターの設定なんかは消さなくても大丈夫です。

参考↓
Mac で Xamarin 環境をクリーンに再インストールするには - Xamarin 日本語情報

あとはXamarinのサイトからインストーラーをダウンロードしてきてウィザードをぽちぽちするだけでPCLが使えるようになっていると思います。うまく参照してくれないときは無理にあれこれせずに、当該のライブラリを消してウィザードからインストールし直すのが早かったです。

ここまでやったら、プロジェクトは残念ながら作り直したほうがいいようですね。一晩を無駄に過ごす悲しみを背負うことになるかも…?

Androidで実機デバッグする準備

シミュレーターを使ってもいいのですが、起動がスッッッッッッッッッッッッッごく遅いのでできる限り実機でのデバッグをおすすめします。Macの場合はAndroid端末側でUSBデバッグを有効にしたらあとはつなぐだけでOKです。USBデバッグを有効にするには開発者モードを有効にする必要があります。設定アプリで見つからない場合は、端末情報>「ビルド番号」を連打しましょう!

Windowsの場合はちょっと小難しいです。詳しくはこちら
[Android]【Win/Mac】Android実機でAndroidデバッグを行なう方法 SHL22 - Qiita

感想

簡単なアプリであればほとんどのコードを共通化させてアプリのクロスプラットフォーム展開ができます。
UIの構築はXAMLでやります。WPFでもHTMLでも手書きでガシガシやってたマンなのでここもいいポイント。
今回のチュートリアルでは使っていませんが、データバインディングやテンプレート、スタイルといった機能はもちろん使えますよ!
細かいカスタマイズはあまりできませんが、全くできないわけではありません。


↑何度でも言いたい