Xamarinはいいかもしれない(Hello, Xamarinシリーズをやってみた)
2016年のスマホアプリを作る目標がやっと動き出しました。
去年はAndroid Studioを触ってたのですが、iOSとAndroidで別々に開発をする時間がもったいないよなと常々思っていたところにXamarinのオープンソース化の話を聞き、これは試してみなければとインストールしました。
『開発環境』
開発環境は、以下のとおりです。
Xamarinをインストールする前に、OS Xを10.9から10.11にするためのストレージ容量がなくて、がんばっていろんなものを削除してなんとか6G空けて、OSアップデートしたら15G近く何かが削除されて、一気にストレージが空いたとかいう嬉しいこともありました。
ところで、Xamarinのマスコットはお猿さんなんですね。かわいいので+1。
『動作環境について少し』
そもそも、Xamarinはどうやってスマホアプリを作って、それぞれのOSで動かしているかというと、
- 開発言語はC#、xml
- Androidに対しては、C#をILにコンパイルして、MonoVMとJITと一緒にスマホにダウンロードさせるみたいです*1*2。で、JITがらみの制限がなにかしらあるようです*3。
- iOSに対しては、ARM*4のアセンブリとしてコンパイルしてるみたいです。結構低レイアにアプローチしてるんですね。Appleがそのへんのアクセス?の制限かけてるみたいで、こちらも注意することがあるようです*5。
Windows phoneについては考えてないので省略。
その他詳しいことはこちらをご覧ください。
Part 1 – Understanding the Xamarin Mobile Platform - Xamarin
『Guide(チュートリアル)』
やってみたのは、こちらのGuide(チュートリアル)3つ。
Hello, Xamarin.Forms - Xamarin
Guideで作るアプリは、アルファベットで入力した文字列を数字に変換して、その数字を番号として電話をかけるというもの。
細かくステップに分けてスクリーンショットを貼り付けて、丁寧に解説してくれているので、改めてここで明記することなく、どれもすんなり動きました。
ビルドの時間も短かったですし、もっさり感はどこにも感じられません。使えそうという印象です。
『所感』
全般的にはいい感じです。IDEはよくできていると思います。ただ、Xcodeを触ったことがないのと、去年Android StudioをいじってからのXamarinなので、感想に多少偏りがあることは否めません。
一応、浅い考察ですが、いいと思う点と検証が必要だと思う点を箇条書きしておきます。
(いいと思う点)
- AndroidもiOSも、コードがある程度共有できて、開発時間が短縮できる。
- OS毎にコードを書き分ける部分もC#で記述できて、あれこれ悩まなくていい(言語の勉強コストが削減できる)。
- Guideやその他の説明が丁寧で英語も読みやすい。
- IDEのデザインがシンプルで見やすく、動作のもっさり感もない。
- 個人的に、エディタのメソッド補完の相性が合った。
(検証が必要な点)
- Androidについては、MonoVMとJITが一緒のせいか、ダウンロードサイズが大きめなので、画像バリバリのアプリや凝ったものは肥大化する可能性。(iOSは、開発コードがなかったので実機の検証は未確認。)
- 前述したとおり、OS毎にビルド/コンパイルの制限があるので、それがどの程度なのか要確認。
このまま継続して、簡単なゲームか何かを作ってみようと思います。
*1:ILとかJITが何?ていうのはこちらから。Thanks:C#で作られたプログラムをデコンパイルしてみよう - ほげほげー
*2:MonoVMについては、そのままググると全然見当違いのものが出てくるので、要はMonoのラインタイムの機能という理解でいいみたいですね。from:The Mono Runtime | Mono
*3:Android Limitations - Xamarin
*4:ARMていうのはこれ。from:ARMプロセッサ アーキテクチャ - ARM