本サイトからスピンオフした姉妹サイトです。Studioのプロジェクト内でソースファイルへのリンクを追加する方法を説明する。→Xamarin.iOS/Androidでソースコードを共有する手法はいくつかあるが、今回は最も原始的な「リンクによるソースファイルの共有」について解説する。シナリオ簡単な計算を行うアプリケーション「CalcSample」として、Xamarin.iOSプロジェクトの「CalcSample.iOS」と、Xamarin.Androidプロジェクトの「CalcSample.Android」を作成する。このアプリケーションの計算処理は、iOSとAndroidで同一なので、図1に示すように、そのソースファイルCalc.csを両者で共有したい。CalcSample.iOSプロジェクトを作成するまずCalcSampleソリューションと、CalcSample.iOSプロジェクトを作成する。Application]を選択し、プロジェクト名を「CalcSample.iOS」、ソリューション名を「CalcSample」として[OK]ボタンを押す。次に、MainStoryboard.storyboardファイルを開いて、図3のようにUITextFieldを2つ、UIButton、UILabelを1つずつ配置する。identifierは左から、editNumberA、editNumberB、buttonCalc、labelResultとする。CalcSample.iOSの画面レイアウト(MainStoryboard.storyboard)画面で見ての通り、2つの数値を足し算して合計を表示するだけの簡単なアプリケーションだ。次に、この計算処理を行うCalcクラスを、以下の手順で追加する。CalcSample.iOSプロジェクトをマウスで右クリックし、[追加]-[新しいファイル]で表示されるダイアログボックスで、[General]-[空のクラス]を選択し、ファイル名をCalc.csとして[新規](New)ボタンを押す。Calc.csファイルは以下のように実装する。Addメソッドで2つの数値を足し算して返すだけだ。numberB;}}}リンク共有するソースファイル(Calc.cs)新規作成したクラスは、名前空間がCalcSample.iOSとなっているが、共通で使用するファイルとしてはふさわしくないので、CalcSample.Coreとしている。次に、SampleCalc.iOSViewController.csファイルで、buttonCalcを押したときに、Calcクラスを使って計算をさせ、結果を表示する実装を以下のように行う。calc.Add(Convert.ToInt32(editNumberA.Text),Convert.ToInt32(editNumberB.Text)).ToString();};}......省略......}}Xamarin.iOSプロジェクト内でCalcクラスを使うコード(SampleCalc.iOSViewController.cs)ここまでのプログラムを実行すると、図4のようになる。CalcSample.Androidを作成する続いて、CalcSample.Androidプロジェクトを作成する。Application]を選択し、プロジェクト名を「CalcSample.Android」として[OK]ボタンを押す。次に、Main.axmlファイルを開いて、下記コードのようにUIをレイアウトする。iOS版と同じく、EditBoxを2つ、Button、TextViewを1つずつ配置する。idは左から、editNumberA、editNumberB、buttonCalc、labelResultとする。/></LinearLayout>CalcSample.Androidの画面レイアウト(Main.axml)Main.axmlファイルをUIデザイナーで開くと図6のようになる。Calc.csファイルを共有するAndroid版の計算処理は、iOS版で作成したCalc.csファイルをそのまま使用する。以下の手順で、Calc.csをCalcSample.Androidプロジェクトに追加する。CalcSample.Androidプロジェクトをマウスで右クリックし、[追加]-[ファイルを追加]で表示されるダイアログボックス(図7参照)で、CalcSample.iOSディレクトリにあるCalc.csファイルを選択して[Open](開く)ボタンを押す。file](ファイルにリンクを追加)を選択して[OK]ボタンを押す。プロジェクト外のファイルを追加するときに表示されるダイアログボックスこれでCalcSample.Androidプロジェクトに、Calc.csファイルへの「リンク」が追加された。プロジェクトのツリーを見ると、Calc.csのアイコンが他とは少し違う、鎖の付いたものになっているのが分かるだろう(図9)。これは、「プロジェクトにはファイルの実体は持っておらず、別の場所にあるファイルの参照のみを保持している」という意味だ(図8の選択肢で他の項目を選べば、プロジェクトに実体を移動またはコピーすることもできる)。Calc.csファイルへのリンクを追加したプロジェクトツリーあとはiOS版と同様、MainActivity.csファイルで、buttonCalcを押したときの処理を以下のように実装する。calc.Add(Convert.ToInt32(editNumberA.Text),Convert.ToInt32(editNumberB.Text)).ToString();};}}}Xamarin.Androidプロジェクト内でCalcクラスを使うコード(MainActivity.cs)ここまでのプログラムを実行すると、図10のようになる。CalcSample.Androidの実行画面まとめ「リンクによるソースファイルの共有」について解説した。Projects」で使われている方式だ。簡単に実現できるが、単なるファイルの共有なので、片方でプラットフォームに依存したコードを書くと、もう片方ではビルドエラーになってしまう。PLATFORMディレクティブも存在するが、多用するとソースコードが複雑になる。プロジェクト外のファイルを参照するので、ファイル管理の面でも注意が必要だ。SDK標準のエミュレーターより高速に動作するAndroidシミュレータだ。2014で発表された新機能の1つで、現在はプレビュー版ながらXamarinのライセンスがあれば使用できる。Playerが自動的に前面に表示されるなど)ので、正式リリースに期待したい。※以下では、本稿の前後を合わせて5回分(第24回~第28回)のみ表示しています。INDEX]を参照してください。Studioの新機能として、コードエディターを左右の領域に分割して表示できるようになった。マウスとショートカットキーによる操作方法を説明する。Xamarin.iOS/Androidでログを出力するには?Xamarin.AndroidでネイティブAndroidのLogクラスを使ってログ出力する方法と、Xamarin.iOS/Androidで.NET基本クラスライブラリ機能を使ってログ出力する方法を解説する。Studioのプロジェクト内でソースファイルへのリンクを追加する方法を説明する。Xamarin.iOS/Androidでソースコードを共有するには(ポータブルクラスライブラリ編)Xamarin.iOS/Android間でソースコードを共有する方法の1つとして、複数のプロジェクトから共通のポータブルクラスライブラリ(PCL)を参照する方法を説明する。「Json.NET」というライブラリを使う方法を説明する。機械学習エンジニアを目指す人~初中級者のための技術情報サイトです。「機械学習&AI」「クラウド&ビッグデータ」「IoTデバイス」のネット記事情報を共有中。開発者のためのSlackチーム、作りました:「機械学習&AI」「クラウド&ビッグデータ」「IoTデバイス」のネット記事情報を共有中。2020最適なビューへの切り替えを推奨します:スマートフォン用表示に。