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#のデリゲートが分からない・・を解決!初心者向けになるべく分かり易く説明してみた

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

VisualStudioで文字列の検索をソリューション内やプロジェクト内で行う方法

<目次> (1) VisualStudioで文字列の検索をソリューション内やプロジェクト内で行う方法  (1-1) 検索方法   (1-1-1) 「検索と置換」画面を開く   (1-1-2) 検索条件 …

SOAP通信の仕組みやHTTPプロトコルとの違いなど

  <目次> (1) SOAP通信の仕組みやHTTPプロトコルとの違いなど  (1-1) SOAPとは?  (1-2) SOAPを構成する要素  (1-3) SOAPの通信の仕組み&HTTP …

C#のlockとは?意味や使い方とサンプルプログラムをご紹介

  <目次> (1) C#のlockとは?意味や使い方とサンプルプログラムをご紹介  (1-1) 概要  (1-2) 構文  (1-3) サンプルプログラム  (1-4) lockステートメ …

ASP.NET MVCのルーティングの基本

<目次> (1) ASP.NET MVCのルーティングの基本  (1-1) 構文  (1-2) サンプルプログラム   ・RouteConfig.cs   ・Controller   ・View  ( …

  • English (United States)
  • 日本語
Top