特集
» 2016年09月23日 05時00分 UPDATE

特集:Visual StudioとXamarinで始めるiOS/Android/UWPアプリ開発:第1回:Xamarinでアプリを作ろう (1/5)

Visual StudioとXamarinでクロスプラットフォーム開発を始めよう! 今回はXamarinの概要について見た後、Hello Worldプログラムを作成する。

[山本康彦,BluewaterSoft/Microsoft MVP for Windows Development]
「特集:Visual StudioとXamarinで始めるiOS/Android/UWPアプリ開発」のインデックス

連載目次

 C#でWindows用のアプリを開発している読者は多いと思う。ところで、iPhoneやAndroid用のアプリも開発してみたいとは思わないだろうか?「でも、いまさらJavaやObjective-C、Swiftに乗り換えるのは……」というあなたにピッタリなのが、Xamarin(ザマリン)だ。

 Xamarin for Visual Studio(以降、「Xamarin VS」と略す)は、Visual Studioに統合されたクロスプラットフォーム開発環境だ。使い慣れたVisual StudioとC#で、クロスプラットフォーム開発ができる(次の画像)。この連載は、Xamarin VSを使ったアプリ開発の初歩を解説する。

 連載初回は、Xamarinの概要と、Xamarin VSでプロジェクトを作って動かすまでを説明しよう。

Xamarinで作られたアプリの例 Xamarinで作られたアプリの例
Xamarinが自身のイベント「Xamarin Evolve」用にリリースしたアプリ。無償なので、お手持ちの環境で試してみてほしい。画像の左から、Windows 10(PC)/Windows 10 Mobile/iPhone/Androidの画面である。Xamarinでは、主要なスマートフォンだけでなく、デスクトップWindows(8.1以降)用のアプリまで、いっぺんに開発できるのだ。
このアプリの入手先は以下の通り。
・Android: Google Play
・iOS: App Store
・Windows 10: Windowsストア
このアプリのソースコードは、GitHubで公開されている
・ソースコード: GitHub
この画像は、ソースコードのWebページより。
「Xamarin Evolve」アプリはXamarin.Forms(後述)を使って開発されており、UI定義はXAMLで、ロジックコードはC#で記述されている。UI定義と主なロジックコードは、プラットフォーム間で共通だ。ソースコードの9割以上が共通だという(詳細は上記ソースコードのWebページを参照)。

1. Xamarin概要

Xamarinとは何か?

 Xamarinとは、会社名であり、サービス名であり、製品名であり、タマリン猿に由来する*1

 サービスと製品については、後ほど簡単に紹介する。会社としてのXamarinについては、「Xamarin社の歴史(Microsoftによる買収まで) - ちょ窓帳」が詳しい(次の画像)。

Xamarin社の歴史(Microsoftによる買収まで) - ちょ窓帳 Xamarin社の歴史(Microsoftによる買収まで) - ちょ窓帳
日本マイクロソフトのエバンジェリスト千代田まどか氏のブログ記事である。

*1 Xamarinの由来: Xamarinの創立者であるミゲル氏が会社設立時のインタビューで「Xamarin comes from the tamarin monkey.」(Xamarinはタマリン猿から来ている)と述べている。Atsushi Eno氏のブログ記事「Xamarin Monkeyの歴史を振り返る - ものがたり」も面白い。


UWPアプリ開発の選択肢

 この記事はInsider.NETの記事であるので、.NET開発者がXamarin VSを選ぶ理由を考えてみよう。

 Xamarin VSでUWPアプリも開発できる。UWPアプリとは、UWP(ユニバーサルWindowsプラットフォーム)上で動作するアプリである。UWPとは、Windows 10ファミリー(PC用/スマートフォン用/Xbox用/HoloLens用/組み込みコンピュータなどに向けて提供される各種のWindows 10の総称)に共通するアプリケーション実行環境のことだ。Windows 10ファミリー用のアプリをXamarin VSで開発できるのである。

 UWPアプリをC#とXAMLで開発しようと思うと、3つの選択肢がある。WPF+Desktop App Converter*2、Universal Windows開発*3、そしてXamarin VSのXamarin.Formsだ*4

 3つの選択肢の長所/短所を簡単にまとめると、次の表のようになる。どれもやったことがないなら、iOS/Android用のアプリも開発可能なXamarinは魅力的だろう。クロスプラットフォーム開発であれば、Xamarin VS一択。そうでなくても、PC用Windowsの機能(Win32 APIやADO.NETなど)をフルに使う必要がなければ、XamarinでUWPアプリを開発できる。

開発方法 WPF+Desktop App Converter Universal Windows開発 Xamarin.Forms
対応プラットフォーム PC用のWindows 10のみ UWP(Windows 10搭載のPC/スマートフォン/Xbox/HoloLens/組み込みコンピュータなど) UWPに加えて、
Android(4.0〜)
iOS(6.1〜)
Windows Phone 8.1
Windows 8.1
長所 PC用Windowsの機能をフルに使える。
既存のスキルやコード資産が豊富
Windowsストアアプリの開発スキルがほぼそのまま使える 対応プラットフォームが多い
短所 PCでしか動作しない UWP APIのみ利用可能。
セキュリティ面からUWP APIは機能が制限されている
実現できる機能については、Universal Windows開発と同様。
XAML書法がWPFやUniversal Windows開発とは異なる
表 UWPアプリをC#とXAMLで開発する3つの方法
Xamarin.Formsは対応プラットフォームの多さで飛び抜けている。これからXAMLを覚えるというのであれば、Xamarin.Formsを選ばない手はないだろう。Xamarin.FormsをUWPアプリだけの開発に使ってもよいのだから。
WPFとUniversal Windows開発のXAMLはよく似ているので、WPFの経験があるならUniversal Windows開発に移行しやすい。

*2 WPFで従来のWindowsデスクトップ用アプリを作り、それをDesktop App Converter(開発コード名「Project Centennial」)でUWPアプリに変換する方法。Desktop App Converterアプリは2016年9月にWindowsストアで公開されている。ただし、本稿執筆時点ではコマンドラインから変換作業を行う必要があって、少々面倒だ。次期Visual Studio “15”では、IDEに組み込まれるもようだ

*3 Windows 8.xの「ストアアプリ」開発を引き継ぐ開発方法。いわば「マイクロソフト純正」方式。これを特定する名称はないようだ。新しくプロジェクトを作るときのダイアログでテンプレート名に「(Universal Windows)」と付記されていることから、本稿では「Universal Windows開発」と仮に呼ぶこととする。この方法にも興味があるなら、「特集:UWPとは何か:Windowsフォーム開発者のためのWindows 10 UWPアプリ開発入門(前編)」をご覧いただきたい。

*4 Xamarin VSでUIを構築する方法には、Xamarin.FormsとネイティブUIの2通りがある。Xamarin.Formsでは、XAMLでクロスプラットフォームなUIを定義できる。


Xamarinのサービスと製品

 本連載で解説するのはXamarin VSであるが、Xamarinが提供するその他のサービスや製品も簡単に紹介しておこう(次の画像と表)。

Xamarinが提供するサービスと製品 Xamarinが提供するサービスと製品
Xamarin社のサイトより。

名称 説明
Xamarin Platform 統合開発環境(IDE)
Mac版: Xamarin Studio*5
Windows版: Xamarin for Visual Studio(Xamarin VS)*6
Xamarin Test Cloud 自動テスト用クラウド
iOSを含む2000種類以上のデバイスでの自動テストをクラウドで提供(有償)
Hockey App(旧Xamarin Insights) アプリのクラッシュレポートを収集するXamarin Insightsクラウドサービス(有償)。
マイクロソフトに買収されたことにより、β版の配布やテスターからのフィードバックなどを収集するHockeyAppクラウドサービスに統合される
Xamarin University オンライン/オフラインの開発トレーニング(有償、英語)
表 Xamarinが提供するサービスと製品
この表内のリンク先は、いずれも日本代理店であったエクセルソフトのWebページにしてある。日本語コンテンツなので、興味を引かれたらぜひ読んでほしい。
なお、マイクロソフトによるXamarinの買収に伴い、エクセルソフトの代理店業務は終了している(=この表のサービス/製品の販売業務はもう行っていない。上のリンクは日本語で情報を参照できることから、あえて掲載している)。現在のエクセルソフトからは、開発支援/導入支援を行う「Kick-Offサービス」や有償セミナーなどの「Xamarin有償サービス」が提供されている。

*5 Xamarin StudioにはWindows版もあったが、Windows版の今後はXamarin VSだけになるものと思われる。また、Xamarin Studio for Macのライセンス体系もVisual Studioファミリーに組み込まれており、Visual Studio Communityエディションが利用できない組織ではXamarin Studio for Macの利用も有償になる(MSDN付きVisual Studioのライセンスが必要)。

*6 Communityエディション以上のVisual Studio 2015に含まれる。個人で利用するには、無償のCommunityエディションが利用できる(組織でも条件を満たせばCommunityエディションを利用できるが、その詳細は「Visual StudioとMSDNのライセンス ホワイトペーパー」を確認してほしい)。


       1|2|3|4|5 次のページへ

Copyright© 1999-2017 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

Focus

- PR -

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。