「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画面は固有の開発コードで作成するため、すでに作成しているアプリケーションの
移植を考えた場合、画面はそのまま移植ができるのが利点です。
3.Xamarin.Forms
Xamarin.Formsは、iOS・Android・Windows10デバイス(UWP)を実装することができるフレームワークです。UI画面はデバイス共通で「XAML(Extensible Application Markup Language)」(読んで「ざむる」)を利用します。
このXAMLはもともとXMLをベースに開発された言語であり、C#・VBなどの.NET言語でも利用することができ、UIの初期レイアウトを定義するために使用されています。
4.まとめ
Xamarinと呼ばれるクロスプラットフォーム開発が可能なフレームワークについて記載しました。その中でUIコードをデバイス固有で実装し、業務BRは共有コード(C#)で実装できる既存アプリの移植性に便利な「Xamarin Native」と、UIコードも共有化(XAML)し、業務BR(C#)も共有化可能な「Xamarin.Forms」について記載しました。
私は、Xamarin.Formsをでどこまでアプリの開発ができるかを勉強中ですが、正直、Xamarin.Fomrsだけでクロスプラットフォームに対応したアプリができるかわかりません。少しずつ実装していきながら自分自身で確かめたいと思います!