(1) Xamarin.Formsのプロジェクトの構成について
(1-1) プロジェクト構造の概要
(1-2) プロジェクトの初期ファイルの一覧
(1) Xamarin.Formsのプロジェクトの構成について
新規にXamarin.Formsのプロジェクトを作成すると、いくつものファイルが初期状態で作られますが、その構造や各ファイルの役割の概要について紹介します。
(図111)プロジェクト作成直後のツリー構造
(1-1) プロジェクト構造の概要
Xamarin.FormsはUI(画面)を定義するXAML部分(○○.xaml)と、ロジック(プログラム)のC#部分(○○.xaml.cs)とが連携して動作しています。そしてC#部分は別名「コード・ビハインド」とも呼ばれています。
(図112)○○.xamlと○○.xaml.csの関係
プロジェクトを作った直後ではこのUIとロジックのペアが2セットあると思いますが、それぞれの大まかな役割は次の通りです。
App.xaml App.xaml.cs |
アプリ横断のリソース等を定義 |
MainPage.xaml MainPage.xaml.cs |
アプリケーションの起動時に最初に表示されるページ |
(1-2) プロジェクトの初期ファイルの一覧
実際のプロジェクト(下図)を例にファイルの役割を一覧で示します。
(図111)
(表)
IT0118_App1 ([プロジェクト名]) |
共有化したコードやXAMLファイルを配置します。 XAMLは”eXtensible Application Markup Language”の略で、Microsoftが作ったXMLベースの言語。変数やオブジェクトの初期化に利用されます。 XMLとの違いは、XAMLは「Declarative Application Language(宣言型プログラミング)」であるのに対して、XMLは「マークアップ言語(HTML等、文書作成やアプリ設定などに利用される)」が異なります。 |
□∟依存関係 | ・英語では「Dependencies」。 ・「パッケージ」はパッケージマネージャからダウンロードされたパッケージで構成されます。 |
□∟依存関係 □□∟SDK □□□∟NETStandard.library |
・「.NET Standard Library」を参照するいくつかのNuGetパッケージを参照します。 ・自身ではDLLを保持しておらず、参照しているため「メタパッケージ」とも呼ばれます。 |
□∟App.xaml | ・アプリの開始地点(エントリーポイント)で、アプリ横断で(他のXAMLで)使われるリソース等を定義します。 ・VisualStudioにより自動で作成されます。 |
□∟App.xaml □□∟App.xaml.cs |
■App.xamlのコードビハインドファイル(ロジック部分のプログラム)です。 主に次の役割を果たします。 (1) アプリの初期化処理(OnSleep) (2) アプリスリープ時のイベントハンドラ(OnSleep) (3) アプリ再開時のイベントハンドラ(OnResume) ■Appクラスは「Xamarin.Forms.Application」クラスを継承しており、これにより以下の特徴を備えます。 ②「Properties辞書」 |
□∟AssemblyInfo.cs | ・アセンブリ(コンパイル済みコード)に関する情報を保持したファイルです。 |
□∟MainPage.xaml | ・アプリの「UIを定義」しています。 ・作り方によって異なる場合がありますが、もし「MainPage.xaml.cs」にて「MainPage = new [プロジェクト名].MainPage();」という記述があれば、アプリケーションの起動時に最初に表示されるページである事を意味します。 ・XAMLのマークアップを用いて要素の追加をする事ができますし、Visual Studioのデザインツールを使う事もできます。 |
□□∟MainPage.xaml.cs | ・MainPage.xamlのコードビハインドファイル(ロジック部分のプログラム)です。 ・MainPageクラスは「Xamarin.Forms.ContentPage」クラスを継承しています。 ・アプリのロジック(処理)やイベントハンドラを記述してきます。 |
IT0118_App1.Android ([プロジェクト名].Android) |
・Andoroid用のプロジェクトです。 ・MainActivity.csにてXamarin.Formsを用いるための記述をしています。 —– global::Xamarin.Forms.Forms.Init(this, savedInstanceState); LoadApplication(new App()); —– |
IT0118_App1.iOS ([プロジェクト名].iOS) |
iOS用のプロジェクトです。 |