読者です 読者をやめる 読者になる 読者になる

しっぽを追いかけて

ぐるぐるしながら考えています

Unity と猫の話題が中心   掲載内容は個人の私見であり、所属組織の見解ではありません

Prism の MVVM 基盤を Xamarin に移植したい

C# Windows ランタイムアプリ Prism Xamarin

すでに ATND に登録されているのでご存知の方もいらっしゃるかもしれませんが、来たる 11/22(土)第二回 JXUG Conference にて登壇することになりました;

第2回 Japan Xamarin User Group Conference 東日本編 : ATND

テーマは Xamarin × Prism ・・・なので Prism ネタをまた仕込まねばなりません!

というわけで「まだ」 Xamarin 対応ではない Prism を Xamarin で使えるようにする方法を調べていきたいと思います

とりあえず Prism for Windows Runtime のページ を見に行ってみたら、いくつかの機能単位にライブラリが分割されていました

これは移植が簡単になりそうだと思い、もっとも基盤機能といえそうな MVVM のライブラリ のソースをダウンロードして開いてみるとこんな感じになってました

f:id:matatabi_ux:20141021231425p:plain

クロスプラットフォームで流用できるコア機能が Prism.Mvvm という Portable Class Library プロジェクトになっており、各プラットフォームごとの個別実装(ViewModelLocator)がプラットフォームを表すサブ名前空間でプロジェクト分けされています

また、それぞれのプラットフォームで共有するインタフェースを集めたプロジェクトが Prism.SharedInterfaces という Portable Class Library プロジェクトにまとめられてますね

ここには DelegateCommand が実装している IActiveAware というインタフェースがありますがもう少し見てみないと使い方がよくわかりません

Prism.Mvvm 、Prism.SharedInterfaces のプロパティを開いてみると・・・

f:id:matatabi_ux:20141021232451p:plain

f:id:matatabi_ux:20141021232504p:plain

Xamarin.Android、Xamarin.iOS 対応!

これは移植したいなら Xamarin.Android、Xamarin.iOS 用に ViewModelLocator を含むプロジェクトを作成せよ!ということですかね!