はじめに
アプリ開発にはなにを使っていますか?CordovaやUnityなど数々のクロスプラットフォーム開発環境が存在します。最近、C#を用いたアプリ開発ではUnityが人気です。しかし、Unityはゲーム向けの開発環境であるため、ゲーム以外のアプリにはあまり向いていません。そこで、次の選択肢になるのが今回紹介するXamarinです。
この記事では、Xamarinの概要を知りたい方のために、Xamarinの概要とコアライブラリなどについてお伝えしていきます。これからさらに人気が高まっていくと予想されますので、どんなものかだけでも理解しておきましょう。
Xamarinとは?
Xamarinは、Xamarin社により開発されたクロスプラットフォーム開発環境です。C#でAndroidやiOS、Windows(UWP、Store、Phone)、Macプラットフォーム用のアプリが開発できます。元々は.NET Framework互換環境Monoを開発していた企業で、2016年4月1日にマイクロソフトによって買収され注目を浴びました。今では、Visual Studioのインストーラーに統合されており、簡単にインストールできます。
オープンソースになり無償化されたXamarin
マイクロソフトによる買収の後で、無償ライセンスが追加され、一定の条件のもと無料で使えるようになりました。また、Xamarinを構成するコアライブラリ(SDK)もオープンソースとして公開されています。各コアライブラリについては後ほど説明します。
Xamarinを無償で使う条件
Xamarinを無償で利用するには、以下のいずれかの条件に該当する必要があります。
- 個人開発者
- 学習・研究目的での利用
- オープンソースソフトウェアの開発
- PC台数250台未満かつ年商1億円未満の企業や団体(5ユーザーまで利用可能)
いずれの条件にも該当しない場合、有償ライセンスを購入する必要があります。日本ではエクセルソフトがライセンスを販売しています。
ライセンス販売ページ:http://www.xlsoft.com/jp/products/xamarin/price.html
Xamarinのコアライブラリ
Xamarinは、各プラットフォーム用のコアライブラリで構成されています。ネイティブのAPIをほぼ100%サポートしており、最新APIへの対応も随時行われます。薄いラッパーとして提供されているので、ネイティブAPIの知識をそのまま活かせます。
Xamarin.Android
レポジトリURL:https://github.com/xamarin/xamarin-android
Xamarin.Androidで開発されたアプリは、最終的に一般的なアプリと同じくAPKにパッケージ化されます。そのため、ネイティブアプリと同等のパフォーマンスを発揮できます。また、UIについてもネイティブUI要素を使うことができ、デザイナーも用意されています。もちろん、デバッグにはAndroidエミュレーターが使えます。Visual Studio付属のエミュレーターに加え、最近高速化された公式エミュレーターも使用可能です。
Xamarin.iOS
レポジトリURL:https://github.com/xamarin/xamarin-macios
Xamarin.iOSで開発されたアプリは、ネイティブのARMバイナリにコンパイルされ、一般的なアプリと同じくIPAにパッケージされます。また、UIについてもネイティブUI要素を使うことができ、Xcodeに似たデザイナーが用意されています。ただし、現在のところMacでしかビルド(コンパイル)を行うことができません。ビルドのみMacで行うか、ビルドサービスを利用しましょう。一方、WindowsでもiOSエミュレーターが用意されているため、デバッグを行うことができます。
Xamarin.Mac
レポジトリURL:https://github.com/xamarin/xamarin-macios
Xamarin.Macでは、その名の通りMac用のアプリケーションをビルドできます。開発は、MacとXamarin Studioの組み合わせで行います。Visual Studioは対応していません。Xamarin Studioについては後で紹介します。なお、UIデザインについてはXcodeのInterface Builderを使う必要があります。WindowsアプリをMacに移植するには最適な手段ですね。
共通ロジックコード部分を共有する
Xamarinでは、2つの方法でプラットフォーム非依存のロジックコード部分を各プラットフォームで共有することができます。ひとつ目は、PCL(Portable Class Library)という共通DLLを作成する方法です。PCLでは、サポートするプラットフォーム間で共通するAPIのみ使用できます。ふたつ目は、Shared Projectという共有プロジェクトでコードそのものを共有する方法です。2つの方法を使い分けて、積極的にコード量を減らしていきましょう。
UIもクロスプラットフォームにするXamarin.Forms
レポジトリURL:https://github.com/xamarin/Xamarin.Forms
Xamarin.Formsは、iOS・Android・Windows PhoneのUIコード(画面)を共通化するためのライブラリです。最終的にネイティブのUIコードにコンパイルされるため、共通コードでもネイティブUI要素を使うことができます。なお、現在のところデザイナーは提供されていません。すべてコードで記述する必要があります。今後の改善に期待したいところです。機能的に不足する部分は、Xamarin.AndroidやXamarin.iOSと組み合わせることで補うこともできます。
Macでも開発できる!Xamarin Studio
公式ページURL:http://www.xlsoft.com/jp/products/xamarin/studio.html
MacでXamarinを使うには、Visual Studioの代わりにXamarin Studioを使います。Xamarin Studioは、Xamarinのために開発された無償のIDEです。Android・iOS・Macアプリの開発ができます。なお、使用には「Xamarinを無償で使う条件」と同じく一定の条件があります。さすがに、Visual Studioと同等の機能とまではいきませんが、コードの自動補完やデザイナー、デバッガーなど通常の開発に必要な物は一通りそろっています。Macユーザーの方は必見です。もちろん、Windowsでも使えます。
まとめ
Xamarinは以前からVisual Studioに統合されていましたが、マイクロソフトに買収され無償化されたことにより、さらにユーザー数を伸ばしていくことでしょう。とはいえ、まだ荒削りな部分もあり、これからの成長が期待されます。それを差し引いても魅力的なプラットフォームです。あなたもXamarinでアプリ開発してみませんか?
本ブログは、Git / Subversionのクラウド型ホスティングサービス「tracpath(トラックパス)」を提供している株式会社オープングルーヴが運営しています。
エンタープライズ向け Git / Subversion 導入や DevOps による開発の効率化を検討している法人様必見!
「tracpath(トラックパス)」は、企業内の情報システム部門や、ソフトウェア開発・アプリケーション開発チームに対して、開発の効率化を支援し、品質向上を実現します。
さらに、システム運用の効率化・自動化支援サービスも提供しています。
”つくる情熱を支えるサービス”を提供し、まるで専属のインフラエンジニアのように、あなたのチームを支えていきます。
No Comments