対象読者
- 現在、ネイティブモバイルアプリ開発(iOS、Android)をしている方。
- 現在、Visual Studioを用いてC#アプリの開発をしている方。
必要な環境
本記事はWindows上のVisual Studio 2015および、Mac上のXamarin Studioを用いて解説しています。
Xamarinって何?
スマホアプリを開発する際に、iOSとAndroidの両方のアプリを作る必要がある場合も多いのではないでしょうか?
ビジネス用途の場合などは機種を限定して「このアプリはiPad専用です」とできることもありますが、一般向けに配布する場合にはiOSとAndroidの両方に対応することがほぼ必須となっているのが現状です。しかし、ネイティブアプリを開発するには、iOSはXcodeとObjective-C/Swift、AndroidはAndroid StudioとJavaというようにプラットフォームによって開発環境もプログラミング言語もまったく異なるものを使用することになります。もちろんソースコードに互換性はありません。
つまり、同じアプリを2つのプログラミング言語/2つの環境で別々に作ることになるわけです。これは開発スキルという意味でも開発コスト/維持コストという意味でもなかなかに大変です。
プログラミング言語 | 開発環境 | 開発に使用するOS | |
---|---|---|---|
iOSアプリ |
Objective-C Swift |
Xcode | Mac |
Androidアプリ | Java |
Android Studio Eclipse |
Windows Mac |
C/C++を用いて共通部分を実装するという方法もあるにはありますが、ハードルが高く実際の開発に取り入れるのは難しいという問題点があります。
そこでクロスプラットフォーム開発環境を利用するということになりますが、現在のクロスプラットフォーム開発環境の多くはApache Cordova(以下、Cordova)やTitaniumに代表される、HTML+CSS+JavaScriptというWebの技術を用いたものです。
JavaScriptの実行速度はかなり速くなりましたが、それでもパフォーマンス面に不安を覚える方も多いでしょうし、そしてなによりネイティブアプリ開発とはまた違うスキルやノウハウが必要になります。そのためこのようなクロスプラットフォーム開発もまたハードルが高いと感じる方も多いでしょう。
そこでXamarinの登場です。Xamarinもクロスプラットフォーム開発のための環境ですが、CordovaやTitaniumなどのWeb系のそれとは大きく思想が異なります。
Xamarinを一言で表すなら「iOSやAndroidのネイティブアプリ開発のプログラミング言語をC#に置き換えたもの」です。そのためiOS、Androidのネイティブアプリ開発のノウハウやスキルの多くをそのまま活かすことができます。
プログラミング言語 | 開発環境 | 開発に使用するOS | |
---|---|---|---|
iOSアプリ | C# |
Visual Studio(Windows) もしくは Xamarin Studio(Mac) |
Windows+Mac もしくは Macのみ |
Androidアプリ |
Windowsもしくは Mac |
Xamarinの特徴はそれだけではありません。
プログラミング言語C#だけでなく、Microsoftの.NET Frameworkという技術の上に成り立っているため、.NET Framework上のさまざまな技術的メリットの恩恵にあずかれます。
さらにWindows上では、Visual Studioという非常に優れた開発環境を利用してiOS/Androidアプリを開発することができます(注: 詳しくは後述しますがiOSアプリをビルドするには別途Macが必要になります)。もちろんMac上でもXamarin Studioという専用の開発環境が用意されているので、これを利用して開発することができます。
クロスプラットフォームなアプリ開発 | iOSアプリ、Androidアプリの開発に対応 |
---|---|
クロスプラットフォームな開発環境 |
Windows上の開発環境: Visual Studio Mac上の開発環境: Xamarin Studio |
C# | iOSアプリ、AndroidアプリともにC#で開発 |
ネイティブアプリ | Xamarinによって作成されるアプリはネイティブアプリ |
APIカバー率100% | iOS、AndroidともにOSが持つすべてのAPI(クラスライブラリ)を使用可能 |
薄いラッパー | OSが持つすべてのAPIをほぼそのままC#からアクセス可能 |
Xamarin.Forms | ビュー(画面)を抽象化。iOS、Android、Windows Phoneのビュー開発を統一化 |
ベース、クラス、ライブラリ(BCL) | .NET Frameworkのベース、クラス、ライブラリ(BCL)を使用可能 |
.NET Frameworkとの高い互換性 | .NET FrameworkのEXEやDLLファイル(アセンブリファイル)と互換性があり相互に使用可能 |
ライセンス・料金 | 個人や小規模な組織は無料。それ以外はVisual Studioのライセンスに準ずる |
要Mac | iOSアプリ開発にはMacが必要 |
次に、Xamarinの特徴について、もう少し掘り下げて説明していきます。なお、一部の内容については次回(第2回)以降に解説する予定です。
クロスプラットフォームなアプリ開発
Xamarinは、iOSとAndroidのアプリケーションを開発することができるクロスプラットフォームな開発環境です。
厳密には1つの開発環境がiOSとAndroidをサポートするわけではなく、iOS用/Android用それぞれのXamarinが存在します。これらを区別する場合にはXamarin.iOS、Xamarin.Android(もしくはXamarin.Droid)などと記述されます。
Xamarin.iOSとXamarin.Androidは別々の開発環境ではありますが、.NET Frameworkの持つポータブル(移植可能)な機能であるポータブルクラスライブラリ(PCL)により、これらを組み合わせてiOS固有部分/Android固有部分/両方に共通な部分と切り分けた上でクロスプラットフォーム開発を行うことが可能です。
クロスプラットフォームな開発環境
そしてアプリを開発するための開発環境もまた、クロスプラットフォームです。
Windows版のXamarinは、Visual Studioの一部として提供されています。つまり開発環境はVisual Studioそのものといえます。Mac版としてはXamarinにXamarin Studioという独自の開発環境が含まれています。
そのため、Windows上でもMac上でもXamarinを使ったiOS/Androidアプリ開発を行うことができます。さらにVisual StudioとXamarin Studioで作成したソースコードは完全に互換性があります。ソリューションファイルやプロジェクトファイルも完全に同じなので、Windows上で動くVisual Studioと、Mac上で動くXamarin Studioを行ったり来たりしながら開発することも可能なのです。
iOSのアプリを開発するにはMacが必要
Xamarinを使用すると、Windows上のVisual StudioでiOSアプリの開発ができるわけですが、この場合は別途Macが必要になります。さらにそのMacにはXamarin for Macをインストールしておく必要があります。
これはXamarinがビルド時にネットワーク経由でMacと通信して処理を実行する仕組みとなっているからです。WindowsだけでiOSアプリの開発ができるようになればいいとは思いますが、ほかの多くのクロスプラットフォーム開発環境でもiOSアプリのビルド時にはMacやXcodeを必要としており、仕方がないことなのかもしれません。
もちろんMacが必要なのはXamarin.iOSでiOSアプリを開発する場合だけです。Xamarin.Androidだけを使用する場合はMacは不要です。WindowsおよびVisual StudioだけでAndroidアプリの開発を行うことが可能です。
ライセンス
Xamarinをインストールする前に、Visual StudioとXamarinのライセンスについて簡単に確認しておきましょう。
Visual StudioにはVisual Studio Communityと呼ばれる無料版と、Visual Studio Professionalなどの有料版があります。Visual Studio Communityは機能的にはVisual Studio Professionalと同等ですが、個人や小規模組織であれば無料で使用することができます(注:Visual Studio Communityについての正式なライセンス条項はhttps://www.microsoft.com/ja-jp/dev/products/community.aspxで確認可能です)。
また、Xamarinは有料/無料問わず、すべてのVisual Studioに含まれています。Visual Studio Communityのライセンスには「有償アプリの開発も行える」とありますが、これはもちろんXamarinにも適用されます。そのため、個人や小規模組織であればApp StoreやGoogle Playで公開する有料アプリもVisual Studio Communityを使用して無料で開発環境を揃えることができます(注:App Storeへアプリを公開するにはApple Developer Programへの登録、Google Playへアプリを公開するにはGoogleデベロッパーアカウントの登録が必要になります。これらの登録料は別途必要となります)。
Visual Studio Communityが使用できない組織の場合は、製品版のVisual Studioを購入することになります。
Mac版のXamarinにはXamarin Studioという開発環境が含まれていますので、Mac上でiOS、Androidアプリの開発を行えます。Mac版Xamarinのダウンロードページはhttps://www.xamarin.com/downloadです(このページは、MacからアクセスするとXamarin Studio Community、WindowsからアクセスするとVisual Studioのダウンロードページが表示されるようになっています)。このページには、英文で「Xamarin Studio Communityは個人開発者、オープンソースプロジェクト、学術研究、教育、スモールプロフェッショナルチームは無料」と記載されています。そのため、基本的にはVisual Studio Communityのライセンスと同様と考えて差し支えないようです。
Xamarin Studio Communityを使用できない規模の組織については、製品版のVisual Studioの購入が必要となります。Visual Studioのサイトによれば、Xamarin Studioのライセンスが付属するのは年間クラウドサブスクリプション、もしくは、標準サブスクリプションとなっています。単品販売されているVisual Studioや月間クラウドサブスクリプションにはXamarin Studioのライセンスは含まれませんので、ご注意ください。
それではいよいよ、次のページからXamarinをインストールしていきましょう。