この前、初心者向けのXamarinハンズオンに参加してきて学んだ内容を、忘れないように記事にしようと思います。
##Xamarinの種類
スマホアプリ開発用のXamarinには、「Xamarin.Forms」と「Xamarin Native」の2種類があります。以下、それぞれの説明です。
###Xamarin.Forms
Xamarin.Formsでは、ロジックとUIを共通化することができます。なので、1つ作成できればAndroidとiOSの両方のアプリとして使うことができます。しかし、複雑なUIになると共通化したUIで実現することは難しい為、複雑なUIのアプリを作成するのには向いていません。
※ロジックは C#、UIは Shared XAMLでコーディングします。
Shared XAMLと聞いて、私は最初すごく心配でしたが、XMLに形式が似ているので、そこまで意識しなくても簡単に理解できました。(体験談)
###Xamarin Native
Xamarin Nativeではロジックのみ共通化することができ、UIに関しては個別に実装します。UIを各プラットフォームごとに作成しないといけないので大変ですが、共通化をしていないので複雑なUIも実現することができます。Android SDKなどを用いた時と同じ様に開発をできるらしいですが、私はまだ初心者なので詳しくは分かりません。
##Xamarinのメリット
- コードをより多く再利用することができる。
- シンプルなアプリを素早く作成することができる。
- XcodeやAndroid SDKなど、開発するアプリごとに開発環境を使い分ける必要がない。(Xamarinで完結する。)
##Xamarinのデメリット
- ソースコードをC#に変更しないといけないので、swift, Java等ネイティブ開発の知識が必要。
- 複雑なUIになってくると、FormsではなくNativeで個別にUIを実装しなければいけないので、ネイティブ開発との差が無くなる。
##Xamarinを初めて触ってみた感想
ハンズオンに参加して初めてXamarinを触ってみて、想像していたよりはコーディングをしないといけないことが分かりました。しかし、Javaに書式が似ているC#で開発ができるので、個人的にとっつきやすかったです。
分からなかったら、Xamarin界隈の人がきっと優しく教えてくれると思うので、少しずつ学んで行きたいです。