Xamarin.Formのチュートリアルやってみた
お仕事では使ってないけれど、プラットフォーム間で極限まで共通化されたコードが書けるってすごく魅力的ですよね!というわけで今回はこのチュートリアルをやってみます。
きっかけは?
最前列! #decode16 #RoomF pic.twitter.com/9gaZ8vpVgs
— ゆうなんとか@赤いワンピと蝶のクリップ (@yuu_hara) 2016年5月25日
— ゆうなんとか@赤いワンピと蝶のクリップ (@yuu_hara) 2016年5月25日
これいじょうは何も言うまい。
サンプルはこちら
Xamarin.Forms Quickstart - Xamarin
アルファベットを数字に変換して、電話アプリにそれを渡してあげるというサンプルです。英語圏ではこんな感じで電話番号を覚えるようですね。英語が読めなくても、「Phoneword」という名前でソリューションを作って、コードをコピペして同じように書いていけば動きます。
どれくらい共通化できたの?
このチュートリアルのアプリは、電話アプリに電話番号を渡す部分以外のコードが共通化できています。すごい!
うひょおああおあおおおおおあおお
— ゆうなんとか@赤いワンピと蝶のクリップ (@yuu_hara) 2016年5月25日
↑叫びたくもなるよね、わかる
共通プロジェクトがビルドできないときは…
PCL使えなかったので悲しみを背負いながらXamarin Studio再インストールしてる
— ゆうなんとか@赤いワンピと蝶のクリップ (@yuu_hara) 2016年5月25日
今回手元の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でも手書きでガシガシやってたマンなのでここもいいポイント。
今回のチュートリアルでは使っていませんが、データバインディングやテンプレート、スタイルといった機能はもちろん使えますよ!
細かいカスタマイズはあまりできませんが、全くできないわけではありません。
XAMLはいいぞ(本日n回目) #decode16 #RoomF
— ゆうなんとか@赤いワンピと蝶のクリップ (@yuu_hara) 2016年5月25日
↑何度でも言いたい