SlideShare una empresa de Scribd logo
1 de 26
Xamarin で Prism を使いたい!
2014/11/22(土) JXUGC #2 東日本編
@matatabi-ux
「正式対応」 まで待てない人のための Prism 利用 Tips
い い ネ コ の 日
お や く そ く
掲載内容は個人の私見であり、
所属組織の見解ではありません
自己紹介: 黒柳 達士(@matatabi-ux)
• お仕事
⁃ 某第二工場で Windows ストアアプリ大量生産中
⁃ 拝承系 SIer → 安心簡単快適デザイン会社 → 現職
• 個人活動
⁃ Blog: 「しっぽを追いかけて」 http://matatabi-ux.hateblo.jp
⁃ facebook: https://www.facebook.com/tatsuj.kuroyanagi
⁃ 日本人間工学会 認定人間工学専門家
あの!ザッカーバーグと同じ心理学専攻でした
⁃ 飼い猫写真も垂れ流し中
twitter: https://twitter.com/burst_cafemocha
facebook: https://www.facebook.com/burst.cafemocha
しっぽもふもふの自宅警備ネコ 「モカ」
今回の目標とおことわり
• 目標
⁃ XAML プラットフォーム向け実装ライブラリである Prism(Windows ランタイム版)のご紹介
⁃ Xamarin でも Prism を使ってみたい!と思ってもらう(MvvmCross だけじゃないよ!)
• 注意事項
⁃ Xamarin は現在進行形で進化中なので仕様が大きく変わるかも
⁃ XAML をある程度知っている C# エンジニア視点でまとめました
⁃ しばらくしたら Prism の中の人がもっと洗練されたライブラリを見せてくれるはず
いちエンジニアの悪あがきとしてあまり期待せずにお聞きください・・・
⁃ Xamarin.iOS しか持ってません・・・Android 勢の皆さんごめんなさい;
おしながき
• Prism for Windows Runtime の概要
• Prism の Xamarin 対応状況
• Prism 風 Xamarin MVVM パターン
• Prism 風 Xamarin 画面遷移制御
• まとめ
Prism にはもっともっと機能はあ
りますが今回はこのあたりに絞っ
てます!
※ この発表資料は SlideShare で公開します
http://www.slideshare.net/tatsujkuroyanagi/xamarin-prism
Prism
Prism for Windows Runtime の
概要
Prism for Windows Runtime の概要
Windows ランタイム*1 向けビジネスクライアントアプリ開発用ライブラリ
⁃ Microsoft patterns & practices チームが進めているプロジェクト成果物のひとつ
⁃ 設計や実装が容易で拡張性に優れた柔軟なアプリを作るための開発ライブラリと実践パターンを提供
⁃ ビジネスアプリ以外にも有効な機能やガイドがたくさん
⁃ WPF や Silverlight など他の XAML プラットフォーム向けの Prism もある
*1:Windows ストアアプリや Windows Phone 8.1 などの実行基盤
今後は Windows 系プラットフォームの主流になるはず?
View
ViewModel
Model
Bootstrap
Navigation
Event
Aggregator
App Lifecycle
Management
XAML 向けなので Native UI より
Xamarin.Forms 利用の方がラク!
アプリ起動処理
Prism for Windows Runtime の概要
View 基底クラス
ViewModel Locator
Views
ViewModel 基底クラス
ViewModels
Delegate Command
ModelsValidation 基底クラス
データリポジトリ サービスプロキシ
データアクセス層
アプリケーション
抽象クラス
アプリケーション
画面遷移制御 ライフサイクル管理
疎結合コンポーネント間通信
DI コンテナ
(オプション)
Prism の提供機能
要実装機能
凡例
ビュー層 ビューモデル層 モデル層
インフラストラクチャ
Unity ライブラリ
が利用可能
アプリ起動処理 インフラストラクチャ
Prism for Windows Runtime の概要
View 基底クラス
ViewModel Locator
Views
ViewModel 基底クラス
ViewModels
Delegate Command
ModelsValidation 基底クラス
データリポジトリ サービスプロキシ
ビュー層 ビューモデル層 モデル層
データアクセス層
アプリケーション
抽象クラス
アプリケーション
画面遷移制御 ライフサイクル管理
DI コンテナ
(オプション)
Unity ライブラリ
が利用可能
Prism の提供機能
要実装機能
凡例
疎結合コンポーネント間通信
お時間の都合で・・・
今回のご紹介範囲は
これだけ ><
Xamarin
×
Prism
Prism の Xamarin 対応状況
Prism の Xamarin 対応状況
Prism for Windows Runtime のリリースパッケージ
Prism MVVM Prism PubSubEvents Prism StoreApps
提供機能
Model-View-ViewModel
パターン構築基盤
疎結合コンポーネント
間通信
アプリケーション
インフラスクトラクチャ
ライセンス Apache 2.0 Apache 2.0 Apache 2.0
Xamarin 対応
ほぼそのまま利用可能
PCL 提供あり
そのまま利用可能
PCL 提供あり
利用不可・実装参考程度?
Windows ランタイム依存
URL https://pnpmvvm.codeplex.com/ https://pnppubsub.codeplex.com/ https://prismwindowsruntime.codeplex.com/
備考
各層基底クラスや Command
ViewModel Locator など
Event Aggregator
イベント集約・発信
画面遷移制御
ライフサイクル管理 など
2014/11/14 現在の状況
Xamarin
×
Prism
×
MVVM
Prism 風 Xamarin
MVVM パターン
Prism 風 Xamarin MVVM パターン
Prism MVVM パッケージのソリューション構成
ソースコードのダウンロード先
https://pnpmvvm.codeplex.com/SourceControl/latest#
ソースコードはこちらから
ダウンロード可能!
View からの命令・操作をクラス化する Command パターン実装基盤
₋ DelegateCommand :非同期処理を仲介できるコマンドクラス
₋ CompositeCommand :複数のコマンドを集約するコマンドクラス
View にデータ変更を通知する実装基盤
₋ BindableBase :プロパティ値の変更を通知するバインド可能な基底クラス
₋ ErrorContner :入力値の検証結果をもつ基底クラス
₋ PropertySupport :プロパティを名称の文字列に置換するユーティリティクラス
Prism 風 Xamarin MVVM パターン
ViewModel を View にバインドする実装基盤
₋ IView :DataContext プロパティをもつ View インタフェース
₋ ViewModelLocatorProvider :ViewModel を生成・保持するための管理クラス
₋ ViewModelLocator :View に ViewModel を自動バインドするクラス
View と ViewModel の関連付けには MvvmCross のように
暗黙的規則も明示的規則も指定できます
View に依存するので Xamarin 対応
モジュールはまだ提供されてません;
Prism MVVM パッケージのソリューション構成
Prism 風 Xamarin MVVM パターン
Xamarin 対応 ViewModelLocator の実装
₋ Xamarin.Forms の PCL プロジェクトを追加
₋ Prism.Mvvm をプロジェクト参照に追加
₋ ViewModelLocator クラスを追加
Prism MVVM パッケージのソリューション構成
ないものは作るしかにゃい!
Xamarin.Forms PCL
プロジェクトを追加して拡張!
DEMO
Prism 風 Xamarin
MVVM パターンサンプル
※このデモのソースコードは GitHub で公開中
https://github.com/matatabi-ux/XamarinPrismMVVM
Xamarin
×
Prism
×
Navigation
Prism 風 Xamarin
画面遷移制御
Prism 画面遷移制御
FrameNavigationService PageViewModelSessionStateService
GetSessionStateForFrame
OnNavigateFrom
GetSessionStateForFrame
OnNavigateTo
PageFrame
OnNavigateFrom
Navigating
OnNavigateTo
Navigated
Prism の画面遷移の主な流れ
遷移履歴を
管理
セッション情報を
管理
遷移に呼応して ViewModel を操作
イベント駆動
イベント駆動
Navigate
セッション情報や
遷移情報を渡す
セッション情報を
渡す 必要な情報を
Model に保存
必要な情報を
Model から復元
突然の終了からも
アプリのデータを
復帰できる!
Background 遷移時も呼び出す
Windows ストアアプリ の状態遷移
Not running
Running
Suspended
Terminated
Foreground Background
Not running アプリが起動していない状態 Running アプリ利用中 Suspended メモリ確保中でアプリ停止
Terminated データを退避しメモリ解放
ファイルからデータを読み
遷移履歴・画面を復元! Low memory
Activate
Launch
Suspending
Launch
ClosedByUser
ファイルに
データ保存
Terminated 中は
アプリはディスク
に完全退避する!
省メモリ&省電力
Windows Phone 8.0 の状態遷移
Not running
Running
Dormant
Tombstoned
Foreground Background
Not running アプリが起動していない状態 Running アプリ利用中 Dormant メモリ確保中でアプリ停止
Tombstone データを退避しメモリ解放
ViewModel は復元できる
遷移履歴までは復元できず
Low memory
Application_Activated
Application_Activated
Application_Deactivated
Application_Launching
Application_Closing
メモリ解放
似てるけど
遷移履歴は戻せない
iOS アプリの状態遷移
Not running
Inactive
Active
Background Suspended
Foreground Background
Not running アプリが起動していない状態 Inactive ロック状態などイベント無受信 Background バックグラウンド動作中
Active アプリ利用中 Suspended メモリ確保中でアプリ停止
5秒~
10分後
次回の起動時間を短縮できる
Low memory
アプリ停止
メモリは確保
永続も
ある
Android アプリ(1画面)の状態遷移
Starting Running
Paused
Stopped
Starting 画面生成中 Running 画面表示中 Stopped メモリ確保中で画面非表示
Paused 画面の非表示途中 Destroyed 画面の破棄
表示時間を短縮できる
Low memory
/ Rotation
Destroyed
onPause()
onResume()
onResume()
Low memory
onDestroy()
回転しただけで破棄!
画面ごとに
状態遷移
Prism 風 Xamarin 画面遷移制御
NavigationService PageViewModel
OnNavigateFrom
OnNavigateTo
PageNavigationPage
非表示
NavigateAsync
Disappearing
表示
Prism 「風」 Xamarin.Forms 画面遷移の主な流れ
遷移履歴を
管理
遷移に呼応して
ViewModel を操作
イベント駆動
遷移情報を渡す
セッション情報の管理はあきらめ・・・
必要な情報を
Model に保存
必要な情報を
Model から復元
最低限自前で必要
なデータを退避
できるように
Background 遷移時も呼び出す
NavigateAsync
DEMO
Prism 風 Xamarin
画面遷移サンプル
※このデモのソースコードは GitHub で公開中
https://github.com/matatabi-ux/XamarinPrismNavigation
まとめ
• Prism は Xamarin でも(手を加えれば?)使える!
⁃ ViewModelLocator は Xamarin 向けに追加実装が必要
⁃ Bootstrap(起動処理)、画面遷移、ライフサイクル管理などは自前実装が必要
⁃ イベント集約・発信に EventAggregator、DI コンテナに Unity がそのまま使える!
• Xamarin.Forms ベースでの利用がおすすめ
⁃ ViewModelLocator など XAML 向け機能は Xamarin.Forms と相性がよい
⁃ Xamarin.Forms で足りない部分は ViewRenderer で補完
下記 SlideShare にて実装方法は紹介中!
http://www.slideshare.net/tatsujkuroyanagi/xamarin-39884614
委譲先の
振り分け
プラットフォーム固有描画
Xamarin
Forms
参考情報
• C#、XAML、Windows ランタイム向け Prism を使った Windows ストア ビジネス アプリの開発
http://msdn.microsoft.com/ja-jp/library/windows/apps/xx130643.aspx
• Prism for Windows Runtime サンプル(AdventureWorksShopper)
https://code.msdn.microsoft.com/windowsapps/Prism-for-the-Windows-86b8fb72/
• Windows 8.1 におけるストア ビジネスアプリの設計と開発(鈴木章太郎さんの SlideShare & ブログ)
http://www.slideshare.net/shosuz/windows-81-32601780
http://blogs.msdn.com/b/shosuz/archive/2014/03/23/windows-8-1-mvp-community-camp-2014-demo-1.aspx
http://blogs.msdn.com/b/shosuz/archive/2014/03/23/windows-8-1-mvp-community-camp-2014-demo-2.aspx
http://blogs.msdn.com/b/shosuz/archive/2014/03/28/windows-8-1-mvp-community-camp-2014-demo-3.aspx
http://blogs.msdn.com/b/shosuz/archive/2014/03/30/windows-8-1-mvp-community-camp-2014-demo-4.aspx
http://blogs.msdn.com/b/shosuz/archive/2014/04/02/windows-8-1-mvp-community-camp-2014-demo-5.aspx
• Unity 3.5.1405-prerelease(Xamarin で利用可能な DI コンテナ)
https://www.nuget.org/packages/Unity/3.5.1405-prerelease

Más contenido relacionado

La actualidad más candente

Prism + ReactiveProperty入門
Prism + ReactiveProperty入門Prism + ReactiveProperty入門
Prism + ReactiveProperty入門一希 大田
 
ゆるふわ Xamarin Tips
ゆるふわ Xamarin Tipsゆるふわ Xamarin Tips
ゆるふわ Xamarin TipsDaiki Kawanuma
 
Developers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよDevelopers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよShinichi Hirauchi
 
C++からC#まで Visual Studio 縛り (で死ぬ実験)
C++からC#まで Visual Studio 縛り (で死ぬ実験)C++からC#まで Visual Studio 縛り (で死ぬ実験)
C++からC#まで Visual Studio 縛り (で死ぬ実験)Takashi Kawasaki
 
Xamarin バッドノウハウ大全
Xamarin バッドノウハウ大全Xamarin バッドノウハウ大全
Xamarin バッドノウハウ大全Yoshito Tabuchi
 
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介Yoshito Tabuchi
 
Prism for windows runtime入門
Prism for windows runtime入門Prism for windows runtime入門
Prism for windows runtime入門一希 大田
 
いまさら学ぶMVVMパターン
いまさら学ぶMVVMパターンいまさら学ぶMVVMパターン
いまさら学ぶMVVMパターンYuta Matsumura
 
Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」
Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」
Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」Yoshito Tabuchi
 
Realm Mobile Platform 概要
Realm Mobile Platform 概要Realm Mobile Platform 概要
Realm Mobile Platform 概要Yoshito Tabuchi
 
Xamarin.Mac をこれからはじめるあなたへ
Xamarin.Mac をこれからはじめるあなたへXamarin.Mac をこれからはじめるあなたへ
Xamarin.Mac をこれからはじめるあなたへTsubasa Hirano
 
Xamarin 101 ~環境構築からビルド・テストまで~
Xamarin 101 ~環境構築からビルド・テストまで~Xamarin 101 ~環境構築からビルド・テストまで~
Xamarin 101 ~環境構築からビルド・テストまで~Masaki Takeda
 
塹壕よりLivetとMVVM
塹壕よりLivetとMVVM塹壕よりLivetとMVVM
塹壕よりLivetとMVVMHiroshi Maekawa
 
わんくま名古屋 #38 (20160521) Xamarin入門
わんくま名古屋 #38 (20160521) Xamarin入門わんくま名古屋 #38 (20160521) Xamarin入門
わんくま名古屋 #38 (20160521) Xamarin入門Yasuhiko Yamamoto
 
Xamarin から使う Azure
Xamarin から使う AzureXamarin から使う Azure
Xamarin から使う AzureYoshito Tabuchi
 
この辺でXamarin導入による 効果と限界をしっかり把握してみよう MVP Community Camp 2015
この辺でXamarin導入による 効果と限界をしっかり把握してみよう  MVP Community Camp 2015 この辺でXamarin導入による 効果と限界をしっかり把握してみよう  MVP Community Camp 2015
この辺でXamarin導入による 効果と限界をしっかり把握してみよう MVP Community Camp 2015 Shinichi Hirauchi
 

La actualidad más candente (20)

Prism + ReactiveProperty入門
Prism + ReactiveProperty入門Prism + ReactiveProperty入門
Prism + ReactiveProperty入門
 
ゆるふわ Xamarin Tips
ゆるふわ Xamarin Tipsゆるふわ Xamarin Tips
ゆるふわ Xamarin Tips
 
Xamarin 基礎講座
Xamarin 基礎講座Xamarin 基礎講座
Xamarin 基礎講座
 
Developers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよDevelopers.io.札幌 xamarinってどうよ
Developers.io.札幌 xamarinってどうよ
 
C++からC#まで Visual Studio 縛り (で死ぬ実験)
C++からC#まで Visual Studio 縛り (で死ぬ実験)C++からC#まで Visual Studio 縛り (で死ぬ実験)
C++からC#まで Visual Studio 縛り (で死ぬ実験)
 
Xamarin バッドノウハウ大全
Xamarin バッドノウハウ大全Xamarin バッドノウハウ大全
Xamarin バッドノウハウ大全
 
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
C#でのクロスプラットフォーム モバイル開発環境 Xamarin のご紹介
 
Prism for windows runtime入門
Prism for windows runtime入門Prism for windows runtime入門
Prism for windows runtime入門
 
いまさら学ぶMVVMパターン
いまさら学ぶMVVMパターンいまさら学ぶMVVMパターン
いまさら学ぶMVVMパターン
 
インフラジスティックスおよび Xamarin.Forms コントロールのご紹介
インフラジスティックスおよび Xamarin.Forms コントロールのご紹介インフラジスティックスおよび Xamarin.Forms コントロールのご紹介
インフラジスティックスおよび Xamarin.Forms コントロールのご紹介
 
Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」
Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」
Xamarin 20141212 モバイルカフェスペシャル 「C#で作るiOS/Androidのクロスプラットフォームスマホアプリ開発」
 
Realm Mobile Platform 概要
Realm Mobile Platform 概要Realm Mobile Platform 概要
Realm Mobile Platform 概要
 
Xamarin.Forms概要
Xamarin.Forms概要Xamarin.Forms概要
Xamarin.Forms概要
 
Xamarin.Mac をこれからはじめるあなたへ
Xamarin.Mac をこれからはじめるあなたへXamarin.Mac をこれからはじめるあなたへ
Xamarin.Mac をこれからはじめるあなたへ
 
Xamarin 101 ~環境構築からビルド・テストまで~
Xamarin 101 ~環境構築からビルド・テストまで~Xamarin 101 ~環境構築からビルド・テストまで~
Xamarin 101 ~環境構築からビルド・テストまで~
 
Xamarin Overview
Xamarin Overview Xamarin Overview
Xamarin Overview
 
塹壕よりLivetとMVVM
塹壕よりLivetとMVVM塹壕よりLivetとMVVM
塹壕よりLivetとMVVM
 
わんくま名古屋 #38 (20160521) Xamarin入門
わんくま名古屋 #38 (20160521) Xamarin入門わんくま名古屋 #38 (20160521) Xamarin入門
わんくま名古屋 #38 (20160521) Xamarin入門
 
Xamarin から使う Azure
Xamarin から使う AzureXamarin から使う Azure
Xamarin から使う Azure
 
この辺でXamarin導入による 効果と限界をしっかり把握してみよう MVP Community Camp 2015
この辺でXamarin導入による 効果と限界をしっかり把握してみよう  MVP Community Camp 2015 この辺でXamarin導入による 効果と限界をしっかり把握してみよう  MVP Community Camp 2015
この辺でXamarin導入による 効果と限界をしっかり把握してみよう MVP Community Camp 2015
 

Similar a Xamarin で Prism を使いたい! ~「正式対応」 まで待てない人のための Prism 利用 Tips~

Apps for Web Platform
Apps for Web PlatformApps for Web Platform
Apps for Web Platformdynamis
 
Xamarin概要と活用方法
Xamarin概要と活用方法Xamarin概要と活用方法
Xamarin概要と活用方法Yoshito Tabuchi
 
Xamarin概要と活用方法
Xamarin概要と活用方法Xamarin概要と活用方法
Xamarin概要と活用方法Yoshito Tabuchi
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Narami Kiyokura
 
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespacesIssei Hiraoka
 
作られては消えていく泡のように儚いクラスタの運用話
作られては消えていく泡のように儚いクラスタの運用話作られては消えていく泡のように儚いクラスタの運用話
作られては消えていく泡のように儚いクラスタの運用話Tsuyoshi Torii
 
MvvmCross 入門
MvvmCross 入門MvvmCross 入門
MvvmCross 入門jz5 MATSUE
 
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編Yoshito Tabuchi
 
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成Hiroshi Yamaguchi
 
中級者のためのWordPress講座[第5回]携帯電話やスマートフォンからの閲覧に対応させてみよう!
中級者のためのWordPress講座[第5回]携帯電話やスマートフォンからの閲覧に対応させてみよう! 中級者のためのWordPress講座[第5回]携帯電話やスマートフォンからの閲覧に対応させてみよう!
中級者のためのWordPress講座[第5回]携帯電話やスマートフォンからの閲覧に対応させてみよう! switch3000
 
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevioいるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdeviofd0
 
Xamarin.Forms アプリケーション 設計パターン
Xamarin.Forms アプリケーション 設計パターンXamarin.Forms アプリケーション 設計パターン
Xamarin.Forms アプリケーション 設計パターン一希 大田
 
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD PatternApplication Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD PatternAtsushi Kambara
 
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)Shinya Nakajima
 
はじめてのASP.NET MVC5
はじめてのASP.NET MVC5はじめてのASP.NET MVC5
はじめてのASP.NET MVC5Tomo Mizoe
 
What makes pyramid unique
What makes pyramid uniqueWhat makes pyramid unique
What makes pyramid uniqueAtsushi Odagiri
 
【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会Yuki Okada
 
分散環境におけるDocker とオーケストレーション
分散環境におけるDocker とオーケストレーション分散環境におけるDocker とオーケストレーション
分散環境におけるDocker とオーケストレーションMasahito Zembutsu
 
ライブコーディングとデモで理解するWebセキュリティの基礎
ライブコーディングとデモで理解するWebセキュリティの基礎ライブコーディングとデモで理解するWebセキュリティの基礎
ライブコーディングとデモで理解するWebセキュリティの基礎Takahisa Kishiya
 

Similar a Xamarin で Prism を使いたい! ~「正式対応」 まで待てない人のための Prism 利用 Tips~ (20)

Apps for Web Platform
Apps for Web PlatformApps for Web Platform
Apps for Web Platform
 
Xamarin概要と活用方法
Xamarin概要と活用方法Xamarin概要と活用方法
Xamarin概要と活用方法
 
Xamarin概要と活用方法
Xamarin概要と活用方法Xamarin概要と活用方法
Xamarin概要と活用方法
 
Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門Visual Studioで始めるTypeScript開発入門
Visual Studioで始めるTypeScript開発入門
 
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
 
作られては消えていく泡のように儚いクラスタの運用話
作られては消えていく泡のように儚いクラスタの運用話作られては消えていく泡のように儚いクラスタの運用話
作られては消えていく泡のように儚いクラスタの運用話
 
MvvmCross 入門
MvvmCross 入門MvvmCross 入門
MvvmCross 入門
 
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
Xamarin 概要 @ 2014/11/08 第2回 Japan Xamarin User Group Conference 西日本編
 
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成
 
Xamarin.iOS
Xamarin.iOSXamarin.iOS
Xamarin.iOS
 
中級者のためのWordPress講座[第5回]携帯電話やスマートフォンからの閲覧に対応させてみよう!
中級者のためのWordPress講座[第5回]携帯電話やスマートフォンからの閲覧に対応させてみよう! 中級者のためのWordPress講座[第5回]携帯電話やスマートフォンからの閲覧に対応させてみよう!
中級者のためのWordPress講座[第5回]携帯電話やスマートフォンからの閲覧に対応させてみよう!
 
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevioいるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
いるけどないからつくってみたよ高速モバイルプッシュ配信くん #cmdevio
 
Xamarin.Forms アプリケーション 設計パターン
Xamarin.Forms アプリケーション 設計パターンXamarin.Forms アプリケーション 設計パターン
Xamarin.Forms アプリケーション 設計パターン
 
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD PatternApplication Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD Pattern
 
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
 
はじめてのASP.NET MVC5
はじめてのASP.NET MVC5はじめてのASP.NET MVC5
はじめてのASP.NET MVC5
 
What makes pyramid unique
What makes pyramid uniqueWhat makes pyramid unique
What makes pyramid unique
 
【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会
 
分散環境におけるDocker とオーケストレーション
分散環境におけるDocker とオーケストレーション分散環境におけるDocker とオーケストレーション
分散環境におけるDocker とオーケストレーション
 
ライブコーディングとデモで理解するWebセキュリティの基礎
ライブコーディングとデモで理解するWebセキュリティの基礎ライブコーディングとデモで理解するWebセキュリティの基礎
ライブコーディングとデモで理解するWebセキュリティの基礎
 

Último

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 

Último (10)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 

Xamarin で Prism を使いたい! ~「正式対応」 まで待てない人のための Prism 利用 Tips~

  • 1. Xamarin で Prism を使いたい! 2014/11/22(土) JXUGC #2 東日本編 @matatabi-ux 「正式対応」 まで待てない人のための Prism 利用 Tips い い ネ コ の 日
  • 2. お や く そ く 掲載内容は個人の私見であり、 所属組織の見解ではありません
  • 3. 自己紹介: 黒柳 達士(@matatabi-ux) • お仕事 ⁃ 某第二工場で Windows ストアアプリ大量生産中 ⁃ 拝承系 SIer → 安心簡単快適デザイン会社 → 現職 • 個人活動 ⁃ Blog: 「しっぽを追いかけて」 http://matatabi-ux.hateblo.jp ⁃ facebook: https://www.facebook.com/tatsuj.kuroyanagi ⁃ 日本人間工学会 認定人間工学専門家 あの!ザッカーバーグと同じ心理学専攻でした ⁃ 飼い猫写真も垂れ流し中 twitter: https://twitter.com/burst_cafemocha facebook: https://www.facebook.com/burst.cafemocha しっぽもふもふの自宅警備ネコ 「モカ」
  • 4. 今回の目標とおことわり • 目標 ⁃ XAML プラットフォーム向け実装ライブラリである Prism(Windows ランタイム版)のご紹介 ⁃ Xamarin でも Prism を使ってみたい!と思ってもらう(MvvmCross だけじゃないよ!) • 注意事項 ⁃ Xamarin は現在進行形で進化中なので仕様が大きく変わるかも ⁃ XAML をある程度知っている C# エンジニア視点でまとめました ⁃ しばらくしたら Prism の中の人がもっと洗練されたライブラリを見せてくれるはず いちエンジニアの悪あがきとしてあまり期待せずにお聞きください・・・ ⁃ Xamarin.iOS しか持ってません・・・Android 勢の皆さんごめんなさい;
  • 5. おしながき • Prism for Windows Runtime の概要 • Prism の Xamarin 対応状況 • Prism 風 Xamarin MVVM パターン • Prism 風 Xamarin 画面遷移制御 • まとめ Prism にはもっともっと機能はあ りますが今回はこのあたりに絞っ てます! ※ この発表資料は SlideShare で公開します http://www.slideshare.net/tatsujkuroyanagi/xamarin-prism
  • 6. Prism Prism for Windows Runtime の 概要
  • 7. Prism for Windows Runtime の概要 Windows ランタイム*1 向けビジネスクライアントアプリ開発用ライブラリ ⁃ Microsoft patterns & practices チームが進めているプロジェクト成果物のひとつ ⁃ 設計や実装が容易で拡張性に優れた柔軟なアプリを作るための開発ライブラリと実践パターンを提供 ⁃ ビジネスアプリ以外にも有効な機能やガイドがたくさん ⁃ WPF や Silverlight など他の XAML プラットフォーム向けの Prism もある *1:Windows ストアアプリや Windows Phone 8.1 などの実行基盤 今後は Windows 系プラットフォームの主流になるはず? View ViewModel Model Bootstrap Navigation Event Aggregator App Lifecycle Management XAML 向けなので Native UI より Xamarin.Forms 利用の方がラク!
  • 8. アプリ起動処理 Prism for Windows Runtime の概要 View 基底クラス ViewModel Locator Views ViewModel 基底クラス ViewModels Delegate Command ModelsValidation 基底クラス データリポジトリ サービスプロキシ データアクセス層 アプリケーション 抽象クラス アプリケーション 画面遷移制御 ライフサイクル管理 疎結合コンポーネント間通信 DI コンテナ (オプション) Prism の提供機能 要実装機能 凡例 ビュー層 ビューモデル層 モデル層 インフラストラクチャ Unity ライブラリ が利用可能
  • 9. アプリ起動処理 インフラストラクチャ Prism for Windows Runtime の概要 View 基底クラス ViewModel Locator Views ViewModel 基底クラス ViewModels Delegate Command ModelsValidation 基底クラス データリポジトリ サービスプロキシ ビュー層 ビューモデル層 モデル層 データアクセス層 アプリケーション 抽象クラス アプリケーション 画面遷移制御 ライフサイクル管理 DI コンテナ (オプション) Unity ライブラリ が利用可能 Prism の提供機能 要実装機能 凡例 疎結合コンポーネント間通信 お時間の都合で・・・ 今回のご紹介範囲は これだけ ><
  • 11. Prism の Xamarin 対応状況 Prism for Windows Runtime のリリースパッケージ Prism MVVM Prism PubSubEvents Prism StoreApps 提供機能 Model-View-ViewModel パターン構築基盤 疎結合コンポーネント 間通信 アプリケーション インフラスクトラクチャ ライセンス Apache 2.0 Apache 2.0 Apache 2.0 Xamarin 対応 ほぼそのまま利用可能 PCL 提供あり そのまま利用可能 PCL 提供あり 利用不可・実装参考程度? Windows ランタイム依存 URL https://pnpmvvm.codeplex.com/ https://pnppubsub.codeplex.com/ https://prismwindowsruntime.codeplex.com/ 備考 各層基底クラスや Command ViewModel Locator など Event Aggregator イベント集約・発信 画面遷移制御 ライフサイクル管理 など 2014/11/14 現在の状況
  • 13. Prism 風 Xamarin MVVM パターン Prism MVVM パッケージのソリューション構成 ソースコードのダウンロード先 https://pnpmvvm.codeplex.com/SourceControl/latest# ソースコードはこちらから ダウンロード可能! View からの命令・操作をクラス化する Command パターン実装基盤 ₋ DelegateCommand :非同期処理を仲介できるコマンドクラス ₋ CompositeCommand :複数のコマンドを集約するコマンドクラス View にデータ変更を通知する実装基盤 ₋ BindableBase :プロパティ値の変更を通知するバインド可能な基底クラス ₋ ErrorContner :入力値の検証結果をもつ基底クラス ₋ PropertySupport :プロパティを名称の文字列に置換するユーティリティクラス
  • 14. Prism 風 Xamarin MVVM パターン ViewModel を View にバインドする実装基盤 ₋ IView :DataContext プロパティをもつ View インタフェース ₋ ViewModelLocatorProvider :ViewModel を生成・保持するための管理クラス ₋ ViewModelLocator :View に ViewModel を自動バインドするクラス View と ViewModel の関連付けには MvvmCross のように 暗黙的規則も明示的規則も指定できます View に依存するので Xamarin 対応 モジュールはまだ提供されてません; Prism MVVM パッケージのソリューション構成
  • 15. Prism 風 Xamarin MVVM パターン Xamarin 対応 ViewModelLocator の実装 ₋ Xamarin.Forms の PCL プロジェクトを追加 ₋ Prism.Mvvm をプロジェクト参照に追加 ₋ ViewModelLocator クラスを追加 Prism MVVM パッケージのソリューション構成 ないものは作るしかにゃい! Xamarin.Forms PCL プロジェクトを追加して拡張!
  • 16. DEMO Prism 風 Xamarin MVVM パターンサンプル ※このデモのソースコードは GitHub で公開中 https://github.com/matatabi-ux/XamarinPrismMVVM
  • 18. Prism 画面遷移制御 FrameNavigationService PageViewModelSessionStateService GetSessionStateForFrame OnNavigateFrom GetSessionStateForFrame OnNavigateTo PageFrame OnNavigateFrom Navigating OnNavigateTo Navigated Prism の画面遷移の主な流れ 遷移履歴を 管理 セッション情報を 管理 遷移に呼応して ViewModel を操作 イベント駆動 イベント駆動 Navigate セッション情報や 遷移情報を渡す セッション情報を 渡す 必要な情報を Model に保存 必要な情報を Model から復元 突然の終了からも アプリのデータを 復帰できる! Background 遷移時も呼び出す
  • 19. Windows ストアアプリ の状態遷移 Not running Running Suspended Terminated Foreground Background Not running アプリが起動していない状態 Running アプリ利用中 Suspended メモリ確保中でアプリ停止 Terminated データを退避しメモリ解放 ファイルからデータを読み 遷移履歴・画面を復元! Low memory Activate Launch Suspending Launch ClosedByUser ファイルに データ保存 Terminated 中は アプリはディスク に完全退避する! 省メモリ&省電力
  • 20. Windows Phone 8.0 の状態遷移 Not running Running Dormant Tombstoned Foreground Background Not running アプリが起動していない状態 Running アプリ利用中 Dormant メモリ確保中でアプリ停止 Tombstone データを退避しメモリ解放 ViewModel は復元できる 遷移履歴までは復元できず Low memory Application_Activated Application_Activated Application_Deactivated Application_Launching Application_Closing メモリ解放 似てるけど 遷移履歴は戻せない
  • 21. iOS アプリの状態遷移 Not running Inactive Active Background Suspended Foreground Background Not running アプリが起動していない状態 Inactive ロック状態などイベント無受信 Background バックグラウンド動作中 Active アプリ利用中 Suspended メモリ確保中でアプリ停止 5秒~ 10分後 次回の起動時間を短縮できる Low memory アプリ停止 メモリは確保 永続も ある
  • 22. Android アプリ(1画面)の状態遷移 Starting Running Paused Stopped Starting 画面生成中 Running 画面表示中 Stopped メモリ確保中で画面非表示 Paused 画面の非表示途中 Destroyed 画面の破棄 表示時間を短縮できる Low memory / Rotation Destroyed onPause() onResume() onResume() Low memory onDestroy() 回転しただけで破棄! 画面ごとに 状態遷移
  • 23. Prism 風 Xamarin 画面遷移制御 NavigationService PageViewModel OnNavigateFrom OnNavigateTo PageNavigationPage 非表示 NavigateAsync Disappearing 表示 Prism 「風」 Xamarin.Forms 画面遷移の主な流れ 遷移履歴を 管理 遷移に呼応して ViewModel を操作 イベント駆動 遷移情報を渡す セッション情報の管理はあきらめ・・・ 必要な情報を Model に保存 必要な情報を Model から復元 最低限自前で必要 なデータを退避 できるように Background 遷移時も呼び出す NavigateAsync
  • 24. DEMO Prism 風 Xamarin 画面遷移サンプル ※このデモのソースコードは GitHub で公開中 https://github.com/matatabi-ux/XamarinPrismNavigation
  • 25. まとめ • Prism は Xamarin でも(手を加えれば?)使える! ⁃ ViewModelLocator は Xamarin 向けに追加実装が必要 ⁃ Bootstrap(起動処理)、画面遷移、ライフサイクル管理などは自前実装が必要 ⁃ イベント集約・発信に EventAggregator、DI コンテナに Unity がそのまま使える! • Xamarin.Forms ベースでの利用がおすすめ ⁃ ViewModelLocator など XAML 向け機能は Xamarin.Forms と相性がよい ⁃ Xamarin.Forms で足りない部分は ViewRenderer で補完 下記 SlideShare にて実装方法は紹介中! http://www.slideshare.net/tatsujkuroyanagi/xamarin-39884614 委譲先の 振り分け プラットフォーム固有描画 Xamarin Forms
  • 26. 参考情報 • C#、XAML、Windows ランタイム向け Prism を使った Windows ストア ビジネス アプリの開発 http://msdn.microsoft.com/ja-jp/library/windows/apps/xx130643.aspx • Prism for Windows Runtime サンプル(AdventureWorksShopper) https://code.msdn.microsoft.com/windowsapps/Prism-for-the-Windows-86b8fb72/ • Windows 8.1 におけるストア ビジネスアプリの設計と開発(鈴木章太郎さんの SlideShare & ブログ) http://www.slideshare.net/shosuz/windows-81-32601780 http://blogs.msdn.com/b/shosuz/archive/2014/03/23/windows-8-1-mvp-community-camp-2014-demo-1.aspx http://blogs.msdn.com/b/shosuz/archive/2014/03/23/windows-8-1-mvp-community-camp-2014-demo-2.aspx http://blogs.msdn.com/b/shosuz/archive/2014/03/28/windows-8-1-mvp-community-camp-2014-demo-3.aspx http://blogs.msdn.com/b/shosuz/archive/2014/03/30/windows-8-1-mvp-community-camp-2014-demo-4.aspx http://blogs.msdn.com/b/shosuz/archive/2014/04/02/windows-8-1-mvp-community-camp-2014-demo-5.aspx • Unity 3.5.1405-prerelease(Xamarin で利用可能な DI コンテナ) https://www.nuget.org/packages/Unity/3.5.1405-prerelease