SHOEISHA iD

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

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

速習 Xamarin入門

Xamarinで広がるC#によるマルチプラットフォーム開発

速習 Xamarin入門 第1回

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

Xamarin.Form

Xamarin.Formとは?

 これまでの説明では、画面の定義について、Xamarin.AndroidではXML、Xamarin.iOSではStoryboardといったそれぞれのプラットフォーム別に定義する必要があるとしてきましたが、Xamarin 3から登場したXamarin.Formを利用すれば、iOS、Android、Windows Phoneの画面を同じXAMLで定義することが可能になります。

 Xamarin.Formはまだ新しい機能でデザインビューで見た目を確認できないなどの不便さはありますが、画面の定義も共通化できる注目の機能です。

今のところ画面の定義はXAMLコードでしか確認できないという不便さがある
今のところ画面の定義はXAMLコードでしか確認できないという不便さがある

Xamarin.Formを利用したプロジェクトの作成

 Xamarin.Formに対応したプロジェクトは「新しいプロジェクト」ポップアップの右ナビの「Mobile Apps」から作成します。プロジェクトは共通コードをPCL(Portable Class Libraly)で実装するかSharedプロジェクトを用いるかを選ぶことができます。

Xamarin.Formプロジェクトを作成する
Xamarin.Formプロジェクトを作成する
「'ProductID'属性は無効です」と表示されたら

 Xamarin.Formプロジェクトの作成時にWindows Phoneアプリをビルドすると「'ProductID'属性は無効です」といったエラーが表示されることがあります(おそらく一時的なバグでしょう)。

 

 この場合、WMAppManifest.xmlファイルを開き、ProductIDとPublisherIDの値を確認します。通常のWindows Phoneアプリの場合でProductID="{プロダクトID}"のように表記されているはずの部分が、Xamarin.Formの場合はProductID="プロダクトID"という風に{}が抜けた形で記載されてしまっているので、{}を含んだ形に書き換えてあげれば解決します。

サンプルを動かしてみる

 Xamarin.Formの今後の学習に最適なサンプルを紹介します。

 例えば、サンプルのXAMLSamplesを試してみると、Xamarin.Formでさまざまはコントロールを動作するデモを確認することができます。

XAMLSamplesサンプルでAndroid、Windows Phoneの同じXAMLを表示
XAMLSamplesサンプルでAndroid、Windows Phoneの同じXAMLを表示

 Xamarin.Formについて学ぶ場合、上記サンプルおよび、以下の公式ページが参考になります。

Xamarin.Formの採用に関して

 Xamarin.Formの採用を検討する場合、現状では機能に足りない部分(例えばデザインビューでプレビューできない)があること、今後新機能追加に伴い仕様の変更が発生するリスクがあることは検討すべきだと思います。

 Xamarinは設定によりアルファ版、ベータ版をインストールして動作を確認することもできますので、最新版の動向を確認することで、ある程度上記リスクは予測可能になります。

Visual Studioのオプションでアルファ版やベータ版のXamarinを試すこともできる
Visual Studioのオプションでアルファ版やベータ版のXamarinを試すこともできる

 また、Xamarin.Formがマルチプラットフォーム間で同じXAML定義を使用するという性質上、プラットフォーム固有の機能を利用できない可能性があることも考慮する必要があります。

 これはマルチプラットフォーム開発を謳ったツールすべてにあてはまる問題ですが、Xamarinはプラットフォーム固有の表示の仕組みと、プラットフォーム固有のAPIをC#から呼び出すことで固有の機能を利用できる反面、その部分は共通化できないという特徴を持っていました。コードは固有のAPI呼び出し部分を共通化しないことである程度回避できましたが、画面に関しては、それぞれのプラットフォームで別々に定義するしかこれまでは選択肢がありませんでした。

 Xamarin.Formは新たに画面の定義の共有化という選択肢をXamarinに追加しましたが、選択できる代わりに、開発者はアプリの特徴に合わせての選択が必要になりました。

まとめ

 Xamarinの概要について紹介しました。

 マルチプラットフォーム開発という場面でXamarinが強力なツールであること、また、Universal Windowsアプリと組み合わせるとさらに幅が広がることが伝わったでしょうか?

 Xamarin.Form、PCL、Sharedプロジェクトなどのテーマについても今後、マルチプラットフォーム環境で効率的な開発をするために学んで行く必要があります。

 またXamarinは急速に改善が進んでいるツールでもあります。筆者も引き続きXamarinについての情報を発信し、最新情報を紹介していきたいと思います。

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

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

西村 誠(ニシムラ マコト)

 Microsoft MVP Windows Platform Development。 Flash、PHPの開発経験もあり国産ECサイト構築フレームワーク「EC-CUBE」の公式エバンジェリストでもある。 ブログ:眠るシーラカンスと水底のプログラマー 著書:基礎から学ぶ Windowsストアアプリ開発

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング