Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

C# Xamarin

Xamarin.Formsのプロジェクトの構成について~各ファイルの役割や概要について~

投稿日:2020年9月28日 更新日:

<目次>

(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」クラスを継承しており、これにより以下の特徴を備えます。
①「MainPage」プロパティ
「MainPage」プロパティ(アプリの初期ページ)の性質を備えます。そのためにはAppクラスのコンストラクタにおいて、MainPageクラスのインスタンス化が必要ですが、Xamarin.Formsのプロジェクトではデフォルトで設定されています。

②「Properties辞書」
Properties辞書は文字列型のKeyとオブジェクトのValueをペアに持つ辞書で、Xamarin.Formsのコード内のどこからでもアクセスが可能です。主にOnStart、OnSleep、OnResumeといったライフサイクルのメソッドにて利用されます。

□∟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用のプロジェクトです。

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-C#, Xamarin

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

C#のDB接続時のエラー(provider: Named Pipes Provider, error: 40 – Could not open a connection to SQL Server)

<目次> (1) 記事の目的  (1-1) エラー概要  (1-2) エラー原因  (1-3) エラー対策   (1-3-1) SQLServer:リモート接続を有効化   (1-3-2) SQLSe …

C#で「CS0518: 定義済みの型 ‘System.Range’は定義、またはインポートされていません」エラーが出た時の原因と対処

  <目次> (1) C#で「CS0518: 定義済みの型 ‘System.Range’は定義、またはインポートされていません」エラーが出た時の原因と対処  (1-1 …

ASP.NETのActionResultの戻り値の種類について

  <目次> (1) ASP.NETのActionResultの戻り値の種類について  (1-1) はじめに  (1-2) ASP.NETのActionResultの戻り値の種類  (1-3 …

C#のデリゲートが分からない・・を解決!初心者向けになるべく分かり易く説明してみた

<目次> (1) C#のデリゲートが分からない・・を解決!初心者向けになるべく分かり易く説明してみた  (1-1) デリゲートとは?「関数へのポインタ」だけでは説明しきれない・・  (1-2) デリゲ …

BundleConfig.csが読み込まれない場合の確認ポイントについて(ASP.NET)

  <目次> (1) BundleConfig.csが読み込まれない場合の確認ポイントについて(ASP.NET)  (1-1) 前提条件  (1-2) 確認ポイント   (確認①)Bundl …

  • English (United States)
  • 日本語
Top