「Xamarin」について書きたいと思います。
1.Xamarinとは?
XamarinはXamarin社(現Microsoft社に買収)が開発したiOS、Mac、Androidで動作するアプリを開発ができるプラットフォームです。
基本的にはC#で開発します。
以前はiOSアプリを開発するためにMac端末でXcode上で開発する必要がありましたが、
Xamarinは※Monoをベースに実装されているため、VisualStudio上での開発が可能になりました!(コンパイルにはMacが必要)
※Mono:.NET Frameworkの要素をLinuxやMacでも利用できるマルチプラットフォーム基盤のイメージ
何と言っても1つの言語で複数のプラットフォームに対応したアプリを作成できることが 最大の利点です。
iOSとAndroidに言語を分ける必要がないため、コードを共有できます。
コードの共有については、UI画面と業務ロジック(BR)の2つに分けられています。
1つ目はUIはiOS、Android固有のコードで実装し、業務BRのコードを共有する方法。
これがいわゆる言われている、Xamarin.iOSやXamarin.Androidです。まとめてXamarin Nativeとも呼ばれます。
2つ目はUI画面と業務BRの両方を共有する方法。これがXamarin.Formsです。
2.Xamarin Native(Xamarin.iOSとXamarin.Android)
Xamarin.iOSとXamarin.Androidは業務BRはC#で実装し、UI画面は各々の開発コードで実装をします。iOSであればstoryboard、
AndroidであればxmlでUI画面を作成します。UI画面は固有の開発コードで作成するため、すでに作成しているアプリケーションの
移植を考えた場合、画面はそのまま移植ができるのが利点です。
私は、Xamarin.Formsをでどこまでアプリの開発ができるかを勉強中ですが、正直、Xamarin.Fomrsだけでクロスプラットフォームに対応したアプリができるかわかりません。少しずつ実装していきながら自分自身で確かめたいと思います!