SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Xamarinで作るAndroid/iOSアプリ

Xamarinを始めよう ~概要とインストール~

Xamarinで作るAndroid/iOSアプリ 第1回


  • X ポスト
  • このエントリーをはてなブックマークに追加

 みなさん、Xamarinはご存じでしょうか? Xamarin(「ザマリン」と読みます)は、C#を用いてiOSとAndroidのアプリケーションを開発するためのライブラリおよび開発環境です。XamarinはMicrosoftよりVisual Studioの一部として提供されていますが、Mac版の開発環境も存在しており、Mac上でC#を用いてiOS/Androidアプリを開発することも可能です。本記事では、Xamarinの概要の紹介およびインストールについて解説します。また、次回以降では、より具体的な開発の手順やXamarinでのアプリの作り方について解説していく予定です。

  • X ポスト
  • このエントリーをはてなブックマークに追加

対象読者

  • 現在、ネイティブモバイルアプリ開発(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のネイティブアプリ開発のノウハウやスキルの多くをそのまま活かすことができます。

Xamarinによるネイティブアプリ開発
  プログラミング言語 開発環境 開発に使用する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という専用の開発環境が用意されているので、これを利用して開発することができます。

Visual Studio(Windows)
Visual Studio(Windows)
Xamarin Studio(Mac)
Xamarin Studio(Mac)
Xamarinの特徴
クロスプラットフォームなアプリ開発 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固有部分/両方に共通な部分と切り分けた上でクロスプラットフォーム開発を行うことが可能です。

Xamarin.iOS、Xamarin.AndroidとPCL
Xamarin.iOS、Xamarin.AndroidとPCL

クロスプラットフォームな開発環境

 そしてアプリを開発するための開発環境もまた、クロスプラットフォームです。

 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をインストールしていきましょう。

次のページ
Xamarinのインストール - Windows編

修正履歴

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Xamarinで作るAndroid/iOSアプリ連載記事一覧
この記事の著者

青柳 臣一(アオヤギ シンイチ)

Twiter: https://twitter.com/ShinichiAoyagi中学生のころにプログラミングの楽しさを知り、それ以来趣味として仕事としてプログラミングに関わるようになる。23才のときに株式会社ディーバを設立。CADソフトウエア、給水設備監視システムなどのオリジナルソフトの開発、また、さま...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9619 2016/09/12 11:32

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング