SHOEISHA iD

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

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

Xamarinで作るAndroid/iOSアプリ

Xamarinを始めよう ~テンプレートをビルドする~

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

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

 Xamarin(「ザマリン」と読みます)は、C#を用いてiOSとAndroidのアプリケーションを開発するためのライブラリおよび開発環境です。XamarinはMicrosoftよりVisual Studioの一部として提供されていますが、Mac版の開発環境も存在しており、Mac上でC#を用いてiOS/Androidアプリを開発することも可能です。前回(第1回)では、Xamarinをインストールしました。今回は、いよいよXamarinのテンプレートを使って簡単なiOS/Androidアプリを作成していきます。

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

対象読者

  • 現在、ネイティブモバイルアプリ開発(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の方が速いという意味ではまったくありません)。

Xamarin.iOS、Xamarin.Androidの構成図
Xamarin.iOS、Xamarin.Androidの構成図

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アプリを作れるようになるとはいえません。しかし開発コスト・保守コストの面から考えると十分に検討に値するかと思います。

さまざまなプラットフォームで利用されるC#
さまざまなプラットフォームで利用されるC#

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で初めてのアプリを作っていきます。

次のページ
初めてのアプリを作る - Windows編

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

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

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

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

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング