対象読者
- 現在、ネイティブモバイルアプリ開発(iOS、Android)をしている方。
- 現在、Visual Studioを用いてC#アプリの開発をしている方。
必要な環境
本記事は、Windows上のVisual Studio 2015およびMac上のXamarin Studioを用いて解説しています。
Xamarin開発の前に知っておきたいこと
Xamarinは、.NET Frameworkの技術を用いたクロスプラットフォーム開発環境です。そのため、他のクロスプラットフォーム開発環境とは、さまざまな面で異なる部分があります。Xamarinでのアプリ開発を紹介する前に、この点について簡単に紹介します。
他のクロスプラットフォーム開発環境との違い
iOSおよびAndroidを対象としたクロスプラットフォームな開発環境には、Apache Cordova(以下Cordova)やTitaniumなど、さまざまなものがすでに存在します。それらとXamarinとの違いは何でしょうか?
CordovaやTitaniumといった既存のクロスプラットフォーム開発環境は、HTML+CSS+JavaScriptというWeb系の技術を用いたものです。JavaScriptの実行速度はかなり速くなりましたが、それでもパフォーマンス面に不安を覚える方も多いでしょうし、なによりネイティブアプリ開発とは、また違うスキルやノウハウが必要になります。
これに対してXamarinでは、ネイティブなアプリケーションが出力されます。つまりXamarinで作ったアプリケーションは、iOSでのObjective-C/Swift、AndroidでのJavaアプリケーションと基本的に変わりません。もちろんパフォーマンスもネイティブと遜色ありません。同じ処理内容のコードをiOSで比較してみたら、Swift>Xamarin>Objective-Cと、Objective-CよりもXamarinの方が速いという結果になったこともあります(注:コンパイラがどのような最適化を施すかに強く依存するので、あくまでもこのようなことになる場合もあるという一例です。常にXamarinの方が速いという意味ではまったくありません)。
C#について
Xamarinで使用するプログラミング言語はC#です。
現在、C#は.NET FrameworkやWindowsアプリケーション開発のためだけのプログラミング言語ではありません。例えば、Unityなどのゲーム開発プラットフォームでも開発言語としてC#が使われています。
また、Microsoftも2016年6月に.NET Core 1.0およびASP.NET Core 1.0としてLinux/Macをサポートする.NET Frameworkをリリースしました。これはXamarinを使っている方にとっても、非常にインパクトのあるニュースだと筆者は考えます。スマホアプリの開発にXamarinを選択し、サーバー側もASP.NETにすれば、すべてC#で統一できます。もちろん開発環境もVisual Studioで統一できます。
今までは「サーバーはLinuxだからASP.NETは使えない」という場合も多かったと思います。しかし、ASP.NET CoreによりWindows/Linux/Macのすべてがサポートされるようになったため、このような問題はなくなりました。スマホアプリもサーバーアプリも全部Visual Studioを使ってC#で開発する、そんなことができるようになりました。
もちろん同じC#だからといって、iOSやAndroidの開発者が簡単にASP.NETアプリを作れるようになるとはいえません。しかし開発コスト・保守コストの面から考えると十分に検討に値するかと思います。
Xamarinの生い立ち
Xamarinの生い立ちについて簡単に説明します。
1. MonoとXimian
Monoプロジェクトという、オープンソースソフトウェア(OSS)として.NET Framework互換環境を開発するプロジェクトがあります。MonoはBase Class LibraryやASP.NET、それにC#コンパイラなど.NET Framework互換環境に必要なものをすべてOSSとして実装し、それらをWindows/Linux/Macで動かすことを目標にしていました。Monoの開発は、Ximian(ジミアン)社で行われていました。
2. Novell時代
Ximian社はNovell社に買収されましたが、その後もMonoの開発は続けられました。Monoは依然としてOSSではありましたが、Monoをベースに開発されたMonoTouch(のちのXamarin.iOS)/Mono for Android(のちのXamarin.Android)が商品としてリリースされました。
3. Xamarin社立ち上げ
その後、Novell社はAttachmate社に買収されました。その際に、さまざまな部門の見直しが行われ、Monoの開発部門も廃止となりました。これを期にMonoの開発メンバーたちがXamarin社を立ち上げました。権利関係など、いろいろと難しい問題もあったそうですが、無事OSSとしてMonoの開発が、製品としてXamarinの開発が継続されることになりました。
4. そしてMicrosoftへ
2016年2月24日、Microsoft社がXamarin社を買収すると発表がありました。製品としてのXamarinだけでなく、会社としてのXamarinがMicrosoftに合流することになりました。
2016年4月1日、アメリカで開催されていたMicrosoft社のカンファレンスBuild 2016のキーノートスピーチで、XamarinがVisual Studioの一部となることが発表されました。同時にXamarinの多くの部分がOSSとして公開されることも発表されました。
Xamarinのことをすでに調べたことがある方は、多くの資料が英語であることに気づいたかと思います。Xamarinの公式サイトもhttps://www.xamarin.com/であり、英語のみのサイトとなっています。
最近のMicrosoft社は製品がリリースされるとき、もしくはリリースされる前のベータやRCの段階で、日本語化も含め各言語に対応するのが当たり前になっています。Xamarinの情報がまだ英語だけなのは、もともとMicrosoftとは別の組織のものだったからといえるでしょう。今後はXamarinのドキュメント類も翻訳が進んでいくのではないかと期待しています。
今ではVisual Studioの一部となっているXamarinですが、以上のようにこれまでさまざまな歴史がありました。今でもWebで検索すると、有料だった時代にXamarin社から提供されていた記事や、MonoTouch/Mono for Android時代の記事などが見つかります。場合によっては混乱の元になるかもしれませんので、Xamarinの生い立ちや歴史を簡単にでも把握しておくと理解の手助けになるかもしれません。
次ページではいよいよ、Xamarinで初めてのアプリを作っていきます。