あるSEのつぶやき・改

ITやシステム開発などの技術に関する話題を、取り上げたりしています。

Xamarin.Forms入門 キホンのキ - Xamarinの動作原理

Xamarin の動作原理

Xamarin の動作原理というと大げさですが、Xamarin は .NET Framework のクロスプラットフォーム版である Mono 上で動作します。

Mono 上で動作することで、クロスプラットフォームでの動作を実現させています。

f:id:fnyablog:20180926081825p:plain

Android/iOS 端末にアプリをインストールする際、Mono も一緒にインストールされます。

そのため、Mono がインストールされることで、小さなアプリケーションではアプリのサイズが大きくなることには注意が必要です。

また、Android と iOS では実際の動作原理が少々異なります。

Android の動作原理

f:id:fnyablog:20180926081857p:plain

Android の開発では、Xamarin で C# のコードをコンパイルすると、IL(Intermediate Language)という中間言語を生成します。

そして、Mono と一緒に Android の端末にアプリをインストールし、実行時に Just-In-Time(JIT)コンパイルを実行し、ネイティブコードを生成します。

この動作は、Windows での .NET 開発と同様です。

iOS の動作原理

f:id:fnyablog:20180926082003p:plain

iOS の開発では、Apple が JIT でのコンパイルを規約で禁止しているため、Xamarin で C# のコンパイルを行った後、Xcode でネイティブコードに事前にコンパイルします(AOTコンパイル)。

ネイティブコードになったものをアプリとして、iOS の端末にインストールします。

この動作原理のために、iOS の開発では Mac が必須になるという訳ですね。

連載目次