以前、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 で開いて実行したところ↓
MvvmCross と同じく、ViewModel などは Shared プロジェクトの方にあります。
Shared プロジェクトは PCL にできるんじゃないかなーと思いやってみましたが、
- Profile147(.NET4.0) では
System.Windows.Input.ICommand
が無いと言われ - Profile78(.NET4.5) では、このバグ にエンカウント※
してビルドできませんでした、残念。
(※Alpha版では修正されてるようです)
まとめ
MvvmCross は確かに大規模すぎて使うのが大変です。拡張するには Plugin を自作する事になりますし。
QuickCross は、すべてのソースコードがプロジェクトにあるので、カスタマイズが手軽に行えそうだというのは分かりました。
Xamarin Starter Edition の場合、64kbyte までのバイナリ制限があるので、MvvmCross は使えませんが、QuickCross なら使えるかも知れません。
ただ残念なのは、Nuget の Package Manager Console を使う必要があるために、Visual Studio が必要で、その為には Xamarin も Business Edition 以上が必要になってしまう所です。
Xamarin Studio のみでも使えるくらい Lightweight だったら、もっと試してみたくなるフレームワークです。