universal windows app 入門

Post on 28-May-2015

487 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

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 が面倒を見てくれる

ストアに登録するときに同じアプリとして登録できる ローミングデータを共有できる

• 注意点 共通化するべき個所は何処か見極める

top related