universal windows app 入門
TRANSCRIPT
Universal Windows app入門どんなテクノロジなのか?どこまでできるのか?
大田 一希
お約束事項• 掲載内容は私自身の見解であり、所属する組織を代
表するものではありません
自己紹介• 名前
大田 一希(かずき) Twitter : @okazuki
• 肩書き Microsoft MVP for Client App Dev
2011/07-2014/06
• Blog かずきの Blog@hatena
http://okazuki.hatenablog.com/
• 猫派 / 犬派 犬派
今日のゴール• Universal Windows app について1つ「へ~っ」って
思ってもらう
Universal Windows app とは
12:38Start User Name
売り文句• ワンソースでマルチプラットフォームのアプリが開
発できる
ローミングデータ共有
ストア上で同じアプリ扱い
開催日 > プログラム >
Text
Text
Text
Text
Universal Windows app入門
etc
etc
2014/05/10@なぞ社
2014/05/10@なぞ社
お知らせ
12:38
WPArch
texttexttexttext
お知らせ
実現するための仕組み 1• Windows Runtime が Windows Phone に実装された
Windows Kernel Services
入力、インタラクション、 etc… DirectX 、メディア、 etc…
Windows Runtime
C/C++ C#/VB
XAML
JavaScript
HTML/CSS
高い互換性
Windowsstore app
WindowsPhone app
固有部分• SettingFlyout• AppBar• SearchBox• etc…
固有部分• BackButton• Pivot• System Chrome• etc…
実現するための仕組み 2• IDE によるサポート
Windows ( Windows 8.1) ストアアプリのプロジェクト
WindowsPhone ( Windows Phone 8.1) Windows Phone アプリのプロジェクト
Shred 共通部分のコードを置く プラットフォーム固有部は #if
ディレクティブ
コンパイル時の動作• コンパイルは別々に行われる
Windows store app + Shared プロジェクト Windows Phone app + Shared プロジェクト
地味に非互換• 90% 以上の互換性の厄介さはご存知ですよね?
非互換と Tips
ケース1「戻る」• Windows Phone では、ハードボタンの戻るを処理し
ないとアプリが閉じてしまう
12:38
October, 2010
SuMo Tu WeTh Fr Sa26 27 28 29 30 1 23 4 5 6 7 8 9
10 11 12 13 14 15 1617 18 19 20 21 22 2324 25 26 27 28 29 3031 1 2 3 4 5 6
App1
ケース1「戻る」• 対処方法
以下のコードをページに入れる#if WINDOWS_PHONE_APP Windows.Phone.UI.Input.HardwareButtons.BackPressed += (_, e) => { if (this.Frame.CanGoBack) { e.Handled = true; this.Frame.GoBack(); } }#endif
ケース2「ヘッダー」• Windows と Windows Phone のヘッダー違うよね
…?• 同じ名前の UserControl 定義テクニック
UserControl1 UserControl1
Page
Windows store app Windows Phone app
ケース3「 GridView の見た目」• ストアアプリと同じ ItemTemplate でいける?• 同じ名前のリソース定義テクニック
ItemTemplate1 ItemTemplate1
Page
Windows store app Windows Phone app
同じ要領で Style も出来ます。
ケース4「本当に画面を共通化する?」• 共通化可能だが…
これまでのテクニックでワンソース+ α で作成可能
• 現実解は基本別々に作って共通化可能な部分をUserControl で作成する
ケース4「本当に画面を共通化する?」
Model
ViewModel
View
Shared
個別
Universal Windows app の所感• 画面の共通化は、かなり難しい
共通の UserControl 同名の Style や UserControl
• その他の部分の共通化はかなり便利
まとめ• Universal Windows app とは以下の機能の組み合わせ
Windows ストアアプリと Windows Phone アプリの高い互換性
ユーザーがコードをリンクとして追加して管理してたコード共有を IDE が面倒を見てくれる
ストアに登録するときに同じアプリとして登録できる ローミングデータを共有できる
• 注意点 共通化するべき個所は何処か見極める