Visual StudioとXamarinでクロスプラットフォーム開発を始めよう! 今回はXamarinの概要について見た後、Hello Worldプログラムを作成する。
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とは、会社名であり、サービス名であり、製品名であり、タマリン猿に由来する*1。
サービスと製品については、後ほど簡単に紹介する。会社としてのXamarinについては、「Xamarin社の歴史(Microsoftによる買収まで) - ちょ窓帳」が詳しい(次の画像)。
*1 Xamarinの由来: Xamarinの創立者であるミゲル氏が会社設立時のインタビューで「Xamarin comes from the tamarin monkey.」(Xamarinはタマリン猿から来ている)と述べている。Atsushi Eno氏のブログ記事「Xamarin Monkeyの歴史を振り返る - ものがたり」も面白い。
この記事は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開発とは異なる |
*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 VSであるが、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 | オンライン/オフラインの開発トレーニング(有償、英語) |
*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のライセンス ホワイトペーパー」を確認してほしい)。
Copyright© Digital Advantage Corp. All Rights Reserved.