Makopy'5 La6

スマホアプリ開発とかその周辺のこととか関係ないこと。または恋は言ってみりゃボディー・ブロー

(Xamarin.Forms)MFractor

MFractorとは?

@ytabuchi 氏のTweetで知ったのですが…。

Xamarin Studio用のReSharperみたいなやつ。

筆者のようにMac OS上でXamarin Studioを使っている人には非常にありがたいツールです。
今のところXamarin Studio用の無償版しかありませんが、Visual Studio For Mac向けに有償版が出る予定っぽいです。

何ができるの?

基本的にはMFractorの公式ドキュメントを読むのが一番です。

docs.mfractor.com

概要(和訳)

あまり英語は得意ではないですが…。
覚え書きとして要点を和訳して書き留めておきます。

Code Actions

Using Code Actions - mfractor docs

  • Fixes(問題の修正)
    • XAML分析により検出された問題の修正
  • Generate(コード生成)
    • 共通のXAMLおよびC#コードの生成
  • Refactor(リファクタリング)
    • XAMLからC#XAML内のシンボルをリネーム
  • Organise(整理)

Code Issue Fixes(問題の修正)

XAML分析エンジンの分析により検出された問題の該当箇所が黄色の下線でマークされる。
マークされた箇所で右クリックして[修正]メニューから実施したい修正を選択することで修正可能。

http://docs.mfractor.com/img/forms/refactoring-fix.gif

Code Generation(コード生成)

本来手作業で書くべき定型のコードを素早く作成できる。
例えば、
- ビュー要素のリソースディクショナリを生成 - 不足しているBindingをすべて一括して実装

http://docs.mfractor.com/img/forms/refactoring-generate.gif

Code Refactoring(リファクタリング)

XAMLドキュメント内でXAMLと.NETのシンボルを操作できる。
ユーザー入力に基づいて、XAMLおよび(または)C#の変更を行う。
例えば、

  • XAML上で値指定している箇所をBindingとして、Binding ContextのC#プロパティを生成
  • カラーピッカーダイアログを使った色の変更

http://docs.mfractor.com/img/forms/refactoring-refactor.gif

Code Organisation(コード整理)

XAMLコードを素早くフォーマットし、XAMLをキレイにわかりやすくできる。
例えば、

  • ノード上のすべての属性を名前と名前空間で並べ替え
  • ノード上の属性を別の行または同じ行に縮小/展開
  • ノードの終了タグを展開/折りたたみ

http://docs.mfractor.com/img/forms/refactoring-organise.gif

Xamarin.Forms Quick Start

Xamarin.Forms Quickstart - mfractor docs

Configuring A Binding Context(Binding Contextの構成)

BindingContextプロパティがXAML上で明示的に設定されている場合、MFractorはBinding式を解析し、XAMLからBinding Contextへのリファクタリングを実行できる。

ViewModelLocatorを使用して、Binding Contextを明示的に構成する。

Mvvm Naming Conventions(MVVM命名規則)

以下の命名規則により、ViewをViewModelに暗黙的に関連づける。

  • ViewModel, PageModel, Modelで終わるクラスは、XAML(View)に対応するViewModelと見なされる
  • PageまたはViewで終わるXAMLファイルは、ViewModelに対応するXAML(View)と見なされる
  • ViewとViewModelがPage, ViewまたはViewModelなしで同じ名前を共有する場合、MFractorは暗黙的な関連付けを行う

LoginPage.xaml , LoginPage.xaml.cs , LoginViewMode.cs で考えてみると…。

  • LoginPage.xaml は、XAML(View)と見なされる
  • LoginPage.xaml.cs は、コードビハインドクラスと見なされる
  • LoginViewModel.cs は、ViewModelと見なされる

Using Mvvm Navigation(MVVMナビゲーションの使用)

MVVM命名規則を適用することにより、View, コードビハインドクラス, ViewModel間を素早く移動できる。

右クリックして選択:

  • Go-To ViewModel
  • Go-To Code Behind Class
  • Go-To Xaml View

Xaml Analysis(XAML分析)

XAML分析は、XAMLファイルのコードの問題を検査し、問題箇所を赤/黄/青の下線で示す。

  • 問題箇所にカーソルを置くと、コードの問題に関する詳細情報が表示される
  • 赤い下線は、コンパイルエラーまたは実行時エラーを示す
  • 黄色い下線はコンパイルの警告を示す
  • 青い下線はコードの改善を示す
  • 問題を修正するには、問題箇所を右クリックし、修正を参照して適用する修正を選択する