Xamarinの仕組みを勉強したらiOSとAndroidの仕様を少し理解できた
少しだけXamarinの勉強してみました。
今日のブログは備忘録的な面が強いかもしれません。
『xamarin 仕組み』で検索
XamarinがどのようにiOSとAndroidというクロスプラットフォームに対応しているのか気になって、
Bingで『xamarin 仕組み』で検索してみました。
すると次の良記事を発見!!
Xamarinの仕組み ( 超簡単バージョン ) | Developers.IO
Xamarin 2.0 | ++C++; // 未確認飛行 C ブログ
Xamarin.Androidの仕組みと、ソフトウェア構成 - Build Insider
Xamarin.iOSの仕組みとアプリケーションの構成 - Build Insider
クロスプラットフォームの仕組み、まとめ
Androidの場合
Android上でmonoVMと呼ばれる仮想マシーンを実行する。
JIT(Just-In-Time)での動作する。
C#はもともとJITで動作することを前提に作られているので、本来の力を発揮できる。
JITとは、中間コードを解読しながら動作する仕組み。
ちなみにC#はスクリプト言語と違い、あらかじめプログラミング言語を中間コードにコンパイルすることで、高速化を実現している。
AndroidではJavaで作られたものと同じぐらい高速で、C#本来の力が発揮できるJITで動作できるが、
monoVMはアプリケーションと一緒にインストールする必要があるため、アプリケーションのファイルが大きくなりがちである。
デメリットがありながらもXamarinを使う理由
かなりのコードを共通して、書き直すことなく再利用することができる。
HTML5ハイブリットアプリより高速だから。
エンタープライズ向けのアプリならCordovaの方がよいかも
Apache Cordovaは、Xamarinのようにクロスプラットフォームを実現する技術です。
CordovaはHtml5、Javascript、CSSといったWebのフロントの技術で、スマホアプリを開発します。
オープンソースのCordovaにもMicrosoftがかなり出資をしているらしく、Visual StudioやVisual Studio Codeでの開発も可能です。
エンタープライズ向けのアプリ開発にかなりの実績があります。
Onsen UIでモバイルアプリっぽくデザインすることで、スマホアプリらしい雰囲気を出すこともできます。
もっとクロスプラットフォームアプリ開発を勉強したい
今回Xamarinの勉強してみて、Androidの仕組み、iOSの仕組みを改めて理解をすることができました。
実際に開発してみたときの感覚や、さらに詳しいところで、クロスプラットフォーム開発について勉強したくなりました。
XamarinとCordova、近いうちにどちらも開発を試してみたいと思います。