Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

20140531 めとべや東京4 ユニバーサル アプリ入門

2,206 views

Published on

Published in: Technology
  • Be the first to comment

20140531 めとべや東京4 ユニバーサル アプリ入門

  1. 1. ユニバーサル Windows アプリ入門 2014/5/31 めとべや東京 #4 Micosoft MVP for Client App Dev 大田 一希
  2. 2. 自己紹介 ▪ 名前 ▪ 大田 一希(かずき) ▪ Twitter:@okazuki ▪ 肩書き ▪ Microsoft MVP for Client App Dev 2011/07-2014/06 ▪ Blog ▪ かずきのBlog@hatena http://okazuki.hatenablog.com/ ▪ 猫派/犬派 ▪ 犬派 ▪ 特徴 ▪ 左耳が超聞こえづらい
  3. 3. おやくそく事項 ▪ 記載の内容は個人の見解であり、所属する企業を代表するものではありませ ん。
  4. 4. 今日のゴール ▪ ユニバーサル Windows アプリ作りの”楽さ”と“辛さ”の共有。
  5. 5. ユニバーサル Windows アプリとは
  6. 6. ユニバーサル Windows アプリとは ▪ 開発者目線 ▪ ワンソースでWindows ストアアプリとWindows Phone アプリの開発が出来る ▪ 利用者目線 ▪ WindowsストアとWindows Phoneストアで同じアプリに見える ▪ どちらかのストアで購入すると、もう片方でも購入済みになる ▪ 設定情報などのデータが同期される
  7. 7. ユニバーサル Windows アプリのプラットフォーム ▪ Windows ストアアプリでお馴染のWindows ランタイム Windows Kernel Services 入力、インタラクション、etc… DirectX、メディア、etc… Windows Runtime C/C++ C#/VB XAML JavaScript HTML/CSS
  8. 8. PCのWindows ランタイムと, PhoneのWindows ランタイム ▪ 高い互換性 Store app Phone app 固有部分 • SettingFlyout • AppBar • SearchBox • etc… 固有部分 • BackButton • Pivot • System Chrome • etc…
  9. 9. Visual Studioによるサポート ▪ ユニバーサルWindowsアプリは3プロジェクト構成 ▪ Windows 8.1用プロジェクト ▪ Windows Phone 8.1用プロジェクト ▪ 共有用プロジェクト
  10. 10. コンパイル時の動作 ▪ こうではない Windows Phone 8.1 Windows Phone アプリ Windows 8.1 ストア アプリ 参照 参照 Shared(dll)
  11. 11. コンパイル時の動作 ▪ 以下のようなイメージでコンパイルされる ※要はソースコードをリンクで追加して共有したのと同じことになる。 Windows 8.1 Shared ストア アプリ Windows Phone 8.1 Shared Windows Phone アプリ
  12. 12. エディタの支援機能 ▪ Sharedプロジェクトにあるファイルは、WindowsストアアプリとWindows Phoneアプリなのか編集中に切り替え可能 #ifディレクティブが切り替わる
  13. 13. デザイナの支援機能 ▪ Sharedプロジェクトにあるファイルは、WindowsストアアプリとWindows Phoneアプリなのか編集中に切り替え可能
  14. 14. ユニバーサルWindowsアプリとは ▪ ストアで同一アプリとして扱える ▪ ローミングデータの共有 ▪ どちらかを購入すると両方購入したことになる ▪ 実行環境とVisual Studioの支援 ▪ 互換性の高いWindows ランタイム ▪ IDEによるソースコード共有の仕組み
  15. 15. 共通化のテクニック
  16. 16. コードの共有 ▪ Sharedで定義したクラスをストアアプリ、Phoneアプリで使う ページ ページ 共有する クラス Windows ストアアプリ Windows Phone アプリ
  17. 17. コードの共有 ▪ 非互換部分は#ifディレクティブ ▪ Windows ストアアプリのときのみのコード ▪ #if WINDOWS_APP ~ #endif ▪ Windows Phoneアプリのときのみのコード ▪ #if WINDOWS_PHONE_APP ~ #endif
  18. 18. さらに踏み込んだコードの共有 ▪ ほぼ共通化。差分はUserControl化 UserControl1 UserControl1 Page Windows ストアアプリ Windows Phone アプリ クラス
  19. 19. さらに踏み込んだコードの共有 ▪ ヘッダーなどの差異の吸収 ▪ 同名のUserControlを個別のプロジェクトに定義する ▪ 一部の見た目の変更 ▪ リソースに同名の値を定義する ▪ 見た目の大きな差異 ▪ 同名のStyleを個別のプロジェクトに定義する ▪ 共通のリソースの定義 ▪ SharedプロジェクトのResourceDictionaryなどに定義する
  20. 20. 割と死ぬ非互換!! ▪ *****Picker系, WebAuthenticationBroker死亡 ▪ Store ▪ awaitでOK ▪ Phone ▪ 一度Picker系別アプリに移動するため、アプリはサスペンドする。OnActivatedイベントで続きの処理をする ▪ 地図死亡 ▪ そもそも別物 ▪ AppBar ▪ Store ▪ 普通に使える ▪ Phone ▪ 使えない。CommandBarのみ。TopAppBarプロパティをセットすると死ぬ
  21. 21. まとめ
  22. 22. まとめ ▪ ユニバーサル Windows アプリ ▪ 楽にソースコード共有が出来る仕組み ▪ 高い互換性 ▪ ストアでの1つのアプリっぽい演出やローミングデータの共有 ▪ 注意点 ▪ どこを共有するのか注意しよう(安易に画面を共有すると…) ▪ 非互換は、しっかりあるので非互換部をSharedにおかないように気を付けよう

×