ものがたり(旧)

atsushieno.hatenablog.com に続く

Mono for Android 1.0 Released

ほぼ1年の開発期間を経て、ついにMonoDroidことMono for Androidの1.0がリリースされました。

ここまで長かった…と思っていましたが、コードも具体的な計画も何もないところででっち上げてから1年くらいでした。ベータ版の間にも実にいろいろな設計の変更があり、今年のABC2011Winterで展示(?)したものとも全然違うwものになりました。そんなわけで1月に公開したPDFも、だいぶ古い情報となっています。そのうち何かしらのup to dateな情報を出したいところです。

Mono for Androidは(予定通り)商用製品として、MonoTouchと同じ価格帯でリリースされています。MonoTouchみたいな無償お試し版が出るかどうかは不明です→追記: emulator onlyのevaluation versionが出ています。今回はVisual Studio 2010 (non-express)版とMonoDevelop for Macというリリースとなっています。MonoDevelop for Linux版もまだ公式に出ていないので、たぶんまだ開発中ということでしょう。

共有ランタイムとか言っていた1月がもう懐かしい話になり、現在ではMonoTouch同様アプリケーションごとにmonoランタイムを組み込むかたちになっています。正式名称までMono for Androidに変わってしまいました。

共有ランタイムからCecil Linkerベースのアプリケーションになったことで、コードの書き方も大分変わることになりました。個人的に作っていたmonodroid用のXAMLライブラリは動的型呼び出しに大きく制約が加わったことで台無しに…w MonoTouch同様、リフレクションで呼び出す型にはPreserveAttributeを適用することになります。

GCも以前のboehmから最新のsgen-gcに差し替えられました。GCまわりはJavaのオブジェクト管理との兼ね合いもあって、単にGCエンジンを入れ替えただけというのではなく、sgen-gcにはmonodroidのためにかなり手を加えられているようです。

Miguelは、DLRを使ってF#やらIronJSやらを動かせるはずだと書いているのですが…果たしてそんなに上手くいくかなw 少なくともアプリケーションを書く時には動的コードまわりには制約があるので、気をつけた方が良いです。まあiOSみたいに最初から動的コード生成を禁止している論外なOSではないので、上手くやれば使えるでしょう。