特集:.NETでもAndroid開発はできるのか?

初めてのMono for Android開発

WINGSプロジェクト かるあ(監修:山田 祥寛)
2011/08/05
Page1 Page2 Page3 Page4

書籍検索アプリを作ってみよう

 ここからはMono for Androidで、Amazonの書籍検索を行うサンプル・アプリを作成しながら、Mono for Androidでどのようにアプリ開発を行うのかを確認する。

Mono for Androidのプロジェクト作成

 Mono for Androidをインストールすると、C#のプロジェクト・テンプレートにMono for Androidのプロジェクト・テンプレートが表示される(図5)。

図5 [Visual C#]−[Mono for Android]にインストールされたテンプレート([新しいプロジェクト]ダイアログ)

 「Mono for Android Application」テンプレートを利用してプロジェクトを作成すると、図6の構成のプロジェクトが作成される。

図6 Mono for Androidアプリケーションのプロジェクト構成

 一度でもAndroidのアプリを作成したことがあるなら、見慣れたフォルダ構成だろう。

 表1にそれぞれのフォルダの概要を示す。

フォルダ 概要
Assets テキスト・ファイルなど、画像以外のコンテンツ・ファイル
Resources/Drawable 画像ファイル
Resources/Layout レイアウト・ファイル
Resources/Values リソース・ファイル
表1 プロジェクト内のフォルダ構成の概要

 とりあえずこの状態で、このMono for Androidアプリケーションをデバッグ実行して、エミュレータでの動作を確認してみよう。

 デバッグ実行すると、起動するプラットフォームを選択するための[Select Device]ダイアログ(図7)が表示される。今回は新しくエミュレータを起動させて、そのエミュレータにアプリを配置させたいので、[Select Device]ダイアログ中の[Start emulator image]リンクで新しいエミュレータを起動後に、先ほど作成したAndroidのエミュレータ・イメージ「MonoDroid」を選択して[OK]ボタンをクリックする。

[Start emulator image]リンクをクリック
「MonoDroid」を選択して[OK]ボタンをクリック
「MonoDroid」エミュレータが起動するので、完全にOSが立ち上がるのを待つ
起動した「MonoDroid」エミュレータを選択した状態で[OK]ボタンをクリック
図7 起動するプラットフォームを選択するための[Select Device]ダイアログ
評価版の場合、[Evaluation version only deploys to emulators. Click to activate]というバナーが[Running devices]欄の上に表示される場合があるが、このバナーは無視してよい。

 しばらくすると、エミュレータへのアプリ配置が完了し、図8のような画面が表示される。

図8 Mono for Androidアプリケーションを実行するAndroid SDKのエミュレータ

【コラム】Visual Basicは?

 Mono for Androidをインストールすると、C#ではMono for Androidのプロジェクト・テンプレートが表示されているが、Visual Basicには表示されない。

 Monoでは、Visual Basicの動作に必要なMicrosoft.VisualBasic名前空間のクラスが実装されていないため、現在はMono for AndroidでVisual Basicのアセンブリを動作させることはできない。Mono for AndroidのFAQページを確認すると、将来のバージョンでサポートしたいとコメントされているので、期待したい。

プロジェクトの構成概要

 Mono for Androidを利用すると、アプリ内で最も重要で複雑なビジネス・ロジック部分は、複数のプラットフォームでソース・コードの共有が可能だ。

 以下で紹介するサンプル・プロジェクトでは、Android向けのプロジェクトのほかに、Androidのプロジェクトにあるビジネス・ロジックを利用するWindows Phoneのプロジェクトをソリューションに追加している。

 そのプロジェクトの構成概要を図9に示す。

図9 AndroidプロジェクトとWindows Phoneプロジェクトでビジネス・ロジック部分のコードを共有するサンプル・プロジェクトの構成概要

 図10に、Visual Studioを使って、Mono for Android向けに作成したビジネス・ロジックのソース・ファイルをWindows Phoneプロジェクトにリンク参照として追加する方法を示す。

Windows Phoneプロジェクト側の「Service」フォルダの右クリック・メニューから[追加]−[既存の項目]を実行
Mono for Android側のビジネス・ロジックのソース・ファイル群を選択し、[追加]ボタンの右側の[▼]をクリックして[リンクとして追加]を選択
Windows Phoneプロジェクト側の「Service」フォルダに、先ほど選択したソース・ファイル群がリンク参照として追加される
図10 AndroidプロジェクトとWindows Phoneプロジェクトでのソース・ファイルの共有手順
Visual Studioを使って、Mono for Android側のビジネス・ロジックのソース・ファイルを、Windows Phoneプロジェクトにリンク参照として追加する。
  [ソリューション エクスプローラー]上で、共有ソース・ファイル追加先のフォルダ(=今回はWindows Phoneプロジェクト側の「Service」フォルダ)を右クリックしてコンテキスト・メニューを開き[追加]−[既存の追加]を選択する。
  共有ソース・ファイル提供元のファイル群を選択する(この例では、Mono for Androidプロジェクトにある「AmazonService.cs」ファイルと「SignedRequestHelper.cs」ファイルを選択)。
  [追加]ボタンの[▼]部分をクリックし、[リンクとして追加]をクリックする。
  [ソリューション エクスプローラー]上の、共有ソース・ファイル追加先のフォルダ(=今回はWindows Phoneプロジェクト側の「Service」フォルダ)にリンク参照としてソース・ファイル群が追加される。

 本稿ではスペースの関係上、Windows Phoneのコードとビジネス・ロジックの実装については触れない。実装に興味がある場合は、本稿のサンプルをダウンロードして確認してほしい。ただし、このサンプルを開くには、「Windows Phone Developer Tools(英語)」を事前にインストールしておく必要がある。

 続いて、書籍検索を行うMono for Androidサンプル・アプリの画面レイアウトを作成していこう。


 INDEX
  特集:.NETでもAndroid開発はできるのか?
  初めてのMono for Android開発
    1.Mono for Androidとは/開発環境の構築
  2.書籍検索アプリを作ってみよう(プロジェクト構成の概要)
    3.書籍検索アプリを作ってみよう(画面の作成/Windows Phoneとのコード共有)
    4.センサーに触ってみよう


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間