Xamarin 2.0を少しだけ使ってみました。条件は以下の通り。
- 普通の日本語版Visual Studio 2012に追加して使う
- Xamarin 2.0は英語版
- C#で試す
- プロジェクトを作って起動するところまで
- for Androidとfor iOSを試す
Android §
- F5一発で動かない。先にエミュを起動しておく必要があった
- エミュレータも選択の必要があった
- その後も、更に起動するまで死ぬほど待たされた (ライブラリ等をエミュレータにインストールしていたようだ)
- 立ち上がったエミュレータはロックされていた。ロック解除してやっとアプリとご対面
- Main.axml……xamlじゃねえ! 拡張子の綴りが微妙に違う! (中身の名前空間も違う)
iOS §
- プロジェクト作成後にビルドホスト捜しに行ってそれっきり (うちのネットワークにそんなホストはねえ!)
- キャンセルして開き直すとソースは見えた。ビルドも通った。しかし、F5キーを押すとやはりビルドホスト捜しに行ってそれっきり
まとめ §
- for Android。本質的にAndroid SDKの出来の悪さをカバーし切れていない。C#で書けばJavaの出来の悪さはカバーできそうだが、Android SDKの出来の悪さまではカバーしてくれない感じ
- for iOS。iOSのネイティブ開発に命を賭けて環境を整備した人以外には試用すらできない閉鎖的な世界。取りあえず、そんなタコツボには入りたくないので、蹴る
「ざっくばらんな感想はどうだい?」
「やっぱり、どちらも使い物にならないな」
「えー。せっかく使ったのに」
「でも結局、どちらも仕事の水準までは来なかった感じだ。もちろん、この困難な環境を扱う事が仕事としてあるのなら扱うけどね」
「もうちょっと感想らしい感想を頼むよ」
「そうだな。今回のXmarin 2.0のポイントは2つある」
「だから試すわけだね」
「そうだ。Visual Studio+C#によるWindows Phone開発並みの効率で書ければそれなりに開発対象の候補に入るからだ」
「それで結論は?」
「当初以下の2つが解決されれば、効率は良くなるはずだと考えた」
「それで?」
「実はそうでは無かった問題は3つあったのだ」
「SDKの問題か」
「Xamarinはインストール中に本家の純正SDKをダウンロードして入れ始めた。つまりね。SDKに相当する機能は自前で持っていないから、結局Xamarinになっても同じということだ。その弱点はそのまま継承されている」
「だからAndroidでは学芸会レベルの環境が入ってきて、iOSではMac OS使わされるわけだね」
「そうだ。だから、それを使いこなすことが仕事になる人にはいいが、そうではないなら、事実上まだ使えないと思っていいだろう。あるいは永遠に使えないかもしれない」
「えー。君はどうするのさ。AndroidとかiOSは無視し続けるつもり?」
「そうは言っていない。だからこそXamarinを試用したわけだしね」
「でも、まだ十分なパワーは無かったわけだろう?」
「そうだうな」
「どうするのさ」
「とりあえず、ソフト開発的に大幅に見劣りするAndroidとかiOSを誉めて普及させた阿呆どもを呪い殺す」
「うっそー!」
「すまん、嘘だ。実際はHTML5でWebアプリを書くさ。これでAndroid利用者もiOS利用者も他のOSの利用者も阻害しない。HTML5ブラウザが装備されていたら、だけどな」
「今の君はHTML5屋さんかい?」
「いやC#屋さんだよ。パートタイムでHTML5屋さんにも変身するだけだ。厳密にはjQuery Mobile屋さんだけどね」