数回に分けて、Xamarinのマスタ/詳細型アプリのプロジェクトについて理解を含めていきます。
今回はマスタ/詳細型プロジェクトの技術要素について見ていきます。
WindowsのVSはEnterprise 2017 Ver.15.5.2
MacのVSは7.3.2
を使用しています。
マスタ/詳細型プロジェクトの作成方法
クロスプラットフォームのアプリを作成する場合、WindowsのVisual StudioでもMacのVisual Studioでも、2つのテンプレートから作成することになります。
1つは空白のフォームのテンプレート、もう1つはマスター/詳細型のテンプレートです。
以下にプロジェクト作成時のダイアログを示します。上がWindows版で下がMac版です。
Windows版は、Master Detailを選択するとマスタ/詳細型のアプリを作成することができます。ちなみにBlank Appを選択すると空白のフォームアプリを作成することができます。
Mac版は、フォームアプリを選択することでマスタ/詳細型のアプリを作成することができます。
Windows版、Mac版とも、作成されるファイルは同じです。以降スクショはMac版を掲載します。
MVVM
マスタ/詳細型のプロジェクトは、MVVMパターンです。
MVVMはModel-View-ViewModelの略で、GUIを持つアプリケーションをModel、View、ViewModelの3つに分割して設計、実装を行います。
これはMVC(Model-View-Controller)の派生パターンになっています。
Model
Modelはビジネスロジック(アプリケーションのデータと手続き)を担う部分です。このため、表示機能については関与しませんが、背景色や文字色といった装飾部分のデータについてはModelで管理します。
View
Viewはデータを見える形にして表示したり、ユーザーからの入力を受け取る部分を担当します。Viewには複雑なロジックを持たせることはしません。基本的にはデータバインディング(後述)と呼ばれる機構を使用して、データの表示や入力の受け取りを行うようにします。
ViewModel
ViewModelはViewから受け取ったデータをModelに伝達したり、Viewの状態保持を担当します。このようにViewModelはViewとModelの仲介役となります。
データバインディング
データバインディングはUIとデータを関連付ける機構です。XamarinのCrossPlatform開発においては、Xamlの中にバインディング用の属性を記述することで、Modelが持つデータを自動で表示したり、ユーザーが入力したデータを受け取ることができるようになります。
今回は、マスタ/詳細型のプロジェクトの基本技術要素について触れてきました。文字ベースですし、説明がわかりにくいとことろもあるかと思います。
次回以降は、実際のコードも掲載しながら理解を進めていきます。
コメント