Windows 10
ユニバーサル
アプリの概要
2015/7/4
BluewaterSoft 山本 康彦
a.k.a @biac
スピーカー紹介
• BluewaterSoft 山本 康彦 a.k.a @biac
まだ人工衛星が飛んでない時代に生まれ、HONDAでクルマの設計やってました
• Microsoft MVP for Windows Platform Development (2014/10-2015/9)
• Windows ランタイム アプリ開発 / 記事や書籍の執筆 やってます
2015/7/4 第8回 業開中心会議 2
スピーカー紹介
~ このセッションに関連する@ITの記事
• 徹底予習! Windows 10 のユニバーサルアプリ開発
2015/4/28 http://www.atmarkit.co.jp/ait/articles/1504/28/news015.html
• Windows 10 UWP で業務デスクトップアプリ開発はどう変わるの
か?
2015/6/23 http://www.atmarkit.co.jp/ait/articles/1506/23/news012.html
• Build 2015: 全ての開発者が押さえておくべきマイクロソフトの
最新技術動向
2015/5/12 http://www.atmarkit.co.jp/ait/articles/1505/12/news011.html
2015/7/4 第8回 業開中心会議 3
第8回 業開中心会議
UWP アプリ
ユニバーサル Windows
プラットフォーム アプリ とは?
2015/7/4 4
デスクトップで使う分には、
見た目の違いは小さい
• 左: WPF アプリ
右: UWP アプリ
• ウィンドウの違
いは、システム
メニューアイコ
ンの有無くらい
2015/7/4 第8回 業開中心会議 5
でも、UWP アプリは、同じバイナリが
Windows 10 搭載スマートフォンでも動く❢
• Windows 10
Mobile エミュレー
タの画像
(VS2015RC 付属)
2015/7/4 第8回 業開中心会議 6
そのほか、さまざまな
Windows 10 搭載デバイスで動く❢
• 左: HoloLens
Windows 10 搭載
ヘッドマウント型
コンピュータ
• 上右:
Surface Hub
• 下左: Xbox One
• 下右:
組み込み用ボード
コンピュータ
2015/7/4 第8回 業開中心会議 7
Windows 10 のユニバーサル Windows プラットフォームでのみ動
作するアプリ
= Windows 10 用
ユニバーサル Windows プラットフォーム アプリ
略して、
⇨ ユニバーサル Windows プラットフォーム アプリ / UWP アプリ
⇨ ユニバーサル Windows アプリ
⇨ ユニバーサル アプリ / Windows アプリ
ユニバーサル Windows プラットフォーム アプリ
2015/7/4 第8回 業開中心会議 8
• Windows 8.x と Windows Phone 7.x/8.x の間でユニバーサルに使
えるアプリも、「ユニバーサル Windows アプリ」 (でもこれは別
バイナリ)
注意!!
従来と区別が付くように、略称を使ってね♪
2015/7/4 第8回 業開中心会議 9
※ Build 2014 キーノートより
• Windows ストアからダウンロード / インストール
※ ストアを介さない「サイドローディング」も可能
• ユーザーごとのインストール
• 改竄チェック / 権限チェック
• サンドボックスでの実行
• 自動アップデート
• クリーンなアンインストール
UWP は、新形式の AppX パッケージを動かす
2015/7/4 第8回 業開中心会議 10
※ Build 2015 セッション 2-695 資料
【参考】 AppX 系パッケージの変遷
2015/7/4 第8回 業開中心会議 11
※ Build 2015 セッション 2-695 資料
どのデバイスでも共通に使える API
UWP は、単一の API Surface を提供する
2015/7/4 第8回 業開中心会議 12
※ MVA "A Developer's Guide to Windows 10" モジュール01 資料
デバイス固有の拡張部分 (Extension) がある
UWP の API は、デバイスによって違いがある
2015/7/4 第8回 業開中心会議 13
UWP 共通部分
デスクトップ用 Extension
スマートフォン用 Extension
UWP 共通部分
ここを
「Windows Core」
と呼ぶこともある
デバイス
PC / タブ
レット(大)
スマートフォ
ン / タブ
レット(小)
組み込みボー
ド
Surface
Hub
HoloLens Xbox One
Extension Desktop Mobile IoT Team (未発表) (未発表)
Windows 10
エディション
・Home
・Pro
・Enterprise
・Education
・IoT for
industory
devices (仮)
・Mobile
・Mobile
Enterprise
・IoT for
mobile
devices (仮)
・IoT Core ・Surface
Hub 用(仮)
・HoloLens
用(仮)
・Xbox用
(仮)
デバイス、エクステンション、
Windows 10 のエディションとの対応
2015/7/4 第8回 業開中心会議 14
•今のところ不明瞭 orz
• とりあえず、 「AppX パッケージを動かす仕組み」 と大雑把に把
握しておけば OK だろう
• 将来、きちんとしたドキュメント (書籍?) が出てくることを期待
で、 ユニバーサル Windows プラットフォームの
構造や範囲などの詳細は?
2015/7/4 第8回 業開中心会議 15
第8回 業開中心会議
UWP アプリ
の 特徴
従来のデスクトップアプリ
との比較
2015/7/4 16
アプリ 従来のデスクトップアプリ UWP アプリ
デバイス PC / タブレット
PC / タブレット
スマートフォン / IoT /
Surface Hub / Hololens /
Xbox One 等
Windows
バージョン
Windows 7 / 8.x / 10
( Windows RT は除く )
Windows 10
( Windows RT でも動く?)
動作するデバイスと Windows
2015/7/4 第8回 業開中心会議 17
アプリ 従来のデスクトップアプリ UWP アプリ
UI / プログラミング
言語
WinForm + C# / VB
XAML (WPF) + C# / VB
MFC + C++
XAML + C# / VB
HTML + JavaScript
XAML + C++
利用する API
・.NET Framework 主体
・利用可:
Win32 API, COM,
Windows Runtime (一部)
・Windows Runtime 主体
・利用可(一部だけ):
.NET Framework,
Win32 API, COM
タッチ対応 UI
自前で実装
(サードパーティ部品あり)
標準対応
UI / プログラミング言語 / 利用する API / タッチ対応
2015/7/4 第8回 業開中心会議 18
アプリ 従来のデスクトップアプリ UWP アプリ
配布パッケージ
・MSI パッケージ
・サードパーティ製インストーラ
・実行ファイルそのまま
AppX パッケージ
配布方法
自由
(Windows ストアを除く)
・Windows ストア
・Windows ストア for
Business
・サイドローディング
インストールの
影響
(可能性)
レジストリーへの書き込み
システム DLL 上書き
⇨ Windows が 「腐る」
ほぼ無し
⇨ Windows が 「腐らない」
配布とインストール
2015/7/4 第8回 業開中心会議 19
アプリ 従来のデスクトップアプリ UWP アプリ
アプリに対する
制限
・なし (UACのみ)
・実行中に UAC 昇格可能
・サンドボックスで動作
・管理者権限不可
・ファイル I/O やプリンター制御な
どに制限
・DB アクセスやプロセス間通信は不
可
アプリ保護 なし
・インストール フォルダーに特殊な
アクセス権 (Adminでもアクセス不可)
・デジタル署名で改竄チェック
・実行時に他アプリからアクセス不可
セキュリティ面での制限と保護
2015/7/4 第8回 業開中心会議 20
≪参考≫ Designing a simple and secure app package – APPX
Delivering reliable and trustworthy Metro style apps
アプリ 従来のデスクトップアプリ UWP アプリ
アーキテク
チャ
・クライアント = サーバー
・DB直結も可能
(褒められた手法ではない)
・「クラウド型」
・DB直結は不可
(必ず Web サービス経由)
業務アプリで推奨されるアーキテクチャ
2015/7/4 第8回 業開中心会議 21
Webサービス
Webサービスのフロントエンドとしての
Windows 10デバイス
DB 文書
別セグメントのLAN/クラウド
DB サーバー等
DB サーバーなど基幹サーバーに
クライアントから直結も可能
DB 文書
第8回 業開中心会議
UWP アプリ
の
開発準備
開発を始めるには?
2015/7/4 22
• UWP アプリを作るには?
* Windows 10 (PC)
* Visual Studio 2015 + Windows 10 SDK
* MS アカウント (開発者用ライセンス取得に必要)
* (できれば) ターゲット デバイス
• UWP アプリを配布するには?
* クレジットカード
* ストアへ開発者登録
(または、サイドローディングのためのデジタル署名)
概要
2015/7/4 第8回 業開中心会議 23
• 7月29日までは VS 2015 RTM 使用不可
それまでは VS 2015 RC でガマン!
• 7/20 VS 2015 RTM リリース
7/29 Windows 10 SDK RTM リリース
• VS 2015 RTM で UWP アプリを開発するには、 Windows 10
SDK RTM が必要 ⇨ 7/29 までは VS 2015 RTM を入れちゃダメ!
重要な注意
2015/7/4 第8回 業開中心会議 24
• エディションは問わない
• ただし、エミュレータを利用するには、Hyper-V が使えること
* SLAT 対応ハードウェア
* CMPXCHG16b、PrefetchW、LAHF/SAHF サポート
(古いAMDプロセッサだと未対応の可能性あり)
* RAM 4GB 以上
* 64bit版 Windows 10 Pro / Enterprise
• テスト環境では、開発ターゲットに合わせたブランチ (後述) を維
持しておくこと
※ ブランチの更新を止めるには Enterprise と WSUS が必要らしい
Windows 10 (PC)
2015/7/4 第8回 業開中心会議 25
• Window Update の方法が変わる
* セキュリティ アップデート ⇨ すべて強制
* 新機能アップデート ⇨ ブランチによって異なる
• PC 向けに 3 種類のブランチ
* CB (Current Branch): 強制アップデート [Homeはこれのみ]
* CBB (Current Branch for Business): 一定期間延期可能
[Pro 版以上で選択可]
* LTSB (Long Term Servicing Branch): 最大10年間延期可能
[Enterprise / Education で選択可]
* 以上の他に、「人柱モード」 (Windows Insider Preview
Branch) あり
【参考】 Windows 10 (PC) のアップデート ブランチ
2015/7/4 第8回 業開中心会議 26
• VS 2015 のエディションは問わない
無償の Express や Community でも OK♪
現在 RC (RTMは 7/20 だが、下記 SDK が RTM になるまでは RC を使う)
ストアへ提出するには、RTM が必要
• Windows 10 SDK、および
Visual Studio Universal Windows app development tools
現在はプレビュー版
最新は 7/1 (日本時間) リリース ⇦ Win10 build 10158 以上が必要
RTM は 7/29
Visual Studio 2015 と SDK
2015/7/4 第8回 業開中心会議 27
https://dev.windows.com/en-us/downloads/windows-10-developer-preview
【参考】 7/29 までの環境セットアップ方法
2015/7/4 第8回 業開中心会議 28
1a. Windows 10 build 10158以上
7/3現在、10162 が提供中
1b. VS 2015 RC (NOT RTM !!)
UWP アプリ開発のオプションも
インストール
2. Win10 SDK プレビューを
インストール
• 「入会金」が必要 (クレジットカード払い)
現在 1,847円 (会社アカウントは 9,800円)
• 登録手順
https://msdn.microsoft.com/ja-jp/library/windows/apps/bg124287.aspx
• アプリ開発者契約書
https://msdn.microsoft.com/ja-jp/library/windows/apps/hh694058.aspx
• そのほか、目を通しておくべきドキュメント
* Windows ストア ポリシー (これに違反するとストアの審査に落ちる)
* 開発者倫理規定
ストアへの開発者登録
~ 開発中はなくてもいい。ストアに提出するときには必要
2015/7/4 第8回 業開中心会議 29
第8回 業開中心会議
UWP アプリ
の
開発
とくに、複数のデバイスに
対応する方法は?
2015/7/4 30
VS2015 RC では
「Windows Universal」
・Class Library
=.NET の普通のDLL
・Windows Runtime
Component
= JavaScript からも
使える DLL
・Unit Test App
= ストアアプリ用
MSTest
プロジェクトを作成する
2015/7/4 第8回 業開中心会議 31
プロジェクトの
プロパティ
ターゲット範囲未満の
Windows 10 には
インストールできない
※ RC では、この設定が
マニフェスト (後述) に
反映されない
→ 手動で書き換え
UWP ターゲット バージョンの指定
~ Windows 10 には 「バージョン」 がある!
2015/7/4 第8回 業開中心会議 32
RC ではエディター未実装のため、手書き
マニフェスト ファイル
~ WPF では App.config、 UWP では Package.appxmanifest
2015/7/4 第8回 業開中心会議 33
動作対象デバイス
「Mobileのみ」 など
と指定が可能
ターゲットバージョン
RTM では、自動的に
設定されると思われる
ターゲットバージョン
RTM では、自動的に
設定されると思われる
例: StreamSocketControl.ClientCertificate
【参考】 MSDN ドキュメントの要件情報
~ 英語ページ参照 (日本語ページには載っていないことも)
2015/7/4 第8回 業開中心会議 34
動作対象デバイス
適用開始バージョン
RTM 以降に追加された API
では 1.0 より大きい値にな
ると思われる
UI は XAML で。
書き方は、WPF と
ほぼ同じ
"Hello, world!"
~ WPF に慣れていれば楽勝♪
2015/7/4 第8回 業開中心会議 35
T e x t B l o c k を 配 置 し て 、
「 H e l l o , U W P ! 」
WPF とほぼ同じ。
Compiled Binding という
パフォーマンスの良い
手法も導入された
(右の画像は従来方式)
データ バインディング
~ WPF に慣れていれば、まぁ楽勝
2015/7/4 第8回 業開中心会議 36
1. バインディング
ソース
2. TextBlock に
バインド
3. バインドされた
データが
表示されている
慣れていないと、
落とし穴がたくさん!
がんばって♪
async / await
~ UWP の世界は非同期 API だらけ!
2015/7/4 第8回 業開中心会議 37
ファイルを読み込むだけでも
非同期処理 !!
※ WinRT/Metro TIPS:「テキストファイルを簡単に読み書きするには?」より
画面幅などに応じて
デザインの変更を
指定できる
複数デバイス対応 その1: Adaptive Trigger
~ XAML だけでレスポンシブ デザイン
2015/7/4 第8回 業開中心会議 38
画面幅が狭いときに
適用されるスタイル
画面幅が中間のときに
適用されるスタイル
※ RTM では変更/削除されるかも
複数デバイス対応 その2: Xaml View
~ 1画面に複数の XAML ファイルを割り当て ⇨ 自動選択
2015/7/4 第8回 業開中心会議 39
Desktop 用の XAML
Mobile 用の XAML
その他のデバイス用の
XAML
共通のコードビハインド
複数デバイス対応 その3: デバイス固有 API の使用
~ その API が利用できるか確かめてから呼び出す
2015/7/4 第8回 業開中心会議 40
Mobile 固有の API が
使えることをチェック
この例では
Mobile の [戻る] ボタンの
イベントハンドラーを
セットしている
※ PlatformSpecific Analyzer を使うと if 文を自動生成できる
※ ストアへ提出するパッケージを作る前に、リリースビルドへ切り替えるのを忘れずに!
AppX パッケージの作成
~ パッケージの作成ウィザードで、さっくり作れる
2015/7/4 第8回 業開中心会議 41
はい: ストアへの提出用
いいえ: テスト用
※ パッケージ作成完了時に起動できる。直接起動してからアプリを指定してもよい。
WACK: アプリ認定キット
~ このテストに通らないようなら、ストアで確実にリジェクトされる
2015/7/4 第8回 業開中心会議 42
第8回 業開中心会議
まとめ
UWP のメリット/デメリット
2015/7/4 43
業務アプリ開発での UWP アプリの
メリット / デメリット
• ○ Windows 10 の複数デバイスで動く
• ○ 安心で安全、Windows が「腐らない」
• × Windows 7 / 8.x では動かない
(全てが Window 10 に置き換わった後ではデメリットにならない)
• × システム アーキテクチャが不自由
(「クラウド型」アーキテクチャが使えるならデメリットにはならない)
第8回 業開中心会議
Windows 10
ユニバーサル
アプリの概要
2015/7/4
BluewaterSoft 山本 康彦
a.k.a @biac

第8回 業開中心会議 「Windows 10 ユニバーサルアプリの概要」

  • 1.
  • 2.
    スピーカー紹介 • BluewaterSoft 山本康彦 a.k.a @biac まだ人工衛星が飛んでない時代に生まれ、HONDAでクルマの設計やってました • Microsoft MVP for Windows Platform Development (2014/10-2015/9) • Windows ランタイム アプリ開発 / 記事や書籍の執筆 やってます 2015/7/4 第8回 業開中心会議 2
  • 3.
    スピーカー紹介 ~ このセッションに関連する@ITの記事 • 徹底予習!Windows 10 のユニバーサルアプリ開発 2015/4/28 http://www.atmarkit.co.jp/ait/articles/1504/28/news015.html • Windows 10 UWP で業務デスクトップアプリ開発はどう変わるの か? 2015/6/23 http://www.atmarkit.co.jp/ait/articles/1506/23/news012.html • Build 2015: 全ての開発者が押さえておくべきマイクロソフトの 最新技術動向 2015/5/12 http://www.atmarkit.co.jp/ait/articles/1505/12/news011.html 2015/7/4 第8回 業開中心会議 3
  • 4.
    第8回 業開中心会議 UWP アプリ ユニバーサルWindows プラットフォーム アプリ とは? 2015/7/4 4
  • 5.
    デスクトップで使う分には、 見た目の違いは小さい • 左: WPFアプリ 右: UWP アプリ • ウィンドウの違 いは、システム メニューアイコ ンの有無くらい 2015/7/4 第8回 業開中心会議 5
  • 6.
    でも、UWP アプリは、同じバイナリが Windows 10搭載スマートフォンでも動く❢ • Windows 10 Mobile エミュレー タの画像 (VS2015RC 付属) 2015/7/4 第8回 業開中心会議 6
  • 7.
    そのほか、さまざまな Windows 10 搭載デバイスで動く❢ •左: HoloLens Windows 10 搭載 ヘッドマウント型 コンピュータ • 上右: Surface Hub • 下左: Xbox One • 下右: 組み込み用ボード コンピュータ 2015/7/4 第8回 業開中心会議 7
  • 8.
    Windows 10 のユニバーサルWindows プラットフォームでのみ動 作するアプリ = Windows 10 用 ユニバーサル Windows プラットフォーム アプリ 略して、 ⇨ ユニバーサル Windows プラットフォーム アプリ / UWP アプリ ⇨ ユニバーサル Windows アプリ ⇨ ユニバーサル アプリ / Windows アプリ ユニバーサル Windows プラットフォーム アプリ 2015/7/4 第8回 業開中心会議 8
  • 9.
    • Windows 8.xと Windows Phone 7.x/8.x の間でユニバーサルに使 えるアプリも、「ユニバーサル Windows アプリ」 (でもこれは別 バイナリ) 注意!! 従来と区別が付くように、略称を使ってね♪ 2015/7/4 第8回 業開中心会議 9 ※ Build 2014 キーノートより
  • 10.
    • Windows ストアからダウンロード/ インストール ※ ストアを介さない「サイドローディング」も可能 • ユーザーごとのインストール • 改竄チェック / 権限チェック • サンドボックスでの実行 • 自動アップデート • クリーンなアンインストール UWP は、新形式の AppX パッケージを動かす 2015/7/4 第8回 業開中心会議 10 ※ Build 2015 セッション 2-695 資料
  • 11.
    【参考】 AppX 系パッケージの変遷 2015/7/4第8回 業開中心会議 11 ※ Build 2015 セッション 2-695 資料
  • 12.
    どのデバイスでも共通に使える API UWP は、単一のAPI Surface を提供する 2015/7/4 第8回 業開中心会議 12 ※ MVA "A Developer's Guide to Windows 10" モジュール01 資料
  • 13.
    デバイス固有の拡張部分 (Extension) がある UWPの API は、デバイスによって違いがある 2015/7/4 第8回 業開中心会議 13 UWP 共通部分 デスクトップ用 Extension スマートフォン用 Extension UWP 共通部分 ここを 「Windows Core」 と呼ぶこともある
  • 14.
    デバイス PC / タブ レット(大) スマートフォ ン/ タブ レット(小) 組み込みボー ド Surface Hub HoloLens Xbox One Extension Desktop Mobile IoT Team (未発表) (未発表) Windows 10 エディション ・Home ・Pro ・Enterprise ・Education ・IoT for industory devices (仮) ・Mobile ・Mobile Enterprise ・IoT for mobile devices (仮) ・IoT Core ・Surface Hub 用(仮) ・HoloLens 用(仮) ・Xbox用 (仮) デバイス、エクステンション、 Windows 10 のエディションとの対応 2015/7/4 第8回 業開中心会議 14
  • 15.
    •今のところ不明瞭 orz • とりあえず、「AppX パッケージを動かす仕組み」 と大雑把に把 握しておけば OK だろう • 将来、きちんとしたドキュメント (書籍?) が出てくることを期待 で、 ユニバーサル Windows プラットフォームの 構造や範囲などの詳細は? 2015/7/4 第8回 業開中心会議 15
  • 16.
    第8回 業開中心会議 UWP アプリ の特徴 従来のデスクトップアプリ との比較 2015/7/4 16
  • 17.
    アプリ 従来のデスクトップアプリ UWPアプリ デバイス PC / タブレット PC / タブレット スマートフォン / IoT / Surface Hub / Hololens / Xbox One 等 Windows バージョン Windows 7 / 8.x / 10 ( Windows RT は除く ) Windows 10 ( Windows RT でも動く?) 動作するデバイスと Windows 2015/7/4 第8回 業開中心会議 17
  • 18.
    アプリ 従来のデスクトップアプリ UWPアプリ UI / プログラミング 言語 WinForm + C# / VB XAML (WPF) + C# / VB MFC + C++ XAML + C# / VB HTML + JavaScript XAML + C++ 利用する API ・.NET Framework 主体 ・利用可: Win32 API, COM, Windows Runtime (一部) ・Windows Runtime 主体 ・利用可(一部だけ): .NET Framework, Win32 API, COM タッチ対応 UI 自前で実装 (サードパーティ部品あり) 標準対応 UI / プログラミング言語 / 利用する API / タッチ対応 2015/7/4 第8回 業開中心会議 18
  • 19.
    アプリ 従来のデスクトップアプリ UWPアプリ 配布パッケージ ・MSI パッケージ ・サードパーティ製インストーラ ・実行ファイルそのまま AppX パッケージ 配布方法 自由 (Windows ストアを除く) ・Windows ストア ・Windows ストア for Business ・サイドローディング インストールの 影響 (可能性) レジストリーへの書き込み システム DLL 上書き ⇨ Windows が 「腐る」 ほぼ無し ⇨ Windows が 「腐らない」 配布とインストール 2015/7/4 第8回 業開中心会議 19
  • 20.
    アプリ 従来のデスクトップアプリ UWPアプリ アプリに対する 制限 ・なし (UACのみ) ・実行中に UAC 昇格可能 ・サンドボックスで動作 ・管理者権限不可 ・ファイル I/O やプリンター制御な どに制限 ・DB アクセスやプロセス間通信は不 可 アプリ保護 なし ・インストール フォルダーに特殊な アクセス権 (Adminでもアクセス不可) ・デジタル署名で改竄チェック ・実行時に他アプリからアクセス不可 セキュリティ面での制限と保護 2015/7/4 第8回 業開中心会議 20 ≪参考≫ Designing a simple and secure app package – APPX Delivering reliable and trustworthy Metro style apps
  • 21.
    アプリ 従来のデスクトップアプリ UWPアプリ アーキテク チャ ・クライアント = サーバー ・DB直結も可能 (褒められた手法ではない) ・「クラウド型」 ・DB直結は不可 (必ず Web サービス経由) 業務アプリで推奨されるアーキテクチャ 2015/7/4 第8回 業開中心会議 21 Webサービス Webサービスのフロントエンドとしての Windows 10デバイス DB 文書 別セグメントのLAN/クラウド DB サーバー等 DB サーバーなど基幹サーバーに クライアントから直結も可能 DB 文書
  • 22.
  • 23.
    • UWP アプリを作るには? *Windows 10 (PC) * Visual Studio 2015 + Windows 10 SDK * MS アカウント (開発者用ライセンス取得に必要) * (できれば) ターゲット デバイス • UWP アプリを配布するには? * クレジットカード * ストアへ開発者登録 (または、サイドローディングのためのデジタル署名) 概要 2015/7/4 第8回 業開中心会議 23
  • 24.
    • 7月29日までは VS2015 RTM 使用不可 それまでは VS 2015 RC でガマン! • 7/20 VS 2015 RTM リリース 7/29 Windows 10 SDK RTM リリース • VS 2015 RTM で UWP アプリを開発するには、 Windows 10 SDK RTM が必要 ⇨ 7/29 までは VS 2015 RTM を入れちゃダメ! 重要な注意 2015/7/4 第8回 業開中心会議 24
  • 25.
    • エディションは問わない • ただし、エミュレータを利用するには、Hyper-Vが使えること * SLAT 対応ハードウェア * CMPXCHG16b、PrefetchW、LAHF/SAHF サポート (古いAMDプロセッサだと未対応の可能性あり) * RAM 4GB 以上 * 64bit版 Windows 10 Pro / Enterprise • テスト環境では、開発ターゲットに合わせたブランチ (後述) を維 持しておくこと ※ ブランチの更新を止めるには Enterprise と WSUS が必要らしい Windows 10 (PC) 2015/7/4 第8回 業開中心会議 25
  • 26.
    • Window Updateの方法が変わる * セキュリティ アップデート ⇨ すべて強制 * 新機能アップデート ⇨ ブランチによって異なる • PC 向けに 3 種類のブランチ * CB (Current Branch): 強制アップデート [Homeはこれのみ] * CBB (Current Branch for Business): 一定期間延期可能 [Pro 版以上で選択可] * LTSB (Long Term Servicing Branch): 最大10年間延期可能 [Enterprise / Education で選択可] * 以上の他に、「人柱モード」 (Windows Insider Preview Branch) あり 【参考】 Windows 10 (PC) のアップデート ブランチ 2015/7/4 第8回 業開中心会議 26
  • 27.
    • VS 2015のエディションは問わない 無償の Express や Community でも OK♪ 現在 RC (RTMは 7/20 だが、下記 SDK が RTM になるまでは RC を使う) ストアへ提出するには、RTM が必要 • Windows 10 SDK、および Visual Studio Universal Windows app development tools 現在はプレビュー版 最新は 7/1 (日本時間) リリース ⇦ Win10 build 10158 以上が必要 RTM は 7/29 Visual Studio 2015 と SDK 2015/7/4 第8回 業開中心会議 27
  • 28.
    https://dev.windows.com/en-us/downloads/windows-10-developer-preview 【参考】 7/29 までの環境セットアップ方法 2015/7/4第8回 業開中心会議 28 1a. Windows 10 build 10158以上 7/3現在、10162 が提供中 1b. VS 2015 RC (NOT RTM !!) UWP アプリ開発のオプションも インストール 2. Win10 SDK プレビューを インストール
  • 29.
    • 「入会金」が必要 (クレジットカード払い) 現在1,847円 (会社アカウントは 9,800円) • 登録手順 https://msdn.microsoft.com/ja-jp/library/windows/apps/bg124287.aspx • アプリ開発者契約書 https://msdn.microsoft.com/ja-jp/library/windows/apps/hh694058.aspx • そのほか、目を通しておくべきドキュメント * Windows ストア ポリシー (これに違反するとストアの審査に落ちる) * 開発者倫理規定 ストアへの開発者登録 ~ 開発中はなくてもいい。ストアに提出するときには必要 2015/7/4 第8回 業開中心会議 29
  • 30.
  • 31.
    VS2015 RC では 「WindowsUniversal」 ・Class Library =.NET の普通のDLL ・Windows Runtime Component = JavaScript からも 使える DLL ・Unit Test App = ストアアプリ用 MSTest プロジェクトを作成する 2015/7/4 第8回 業開中心会議 31
  • 32.
    プロジェクトの プロパティ ターゲット範囲未満の Windows 10 には インストールできない ※RC では、この設定が マニフェスト (後述) に 反映されない → 手動で書き換え UWP ターゲット バージョンの指定 ~ Windows 10 には 「バージョン」 がある! 2015/7/4 第8回 業開中心会議 32
  • 33.
    RC ではエディター未実装のため、手書き マニフェスト ファイル ~WPF では App.config、 UWP では Package.appxmanifest 2015/7/4 第8回 業開中心会議 33 動作対象デバイス 「Mobileのみ」 など と指定が可能 ターゲットバージョン RTM では、自動的に 設定されると思われる ターゲットバージョン RTM では、自動的に 設定されると思われる
  • 34.
    例: StreamSocketControl.ClientCertificate 【参考】 MSDNドキュメントの要件情報 ~ 英語ページ参照 (日本語ページには載っていないことも) 2015/7/4 第8回 業開中心会議 34 動作対象デバイス 適用開始バージョン RTM 以降に追加された API では 1.0 より大きい値にな ると思われる
  • 35.
    UI は XAMLで。 書き方は、WPF と ほぼ同じ "Hello, world!" ~ WPF に慣れていれば楽勝♪ 2015/7/4 第8回 業開中心会議 35 T e x t B l o c k を 配 置 し て 、 「 H e l l o , U W P ! 」
  • 36.
    WPF とほぼ同じ。 Compiled Bindingという パフォーマンスの良い 手法も導入された (右の画像は従来方式) データ バインディング ~ WPF に慣れていれば、まぁ楽勝 2015/7/4 第8回 業開中心会議 36 1. バインディング ソース 2. TextBlock に バインド 3. バインドされた データが 表示されている
  • 37.
    慣れていないと、 落とし穴がたくさん! がんばって♪ async / await ~UWP の世界は非同期 API だらけ! 2015/7/4 第8回 業開中心会議 37 ファイルを読み込むだけでも 非同期処理 !! ※ WinRT/Metro TIPS:「テキストファイルを簡単に読み書きするには?」より
  • 38.
    画面幅などに応じて デザインの変更を 指定できる 複数デバイス対応 その1: AdaptiveTrigger ~ XAML だけでレスポンシブ デザイン 2015/7/4 第8回 業開中心会議 38 画面幅が狭いときに 適用されるスタイル 画面幅が中間のときに 適用されるスタイル
  • 39.
    ※ RTM では変更/削除されるかも 複数デバイス対応その2: Xaml View ~ 1画面に複数の XAML ファイルを割り当て ⇨ 自動選択 2015/7/4 第8回 業開中心会議 39 Desktop 用の XAML Mobile 用の XAML その他のデバイス用の XAML 共通のコードビハインド
  • 40.
    複数デバイス対応 その3: デバイス固有API の使用 ~ その API が利用できるか確かめてから呼び出す 2015/7/4 第8回 業開中心会議 40 Mobile 固有の API が 使えることをチェック この例では Mobile の [戻る] ボタンの イベントハンドラーを セットしている ※ PlatformSpecific Analyzer を使うと if 文を自動生成できる
  • 41.
    ※ ストアへ提出するパッケージを作る前に、リリースビルドへ切り替えるのを忘れずに! AppX パッケージの作成 ~パッケージの作成ウィザードで、さっくり作れる 2015/7/4 第8回 業開中心会議 41 はい: ストアへの提出用 いいえ: テスト用
  • 42.
    ※ パッケージ作成完了時に起動できる。直接起動してからアプリを指定してもよい。 WACK: アプリ認定キット ~このテストに通らないようなら、ストアで確実にリジェクトされる 2015/7/4 第8回 業開中心会議 42
  • 43.
  • 44.
    業務アプリ開発での UWP アプリの メリット/ デメリット • ○ Windows 10 の複数デバイスで動く • ○ 安心で安全、Windows が「腐らない」 • × Windows 7 / 8.x では動かない (全てが Window 10 に置き換わった後ではデメリットにならない) • × システム アーキテクチャが不自由 (「クラウド型」アーキテクチャが使えるならデメリットにはならない) 第8回 業開中心会議
  • 45.

Editor's Notes

  • #2 https://itmedia.smartseminar.jp/public/application/add/1063 UWPでは、単一のバイナリがWindows 10 DesktopでもWindows 10 Mobileでも動作する。UWPアプリ開発の基本と、さまざまなデバイスで動作する「アダプティブ」なアプリを開発するために知っておくべき要素についてユニバーサルアプリ開発の第一人者が解説。
  • #5 http://download.microsoft.com/download/C/E/B/CEBFC4DD-B9DF-4A62-8B65-4944B7489E91/RelNotes_VSTools_Windows10TP.docx metadata の更新 Exit Visual Studio. Open a command prompt as administrator. Run this script: \Program Files (x86)\Windows Kits\10\bin\x86\GenerateUnionWinMD.cmd または、最新の Win10 SDK が出てるなら、それを入れる
  • #9 これからはずっと「Windows 10」だというが、何年か先には UWP の刷新があるだろう。 そのとき何と呼ぶことになるのか? 今から頭が痛い。 「Windows 10 "Amber"(仮) 用 UWP」 とか!?
  • #12 AppX 8.1 や XAP を扱う部分まで UWP に含めるのかどうかは、今のところ不明。
  • #16 http://download.microsoft.com/download/C/E/B/CEBFC4DD-B9DF-4A62-8B65-4944B7489E91/RelNotes_VSTools_Windows10TP.docx metadata の更新 Exit Visual Studio. Open a command prompt as administrator. Run this script: \Program Files (x86)\Windows Kits\10\bin\x86\GenerateUnionWinMD.cmd または、最新の Win10 SDK が出てるなら、それを入れる
  • #17 http://download.microsoft.com/download/C/E/B/CEBFC4DD-B9DF-4A62-8B65-4944B7489E91/RelNotes_VSTools_Windows10TP.docx metadata の更新 Exit Visual Studio. Open a command prompt as administrator. Run this script: \Program Files (x86)\Windows Kits\10\bin\x86\GenerateUnionWinMD.cmd または、最新の Win10 SDK が出てるなら、それを入れる
  • #18 http://download.microsoft.com/download/C/E/B/CEBFC4DD-B9DF-4A62-8B65-4944B7489E91/RelNotes_VSTools_Windows10TP.docx metadata の更新 Exit Visual Studio. Open a command prompt as administrator. Run this script: \Program Files (x86)\Windows Kits\10\bin\x86\GenerateUnionWinMD.cmd または、最新の Win10 SDK が出てるなら、それを入れる