MvvmCross だけじゃない!クロスプラットフォームMVVMフレームワーク「QuickCross」を試す

以前、MvvmCross を紹介しました が、Xamarin で使える同種のフレームワークはまだいくつかあります。

今回は、その中の一つ、「QuickCross」を見てみます

なぜ他のMVVMフレームワークが必要なのか?

Why another cross-platform Mvvm framework? にて、MvvmCross があるのになぜ?という事を説明しています。

要約すると、MvvmCross は、高機能だが Fat で複雑で、拡張が大変であるのに対し、QuickCross は、軽量で生産性が高く、拡張が簡単である、との事です。

主な機能

Features より。

  • Xamarin.iOS, Xamarin.Android, Windows Phone, Windows Store Apps に対応。
  • バイナリは使ってない!Snippet と、プロジェクトにソースコードの追加を行うだけです。
  • ViewModel や View の追加は package manager console からコマンドを実行して行います。
  • いくつかのコードスニペットを提供します。
  • 以下略…

仕組み

via https://github.com/MacawNL/QuickCross#features

Navigator って概念があるのが MvvmCross と違うとこですかね。

使い方

Getting Started を見てください。

Nuget の Package manager console を使う必要があるので、Mac と Xamarin Studio 、そして Indie Edition では試せません、残念。 Visual Studio + Xamarin Business Edition以上を使ってる方、試してみてください。

サンプルを動かしてみた

Getting Started は試せませんでしたが、github に含まれるサンプルは Mac + Xamarin Studio でも動かせました。

QuickCross.ios.sln を Xamarin Studio で開いて実行したところ↓

introduce quickcross 01

MvvmCross と同じく、ViewModel などは Shared プロジェクトの方にあります。 Shared プロジェクトは PCL にできるんじゃないかなーと思いやってみましたが、

  • Profile147(.NET4.0) では System.Windows.Input.ICommand が無いと言われ
  • Profile78(.NET4.5) では、このバグ にエンカウント

してビルドできませんでした、残念。

まとめ

MvvmCross は確かに大規模すぎて使うのが大変です。拡張するには Plugin を自作する事になりますし。 QuickCross は、すべてのソースコードがプロジェクトにあるので、カスタマイズが手軽に行えそうだというのは分かりました。

Xamarin Starter Edition の場合、64kbyte までのバイナリ制限があるので、MvvmCross は使えませんが、QuickCross なら使えるかも知れません。

ただ残念なのは、Nuget の Package Manager Console を使う必要があるために、Visual Studio が必要で、その為には Xamarin も Business Edition 以上が必要になってしまう所です。

Xamarin Studio のみでも使えるくらい Lightweight だったら、もっと試してみたくなるフレームワークです。