に書ききれなかったことなど。
Xamarin.Forms って名前、どうしても Windows.Forms を連想するけど全然別ものだから。とはいえ、あんまり WPF の経験がないので、Windows.Forms にそれほどイヤな印象がない。VB6時代なんて、画面に Fill するのすらゴリゴリ実装が必要だったし。
MonoTouch.Dialog というのは、Xamarin の CTO でありスーパーハッカーのミゲル氏が開発した、簡単なコードで iOS の UI を実装できるライブラリ(「Dialog」だけど、「ダイアログボックス」とは関係ない。 )
たぶんだけど、Xamarin.Forms はこれの思想がベースにあって、他のプラットフォームやXAML対応が行われたんじゃないかと勝手に思ってます。(いつか紹介しようと思ってたけどこれでお役御免になってしまったかも)
StackLayout は LinearLayout相当、RelativeLayout も、同名クラスがあるし、割と Android の UI の考え方をベースにしてるのかなと予想。Windows Phone はあまり経験がないので知らない。。。
プラットフォームの識別子をプロジェクト名につけるのが良いんだけど、 HelloForms.iOS
とか「iOS」とつけるのが嫌い。名前空間名とかが小文字で始まってしまうのが気持ち悪くて。
MvvmCross などでは、iOS は XXX.Touch
、Android は XXX.Droid
としていて、こっちの方が好み。
WPFじゃなくてもXAMLって言っていいんだ、というのを初めて知ったw Xamarin Studio のXMLデザイナーは補完も効かないしツラい。コードでUI作るのにも限界があるので、今年の Evolve あたりで「Xamarin.Forms のUIデザイナー発表ばばーん!!」を期待してます。
「UIはプラットフォームの流儀に合わせるべき」という説明に必ずと言っていいほど登場するのがタブバーの位置が Androidだと上で、iOSだと下、ってやつ。 個人的にはどうでもいい。タブの切り替えをよく使うなら指の届きやすい画面下部に配置すべきだし、同じアプリならiOS版とAndroid版でUIを変えるべきでないと思っている。(かと言って、iOS版のUIをそっくりそのままAndroidに移植すればいいという話でもない)。 プロダクトのUXは、プラットフォームのUXより優先されるべき 、と思ってる。
というよくある話には、「画面が1ソースで共通にできる Xamarin.Forms」は、説得材料としては、とりわけ対PhoneGapには効果高いんじゃないかと思います。毒りんごかどうかはともかく。。。